bsod 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: