bsod 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ee3f47fca59ed812c893b1782ccaec0220ed3e6c
4
- data.tar.gz: 54bb24834166e361b54b27af9e78a6baede5ca5d
3
+ metadata.gz: f56d2e58602a897f414aaadab80f80e9f7bca4cd
4
+ data.tar.gz: 3f0fd0d0bb317de06ba43d8e3e55f6a0ebf67154
5
5
  SHA512:
6
- metadata.gz: b019f93776d8cbcf56ffeb22a3995d26330ec3c817a8dfdf166910a7056db45da6f4933250eaa0061bd59da39a230215c20fb2929d59bcebec2bb18acc0d5c7f
7
- data.tar.gz: c1f89d815ec11d12c5725d168a1ac63a53592d9cdbd830cb8707e883011638d6252abe71ebccbcf23eb81aa158515de7d3d6bab43f77a7d7323277168afd0f0c
6
+ metadata.gz: b2f7b96d7cb7bdd0645c6f4a54774ce027a533860de20d987d9dbadc6afa16db27962df2e92f2bc4b0f8d69db15874e651b75a6ef355150e6aea84ce27524b32
7
+ data.tar.gz: 0fe0d86c1419ddedcdbc0ce903d7d423eaba2a477e1571754c7a182ea3131fa97150726c5d0e7e2409f80986401179c19bc0bab0e2ee6d84ad78e4817e5e37f9
@@ -1,5 +1,9 @@
1
1
  <!-- My awesome changelog -->
2
2
 
3
+ ## 1.1.0 (Oct 30, 2013)
4
+
5
+ * Can show BSODs on terminals via Curses stdlib.
6
+
3
7
  ## 1.0.0 (Oct 20, 2013)
4
8
 
5
9
  * Changed library API and executable commandline flags.
data/README.md CHANGED
@@ -2,14 +2,14 @@
2
2
 
3
3
  ![bsod](images/bsod.png)
4
4
 
5
- Simulates [Blue Screens of Death](https://en.wikipedia.org/wiki/Blue_screen_of_death) from
6
- several systems, primarily Micro$oftWindow$. It's made in a way that eases
7
- adding new BSODs.
5
+ Simulates [Blue Screens of Death](https://en.wikipedia.org/wiki/Blue_screen_of_death)
6
+ from several systems, primarily Micro$oftWindow$.
7
+ Shows BSODs both on graphical displays (via SDL) and terminal windows (via Curses).
8
8
 
9
9
  As an executable, has optional flag to sleep before BSODing so you can surprise
10
10
  your friends!
11
11
 
12
- As a library, you can integrate a BSOD on any SDL surface.
12
+ As a library, you can integrate a BSOD on any SDL surface or Curses window.
13
13
 
14
14
  ## Usage
15
15
 
@@ -19,11 +19,14 @@ As a library, you can integrate a BSOD on any SDL surface.
19
19
  $ bsod --wait 3.1415 # waits seconds before BSODing
20
20
  $ bsod --style windowsxp # explicitly selects BSOD style
21
21
  $ bsod --list # show supported systems
22
+ $ bsod --style linux-sparc --curses # show on the terminal
22
23
 
23
24
  For more see `bsod --help`.
24
25
 
25
26
  ### Library
26
27
 
28
+ Over SDL
29
+
27
30
  require 'bsod'
28
31
  # after initializing sdl properly
29
32
  screen = SDL::Screen.get
@@ -31,6 +34,14 @@ For more see `bsod --help`.
31
34
  bsod.draw(screen, screen.w, screen.h)
32
35
  BSOD::wait_for_sdl_key # defaults to F8
33
36
 
37
+ Over Curses
38
+
39
+ require 'bsod'
40
+ # after initializing curses properly
41
+ bsod = BSOD::LinuxSPARC.new
42
+ bsod.draw_curses(Curses.stdscr, Curses.cols, Curses.lines)
43
+ BSOD::wait_for_curses_key # defaults to F8
44
+
34
45
  ## Install
35
46
 
36
47
  $ gem install bsod
data/bin/bsod CHANGED
@@ -25,7 +25,7 @@ $settings = nil
25
25
  # Note: This initializes `SDL` based on the global
26
26
  # `$settings` parsed by `Settings` module.
27
27
  #
28
- def self.init_sdl
28
+ def init_sdl
29
29
  SDL::init(SDL::INIT_VIDEO)
30
30
  SDL::TTF.init
31
31
 
@@ -51,6 +51,26 @@ def self.init_sdl
51
51
  return screen
52
52
  end
53
53
 
54
+ # Starts all things related to the `Curses` terminal-handling
55
+ # thingy, returning the main window.
56
+ #
57
+ # Note: This method is only required if you don't do
58
+ # this manually. For most of your custom projects,
59
+ # ignore this.
60
+ def init_curses
61
+ Curses::init_screen # all hail Curses
62
+ Curses::curs_set 0 # invisible cursor
63
+ Curses::start_color # dem colors
64
+ Curses::stdscr.keypad true # extra keys!
65
+ Curses::noecho # wont show keys typed by the user
66
+
67
+ return Curses::stdscr # main window
68
+ end
69
+
70
+ def exit_curses
71
+ Curses::close_screen
72
+ end
73
+
54
74
  begin
55
75
  $settings = Settings.new
56
76
  $settings.parse ARGV
@@ -59,7 +79,11 @@ begin
59
79
  time = $settings[:sleep_time]
60
80
  sleep time if time
61
81
 
62
- screen = init_sdl
82
+ if not BSOD::ALL.include? $settings[:bsod_type]
83
+ puts "Unknown BSOD '#{$settings[:bsod_type]}'."
84
+ puts "Use --list to show all known types."
85
+ exit 666
86
+ end
63
87
 
64
88
  bsod = nil
65
89
  case $settings[:bsod_type]
@@ -69,9 +93,21 @@ begin
69
93
  when "linux-sparc" then bsod = BSOD::LinuxSPARC.new
70
94
  end
71
95
 
72
- bsod.draw(screen, screen.w, screen.h)
73
- BSOD::wait_for_sdl_key $settings[:exit_key]
96
+ if $settings[:curses]
97
+ window = init_curses
98
+
99
+ bsod.draw_curses(window, Curses.cols, Curses.lines)
100
+ BSOD::wait_for_curses_key $settings[:exit_key]
101
+ else
102
+ screen = init_sdl
103
+
104
+ bsod.draw(screen, screen.w, screen.h)
105
+ BSOD::wait_for_sdl_key $settings[:exit_key]
106
+ end
74
107
 
75
108
  # It automatically ends SDL on exit
109
+ #
110
+ # ...but not Curses
111
+ exit_curses if $settings[:curses]
76
112
  end
77
113
 
@@ -1,5 +1,5 @@
1
-
2
1
  require 'sdl'
2
+ require 'curses'
3
3
 
4
4
  # This is a great container over all Blue Screens
5
5
  # of Death (BSOD).
@@ -9,6 +9,11 @@ require 'sdl'
9
9
  #
10
10
  module BSOD
11
11
 
12
+ # All currently supported BSODs.
13
+ ALL = ["windowsnt",
14
+ "windows2000",
15
+ "windowsxp",
16
+ "linux-sparc"]
12
17
 
13
18
  # Tells if SDL has been initialized already, both
14
19
  # by us (`init_sdl`) or by the user.
@@ -45,8 +50,29 @@ module BSOD
45
50
  end
46
51
  end
47
52
 
48
- def self.init_curses
53
+ # TODO Figure out how to actually see if Curses is initialized.
54
+ def self.curses_inited?
55
+ return true
56
+ end
49
57
 
58
+ # Waits for a keypress of `Curses::Key` `key`, ignoring
59
+ # anything else.
60
+ #
61
+ # Defaults to F8.
62
+ #
63
+ # TODO Somehow mix this with `wait_for_sdl_key`.
64
+ def self.wait_for_curses_key(key=Curses::KEY_F8)
65
+ loop = true
66
+ while loop
67
+
68
+ case Curses::getch
69
+ when key
70
+ loop = false
71
+ end
72
+ # Sleeping a little to avoid high-CPU rates.
73
+ sleep 0.05
74
+ end
50
75
  end
76
+
51
77
  end
52
78
 
@@ -1,12 +1,12 @@
1
-
2
1
  require 'bsod'
3
2
 
4
3
  module BSOD
5
4
 
6
- # Remember Window$ 2000?
5
+ # Linux sparc kernel paging fault.
7
6
  #
8
- # This is the same as WindowsNT, the only thing that
9
- # changes is the default message.
7
+ # TODO Somehow merge with WindowsText, because it follows the
8
+ # same drawing rules (except that it's a white over black
9
+ # text and it's shown on the bottom of the screen).
10
10
  class LinuxSPARC
11
11
 
12
12
  BSODTEXT = <<END_OF_TEXT
@@ -39,8 +39,7 @@ END_OF_TEXT
39
39
  # is acceptable too.
40
40
  def draw(screen, width, height)
41
41
 
42
- # Should I break the program's flow here?
43
- BSOD::init_sdl if not BSOD::sdl_inited?
42
+ return if not BSOD::sdl_inited?
44
43
 
45
44
  black = screen.format.map_rgb(0, 0, 0)
46
45
  screen.fill_rect(0, 0, width, height, black)
@@ -73,6 +72,39 @@ END_OF_TEXT
73
72
  # @note Maybe update only the bounded rectangle?
74
73
  SDL::Screen.get.update_rect(0, 0, 0, 0)
75
74
  end
75
+
76
+ # Draws the BSOD on a Curses' `window`, bounded by `width` and
77
+ # `height`.
78
+ def draw_curses(window, width, height)
79
+
80
+ return if not BSOD::curses_inited?
81
+
82
+ # Initializing colors (3 is any number)
83
+ Curses::init_pair(3, Curses::COLOR_WHITE, Curses::COLOR_BLACK)
84
+
85
+ window.attrset(Curses::color_pair(3) | Curses::A_BOLD)
86
+
87
+ # Clears the screen with spaces
88
+ 0.upto(height) { window.addstr(" " * width) }
89
+
90
+ # need to print at the bottom of the screen
91
+ lines_ammount = height
92
+
93
+ i = (lines_ammount - BSODTEXT.lines.size)
94
+ BSODTEXT.each_line do |line|
95
+ # This is a little hack to allow printing empty lines.
96
+ # First I remove the '\n' at the end to avoid nasty things
97
+ # and then I append a space, to prevent nil strings.
98
+ line.chomp!
99
+ line += " "
100
+
101
+ window.setpos(i, 0)
102
+ window.addstr line
103
+
104
+ i += 1
105
+ end
106
+ end
107
+
76
108
  end
77
109
  end
78
110
 
@@ -1,5 +1,5 @@
1
-
2
1
  require 'optparse'
2
+ require 'bsod'
3
3
  require 'bsod/version'
4
4
 
5
5
  # Global configurations of the program, along with a commandline
@@ -15,13 +15,13 @@ class Settings
15
15
  # Makes possible to sleep for a while before BSODing
16
16
  @settings[:sleep_time] = nil
17
17
 
18
- # Which BSOD we'll show by default?
19
- @settings[:bsod_type] = "windowsnt"
18
+ # Default BSOD
19
+ @settings[:bsod_type] = BSOD::ALL.first
20
20
 
21
21
  # This doesn't matter because it will go fullscreen anyways.
22
22
  # Just change it if looks ugly
23
- @settings[:width] = 800
24
- @settings[:height] = 600
23
+ @settings[:width] = 800
24
+ @settings[:height] = 600
25
25
  @settings[:fullscreen] = true
26
26
 
27
27
  # SDL-specific key to exit BSOD
@@ -35,6 +35,11 @@ class Settings
35
35
  @settings[:font_filename] = fontname
36
36
  @settings[:font_size] = 14
37
37
  @settings[:font_bold] = false
38
+
39
+ # Curses mode for consoles!
40
+ # Most of the settings above won't make any sense if this
41
+ # is true
42
+ @settings[:curses] = false
38
43
  end
39
44
 
40
45
  # Sets options based on commandline arguments `args`.
@@ -62,18 +67,16 @@ class Settings
62
67
  @settings[:fullscreen] = f
63
68
  end
64
69
 
70
+ parser.on("-c", "--[no-]curses", "Runs on the terminal, without a graphical window") do |f|
71
+ @settings[:curses] = f
72
+ end
73
+
65
74
  # parser.on("-r", "--random", "Select a random BSOD") do
66
75
  # DO SOMETHING ABOUT IT
67
76
  # end
68
77
 
69
78
  parser.on("-l", "--list", "Show all possible BSODs") do
70
- puts "Usage: bsod -t [type]"
71
- puts " where [type] can be:"
72
- puts
73
- puts "windowsnt [default]"
74
- puts "windows2000"
75
- puts "windowsxp"
76
- puts "linux-sparc"
79
+ self.show_list
77
80
  exit
78
81
  end
79
82
 
@@ -84,7 +87,23 @@ class Settings
84
87
  end
85
88
 
86
89
  parser.on("--version", "Show version and license info") do
87
- puts <<END_OF_VERSION
90
+ self.show_version
91
+ exit
92
+ end
93
+
94
+ end
95
+ opts.parse! args
96
+
97
+ return @settings
98
+ end
99
+
100
+ # Returns a specific setting previously set.
101
+ def [] name
102
+ return @settings[name]
103
+ end
104
+
105
+ def show_version
106
+ puts <<END_OF_VERSION
88
107
  _ __ _ _
89
108
  |_) (_ / \\ | \\
90
109
  |_) __) \\_/ |_/ #{BSOD::VERSION} (http://alexdantas.net/projects/bsod)
@@ -106,18 +125,23 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
106
125
 
107
126
  The Droid Sans font family is licensed under the Apache license.
108
127
  END_OF_VERSION
109
- exit
128
+ end
129
+
130
+ def show_list
131
+ puts "Usage: bsod -t [type]"
132
+ puts " where [type] can be:"
133
+ puts
134
+
135
+ # Kinda ugly, right?
136
+ BSOD::ALL.each_with_index do |type, i|
137
+ if i == 0
138
+ puts "#{type} [default]"
139
+ next
110
140
  end
111
141
 
142
+ puts "#{type}"
112
143
  end
113
- opts.parse! args
114
-
115
- return @settings
116
144
  end
117
145
 
118
- # Returns a specific setting previously set.
119
- def [] name
120
- return @settings[name]
121
- end
122
146
  end
123
147
 
@@ -1,5 +1,5 @@
1
1
 
2
2
  module BSOD
3
- VERSION = "1.0.0"
3
+ VERSION = "1.1.0"
4
4
  end
5
5
 
@@ -1,14 +1,14 @@
1
1
 
2
- require 'bsod'
2
+ require 'bsod/windowstext'
3
3
 
4
4
  module BSOD
5
5
 
6
6
  # Remember Window$ 2000?
7
7
  #
8
- # This is the same as WindowsNT, the only thing that
9
- # changes is the default message.
10
- class Windows2000
8
+ # This contains the text, see WindowsText for drawing rules.
9
+ class Windows2000 < WindowsText
11
10
 
11
+ # The text that will appear over the blue background.
12
12
  BSODTEXT = <<END_OF_TEXT
13
13
  A problem has been detected and windows has been shut down to prevent damage
14
14
  to your computer.
@@ -41,47 +41,6 @@ Contact your system administrator or technical support group for further
41
41
  assistance.
42
42
  END_OF_TEXT
43
43
 
44
- # No `def initialize` on purpose
45
-
46
- # Draws the BSOD on a SDL's `screen`, bounded by `width` and
47
- # `height`.
48
- #
49
- # It must be a `SDL::Surface` (consequently, a `SDL::Screen`
50
- # is acceptable too.
51
- def draw(screen, width, height)
52
-
53
- # Should I break the program's flow here?
54
- BSOD::init_sdl if not BSOD::sdl_inited?
55
-
56
- # Filling screen with that sweet, sweet blue tone
57
- blue = screen.format.map_rgb(0, 0, 255)
58
- screen.fill_rect(0, 0, width, height, blue)
59
-
60
- # Printing that bizarre text
61
- font = SDL::TTF.open($settings[:font_filename],
62
- $settings[:font_size])
63
-
64
- font.style = SDL::TTF::STYLE_BOLD if $settings[:font_bold]
65
-
66
- i = 0
67
- BSODTEXT.each_line do |line|
68
- # This is a little hack to allow printing empty lines.
69
- # First I remove the '\n' at the end to avoid nasty things
70
- # and then I append a space, to prevent nil strings.
71
- line.chomp!
72
- line += " "
73
-
74
- font.draw_solid_utf8(screen, line,
75
- 3, (i * font.height),
76
- 255, 255, 255)
77
- i += 1
78
- end
79
-
80
- font.close
81
-
82
- # @note Maybe update only the bounded rectangle?
83
- SDL::Screen.get.update_rect(0, 0, 0, 0)
84
- end
85
44
  end
86
45
  end
87
46
 
@@ -1,10 +1,9 @@
1
-
2
- require 'bsod'
1
+ require 'bsod/windowstext'
3
2
 
4
3
  module BSOD
5
4
 
6
5
  # Ye olde Window$ NT.
7
- class WindowsNT
6
+ class WindowsNT < WindowsText
8
7
 
9
8
  # The default white text that will appear over the
10
9
  # blue background.
@@ -38,47 +37,6 @@ or the /CRASHDEBUG system start option. If this message reappears,
38
37
  contact your system administrator or technical support group.
39
38
  END_OF_TEXT
40
39
 
41
- # No `def initialize` on purpose
42
-
43
- # Draws the BSOD on a SDL's `screen`, bounded by `width` and
44
- # `height`.
45
- #
46
- # It must be a `SDL::Surface` (consequently, a `SDL::Screen`
47
- # is acceptable too.
48
- def draw(screen, width, height)
49
-
50
- # Should I break the program's flow here?
51
- BSOD::init_sdl if not BSOD::sdl_inited?
52
-
53
- # Filling screen with that sweet, sweet blue tone
54
- blue = screen.format.map_rgb(0, 0, 255)
55
- screen.fill_rect(0, 0, width, height, blue)
56
-
57
- # Printing that bizarre text
58
- font = SDL::TTF.open($settings[:font_filename],
59
- $settings[:font_size])
60
-
61
- font.style = SDL::TTF::STYLE_BOLD if $settings[:font_bold]
62
-
63
- i = 0
64
- BSODTEXT.each_line do |line|
65
- # This is a little hack to allow printing empty lines.
66
- # First I remove the '\n' at the end to avoid nasty things
67
- # and then I append a space, to prevent nil strings.
68
- line.chomp!
69
- line += " "
70
-
71
- font.draw_solid_utf8(screen, line,
72
- 3, (i * font.height),
73
- 255, 255, 255)
74
- i += 1
75
- end
76
-
77
- font.close
78
-
79
- # @note Maybe update only the bounded rectangle?
80
- SDL::Screen.get.update_rect(0, 0, 0, 0)
81
- end
82
40
  end
83
41
  end
84
42
 
@@ -0,0 +1,99 @@
1
+ require 'bsod'
2
+
3
+ module BSOD
4
+
5
+ # Abstract class that encapsulates common stuff within
6
+ # some Windows BSODs.
7
+ #
8
+ # Some BSODs are simply a blue background with white text, while
9
+ # others follow more complex rules.
10
+ # For the simple ones, we inherit from WindowText.
11
+ #
12
+ # See WindowsNT, Windows2000 and WindowsXP
13
+ class WindowsText
14
+
15
+ # This is the text to be shown on the screen.
16
+ # On most subclasses, we simply change this - drawing rules
17
+ # are common.
18
+ #
19
+ # Side-note, referring to `self.class::CONSTANT` makes
20
+ # possible to override super class constants on subclasses.
21
+ BSODTEXT = <<END_OF_TEXT
22
+ END_OF_TEXT
23
+
24
+ # Draws the BSOD on a SDL's `screen`, bounded by `width` and
25
+ # `height`.
26
+ #
27
+ # It must be a `SDL::Surface` (consequently, a `SDL::Screen`
28
+ # is acceptable too.
29
+ #
30
+ # It's a white text on a blue background.
31
+ def draw(screen, width, height)
32
+ return if not BSOD::sdl_inited?
33
+
34
+ # Filling screen with that sweet, sweet blue tone
35
+ blue = screen.format.map_rgb(0, 0, 255)
36
+ screen.fill_rect(0, 0, width, height, blue)
37
+
38
+ # Printing that bizarre text
39
+ font = SDL::TTF.open($settings[:font_filename],
40
+ $settings[:font_size])
41
+
42
+ font.style = SDL::TTF::STYLE_BOLD if $settings[:font_bold]
43
+
44
+ i = 0
45
+ self.class::BSODTEXT.each_line do |line|
46
+ # This is a little hack to allow printing empty lines.
47
+ # First I remove the '\n' at the end to avoid nasty things
48
+ # and then I append a space, to prevent nil strings.
49
+ line.chomp!
50
+ line += " "
51
+
52
+ font.draw_solid_utf8(screen, line,
53
+ 3, (i * font.height),
54
+ 255, 255, 255)
55
+ i += 1
56
+ end
57
+
58
+ font.close
59
+
60
+ # @note Maybe update only the bounded rectangle?
61
+ SDL::Screen.get.update_rect(0, 0, 0, 0)
62
+ end
63
+
64
+ # Draws the BSOD on a Curses' `window`, bounded by `width` and
65
+ # `height`.
66
+ #
67
+ def draw_curses(window, width, height)
68
+ return if not BSOD::curses_inited?
69
+
70
+ # Initializing colors (3 is an arbitrary number)
71
+ Curses::init_pair(3, Curses::COLOR_WHITE, Curses::COLOR_BLUE)
72
+
73
+ window.attrset(Curses::color_pair(3) | Curses::A_BOLD)
74
+
75
+ # Clears the screen with spaces
76
+ 0.upto(height) { window.addstr(" " * width) }
77
+
78
+ # need to print at the bottom of the screen
79
+ lines_ammount = height
80
+
81
+ i = (lines_ammount - self.class::BSODTEXT.lines.size)
82
+ self.class::BSODTEXT.each_line do |line|
83
+ # This is a little hack to allow printing empty lines.
84
+ # First I remove the '\n' at the end to avoid nasty things
85
+ # and then I append a space, to prevent nil strings.
86
+ line.chomp!
87
+ line += " "
88
+
89
+ window.setpos(i, 0)
90
+ window.addstr line
91
+
92
+ i += 1
93
+ end
94
+ window.refresh
95
+ end
96
+
97
+ end
98
+ end
99
+
@@ -1,17 +1,14 @@
1
1
 
2
- require 'bsod'
3
- require 'bsod/windowsnt'
2
+ require 'bsod/windowstext'
4
3
 
5
4
  module BSOD
6
5
 
7
6
  # As seen on Window$ XP.
8
7
  #
9
- # This is the same as WindowsNT, the only thing that
10
- # changes is the default message.
11
- class WindowsXP
8
+ # This contains the text, see WindowsText for drawing rules.
9
+ class WindowsXP < WindowsText
12
10
 
13
- # The default white text that will appear over the
14
- # blue background.
11
+ # The text that will appear over the blue background.
15
12
  BSODTEXT = <<END_OF_TEXT
16
13
  A problem has been detected and windows has been shut down to prvent damage
17
14
  to your computer.
@@ -42,47 +39,6 @@ Technical information:
42
39
  *** SPCMDCON.SYS - Address FBFE7617 base at FBFE5000, DateStamp 3d6dd67c
43
40
  END_OF_TEXT
44
41
 
45
- # No `def initialize` on purpose
46
-
47
- # Draws the BSOD on a SDL's `screen`, bounded by `width` and
48
- # `height`.
49
- #
50
- # It must be a `SDL::Surface` (consequently, a `SDL::Screen`
51
- # is acceptable too.
52
- def draw(screen, width, height)
53
-
54
- # Should I break the program's flow here?
55
- BSOD::init_sdl if not BSOD::sdl_inited?
56
-
57
- # Filling screen with that sweet, sweet blue tone
58
- blue = screen.format.map_rgb(0, 0, 255)
59
- screen.fill_rect(0, 0, width, height, blue)
60
-
61
- # Printing that bizarre text
62
- font = SDL::TTF.open($settings[:font_filename],
63
- $settings[:font_size])
64
-
65
- font.style = SDL::TTF::STYLE_BOLD if $settings[:font_bold]
66
-
67
- i = 0
68
- BSODTEXT.each_line do |line|
69
- # This is a little hack to allow printing empty lines.
70
- # First I remove the '\n' at the end to avoid nasty things
71
- # and then I append a space, to prevent nil strings.
72
- line.chomp!
73
- line += " "
74
-
75
- font.draw_solid_utf8(screen, line,
76
- 3, (i * font.height),
77
- 255, 255, 255)
78
- i += 1
79
- end
80
-
81
- font.close
82
-
83
- # @note Maybe update only the bounded rectangle?
84
- SDL::Screen.get.update_rect(0, 0, 0, 0)
85
- end
86
42
  end
87
43
  end
88
44
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bsod
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandre Dantas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-20 00:00:00.000000000 Z
11
+ date: 2013-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -69,6 +69,7 @@ files:
69
69
  - lib/bsod/version.rb
70
70
  - lib/bsod/windows2000.rb
71
71
  - lib/bsod/windowsnt.rb
72
+ - lib/bsod/windowstext.rb
72
73
  - lib/bsod/windowsxp.rb
73
74
  homepage: http://www.alexdantas.net/projects/bsod
74
75
  licenses: