arcadia 0.11.1.4 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (162) hide show
  1. data/README +20 -5
  2. data/conf/LC/en-UK.LANG +270 -0
  3. data/conf/arcadia.conf +25 -42
  4. data/conf/arcadia.init.rb +1 -1
  5. data/conf/arcadia.res.rb +40 -1
  6. data/ext/ae-breakpoints/ae-breakpoints.rb +4 -25
  7. data/ext/ae-dir-projects/ae-dir-projects.conf +1 -10
  8. data/ext/ae-dir-projects/ae-dir-projects.rb +113 -41
  9. data/ext/ae-editor/ae-editor.conf +8 -4
  10. data/ext/ae-editor/ae-editor.rb +425 -218
  11. data/ext/ae-editor/langs/conf.lang +1 -1
  12. data/ext/ae-file-history/ae-file-history.conf +1 -8
  13. data/ext/ae-file-history/ae-file-history.rb +156 -40
  14. data/ext/ae-output/ae-output.rb +79 -16
  15. data/ext/ae-ruby-debug/ae-ruby-debug.rb +43 -49
  16. data/ext/ae-search-in-files/ae-search-in-files.conf +0 -2
  17. data/ext/ae-search-in-files/ae-search-in-files.rb +8 -14
  18. data/ext/ae-search-in-files/ext/ack-in-files/ack-in-files.rb +6 -5
  19. data/ext/ae-shell/ae-shell.conf +1 -1
  20. data/ext/ae-shell/ae-shell.rb +112 -44
  21. data/ext/ae-subprocess-inspector/ae-subprocess-inspector.rb +5 -4
  22. data/ext/ae-subprocess-inspector/process.res +0 -0
  23. data/ext/ae-term/ae-term.conf +15 -0
  24. data/ext/ae-term/ae-term.rb +165 -0
  25. data/ext/test-shutdown-after-startup/test-shutdown-after-startup.conf +2 -2
  26. data/lib/a-commons.rb +128 -23
  27. data/lib/a-contracts.rb +10 -0
  28. data/lib/a-core.rb +1186 -1024
  29. data/lib/a-tkcommons.rb +44 -28
  30. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ArrowButton.html +0 -0
  31. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/BWidget.html +0 -0
  32. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/Button.html +0 -0
  33. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ButtonBox.html +0 -0
  34. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ComboBox.html +0 -0
  35. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/Dialog.html +0 -0
  36. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/DragSite.html +0 -0
  37. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/DropSite.html +0 -0
  38. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/DynamicHelp.html +0 -0
  39. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/Entry.html +25 -0
  40. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/Label.html +0 -0
  41. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/LabelEntry.html +0 -0
  42. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/LabelFrame.html +0 -0
  43. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ListBox.html +2 -2
  44. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/MainFrame.html +0 -0
  45. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/MessageDlg.html +0 -0
  46. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/NoteBook.html +0 -0
  47. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/PagesManager.html +0 -0
  48. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/PanedWindow.html +0 -0
  49. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/PanelFrame.html +0 -0
  50. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/PasswdDlg.html +0 -0
  51. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ProgressBar.html +0 -0
  52. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ProgressDlg.html +0 -0
  53. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ScrollView.html +0 -0
  54. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ScrollableFrame.html +0 -0
  55. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ScrolledWindow.html +0 -0
  56. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/SelectColor.html +0 -0
  57. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/SelectFont.html +0 -0
  58. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/Separator.html +0 -0
  59. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/SpinBox.html +0 -0
  60. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/StatusBar.html +0 -0
  61. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/TitleFrame.html +0 -0
  62. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/Tree.html +0 -0
  63. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/Widget.html +0 -0
  64. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/contents.html +0 -0
  65. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/index.html +0 -0
  66. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/navtree.html +0 -0
  67. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/options.htm +0 -0
  68. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/CHANGES.txt +0 -0
  69. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/ChangeLog +34 -1
  70. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/LICENSE.txt +0 -0
  71. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/README.txt +0 -0
  72. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/arrow.tcl +0 -0
  73. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/bitmap.tcl +0 -0
  74. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/button.tcl +0 -0
  75. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/buttonbox.tcl +0 -0
  76. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/color.tcl +0 -0
  77. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/combobox.tcl +16 -6
  78. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/basic.tcl +0 -0
  79. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/bwidget.xbm +0 -0
  80. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/demo.tcl +0 -0
  81. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/dnd.tcl +0 -0
  82. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/manager.tcl +0 -0
  83. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/select.tcl +0 -0
  84. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/tmpldlg.tcl +0 -0
  85. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/tree.tcl +0 -0
  86. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/x1.xbm +0 -0
  87. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/dialog.tcl +0 -0
  88. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/dragsite.tcl +0 -0
  89. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/dropsite.tcl +0 -0
  90. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/dynhelp.tcl +0 -0
  91. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/entry.tcl +57 -30
  92. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/font.tcl +0 -0
  93. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/bold.gif +0 -0
  94. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/copy.gif +0 -0
  95. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/cut.gif +0 -0
  96. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/dragfile.gif +0 -0
  97. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/dragicon.gif +0 -0
  98. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/error.gif +0 -0
  99. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/file.gif +0 -0
  100. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/folder.gif +0 -0
  101. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/hourglass.gif +0 -0
  102. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/info.gif +0 -0
  103. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/italic.gif +0 -0
  104. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/minus.xbm +0 -0
  105. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/new.gif +0 -0
  106. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/opcopy.xbm +0 -0
  107. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/open.gif +0 -0
  108. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/openfold.gif +0 -0
  109. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/oplink.xbm +0 -0
  110. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/opmove.xbm +0 -0
  111. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/overstrike.gif +0 -0
  112. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/palette.gif +0 -0
  113. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/passwd.gif +0 -0
  114. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/paste.gif +0 -0
  115. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/plus.xbm +0 -0
  116. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/print.gif +0 -0
  117. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/question.gif +0 -0
  118. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/redo.gif +0 -0
  119. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/save.gif +0 -0
  120. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/target.xbm +0 -0
  121. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/underline.gif +0 -0
  122. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/undo.gif +0 -0
  123. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/warning.gif +0 -0
  124. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/init.tcl +0 -0
  125. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/label.tcl +0 -0
  126. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/labelentry.tcl +0 -0
  127. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/labelframe.tcl +0 -0
  128. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/da.rc +0 -0
  129. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/de.rc +0 -0
  130. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/en.rc +0 -0
  131. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/es.rc +0 -0
  132. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/fr.rc +0 -0
  133. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/hu.rc +0 -0
  134. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/nl.rc +0 -0
  135. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/no.rc +0 -0
  136. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/pl.rc +0 -0
  137. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/listbox.tcl +6 -3
  138. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/mainframe.tcl +0 -0
  139. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/messagedlg.tcl +0 -0
  140. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/notebook.tcl +0 -0
  141. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/pagesmgr.tcl +0 -0
  142. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/panedw.tcl +0 -0
  143. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/panelframe.tcl +0 -0
  144. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/passwddlg.tcl +0 -0
  145. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/pkgIndex.tcl +2 -2
  146. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/progressbar.tcl +0 -0
  147. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/progressdlg.tcl +0 -0
  148. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/scrollframe.tcl +0 -0
  149. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/scrollview.tcl +0 -0
  150. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/scrollw.tcl +0 -0
  151. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/separator.tcl +0 -0
  152. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/spinbox.tcl +0 -0
  153. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/statusbar.tcl +0 -0
  154. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/tests/entry.test +0 -0
  155. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/titleframe.tcl +0 -0
  156. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/tree.tcl +0 -0
  157. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/utils.tcl +0 -0
  158. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/widget.tcl +2 -2
  159. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/wizard.tcl +0 -0
  160. data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/xpm2image.tcl +0 -0
  161. data/tcl/fsdialog/fsdialog.tcl +59 -25
  162. metadata +201 -218
@@ -34,7 +34,7 @@ class RubyDebugView
34
34
  # 'background' => 'white',
35
35
  'anchor' => 'nw',
36
36
  'command'=>proc{self.debug_send(:step_over)},
37
- 'helptext'=>'step over',
37
+ 'helptext'=>Arcadia.text('ext.ruby_debug.button.step_over.hint'),
38
38
  'image'=> Arcadia.image_res(D_NEXT_GIF),
39
39
  'relief'=> _relief })
40
40
  )
@@ -43,7 +43,7 @@ class RubyDebugView
43
43
  # 'background' => 'white',
44
44
  'anchor' => 'nw',
45
45
  'command'=>proc{self.debug_send(:step_into)},
46
- 'helptext'=>'step into',
46
+ 'helptext'=>Arcadia.text('ext.ruby_debug.button.step_into.hint'),
47
47
  'image'=> Arcadia.image_res(D_STEP_INTO_GIF),
48
48
  'relief'=>_relief })
49
49
  )
@@ -51,7 +51,7 @@ class RubyDebugView
51
51
  'name'=>'debug_out',
52
52
  # 'background' => 'white',
53
53
  'anchor' => 'nw',
54
- 'helptext'=>'step out',
54
+ 'helptext'=>Arcadia.text('ext.ruby_debug.button.step_out.hint'),
55
55
  'command'=>proc{self.debug_send(:step_out)},
56
56
  'image'=> Arcadia.image_res(D_STEP_OUT_GIF),
57
57
  'relief'=>_relief })
@@ -60,7 +60,7 @@ class RubyDebugView
60
60
  'name'=>'debug_resume',
61
61
  # 'background' => 'white',
62
62
  'anchor' => 'nw',
63
- 'helptext'=>'resume',
63
+ 'helptext'=>Arcadia.text('ext.ruby_debug.button.resume.hint'),
64
64
  'image'=> Arcadia.image_res(D_RESUME_GIF),
65
65
  'command'=>proc{self.debug_send(:resume)},
66
66
  'relief'=>_relief })
@@ -70,7 +70,7 @@ class RubyDebugView
70
70
  'name'=>'debug_quit',
71
71
  # 'background' => 'white',
72
72
  'anchor' => 'nw',
73
- 'helptext'=>'quit',
73
+ 'helptext'=>Arcadia.text('ext.ruby_debug.button.quit.hint'),
74
74
  'image'=> Arcadia.image_res(D_QUIT_GIF),
75
75
  'command'=>proc{self.debug_send(:quit)},
76
76
  'relief'=>_relief })
@@ -220,7 +220,7 @@ class RubyDebugView
220
220
 
221
221
  _b_relief = 'groove'
222
222
  #------------------ loacal variables -------------------
223
- _loc_var_text = "Local variables"
223
+ _loc_var_text = Arcadia.text("ext.ruby_debug.node.local_var.caption")
224
224
  @b_local_onoff = TkButton.new(@tree_var, Arcadia.style('button')){
225
225
  image _i_on
226
226
  state 'disabled'
@@ -244,8 +244,8 @@ class RubyDebugView
244
244
  elsif @local_state == B_STATE_FREEZE
245
245
  @b_local_onoff.image(_i_freeze)
246
246
  @tree_var.itemconfigure('local_var',
247
- 'text'=>"#{_loc_var_text} freeze at #{@last_position_string}",
248
- 'helptext'=>"#{_loc_var_text} freeze at #{@last_position_string}"
247
+ 'text'=>Arcadia.text('ext.ruby_debug.freeze_at',[_loc_var_text,@last_position_string]),
248
+ 'helptext'=>Arcadia.text('ext.ruby_debug.freeze_at',[_loc_var_text,@last_position_string])
249
249
  )
250
250
  elsif @local_state == B_STATE_OFF
251
251
  @b_local_onoff.image(_i_off)
@@ -266,7 +266,7 @@ class RubyDebugView
266
266
  }))
267
267
 
268
268
  #------------------ instance variables -------------------
269
- _instance_var_text="Instance variables"
269
+ _instance_var_text=Arcadia.text("ext.ruby_debug.node.instance_var.caption")
270
270
  @b_instance_onoff = TkButton.new(@tree_var, Arcadia.style('button')){
271
271
  image _i_on
272
272
  #relief _b_relief
@@ -291,8 +291,8 @@ class RubyDebugView
291
291
  elsif @instance_state == B_STATE_FREEZE
292
292
  @b_instance_onoff.image(_i_freeze)
293
293
  @tree_var.itemconfigure('instance_var',
294
- 'text'=>"#{_instance_var_text} freeze at #{@last_position_string}",
295
- 'helptext'=>"#{_instance_var_text} freeze at #{@last_position_string}"
294
+ 'text'=>Arcadia.text('ext.ruby_debug.freeze_at',[_instance_var_text,@last_position_string]),
295
+ 'helptext'=>Arcadia.text('ext.ruby_debug.freeze_at',[_instance_var_text,@last_position_string])
296
296
  )
297
297
  elsif @instance_state == B_STATE_OFF
298
298
  @b_instance_onoff.image(_i_off)
@@ -312,7 +312,7 @@ class RubyDebugView
312
312
  }))
313
313
 
314
314
  #------------------ class variables -------------------
315
- _class_var_text="Class variables"
315
+ _class_var_text=Arcadia.text("ext.ruby_debug.node.class_var.caption")
316
316
  @b_class_onoff = TkButton.new(@tree_var, Arcadia.style('button')){
317
317
  image _i_on
318
318
  #relief _b_relief
@@ -337,8 +337,8 @@ class RubyDebugView
337
337
  elsif @class_state == B_STATE_FREEZE
338
338
  @b_class_onoff.image(_i_freeze)
339
339
  @tree_var.itemconfigure('class_var',
340
- 'text'=>"#{_class_var_text} freeze at #{@last_position_string}",
341
- 'helptext'=>"#{_class_var_text} freeze at #{@last_position_string}"
340
+ 'text'=> Arcadia.text('ext.ruby_debug.freeze_at',[_class_var_text,@last_position_string]),
341
+ 'helptext'=>Arcadia.text('ext.ruby_debug.freeze_at',[_class_var_text,@last_position_string])
342
342
  )
343
343
  elsif @class_state == B_STATE_OFF
344
344
  @b_class_onoff.image(_i_off)
@@ -359,7 +359,7 @@ class RubyDebugView
359
359
 
360
360
 
361
361
  #------------------ global variables -------------------
362
- _global_var_text="Global variables"
362
+ _global_var_text=Arcadia.text("ext.ruby_debug.node.global_var.caption")
363
363
  @b_global_onoff = TkButton.new(@tree_var, Arcadia.style('button')){
364
364
  image _i_off
365
365
  #relief _b_relief
@@ -384,8 +384,8 @@ class RubyDebugView
384
384
  elsif @global_state == B_STATE_FREEZE
385
385
  @b_global_onoff.image(_i_freeze)
386
386
  @tree_var.itemconfigure('global_var',
387
- 'text'=>"#{_global_var_text} freeze at #{@last_position_string}",
388
- 'helptext'=>"#{_global_var_text} freeze at #{@last_position_string}"
387
+ 'text'=>Arcadia.text('ext.ruby_debug.freeze_at',[_global_var_text,@last_position_string]),
388
+ 'helptext'=>Arcadia.text('ext.ruby_debug.freeze_at',[_global_var_text,@last_position_string])
389
389
  )
390
390
  elsif @global_state == B_STATE_OFF
391
391
  @b_global_onoff.image(_i_off)
@@ -480,7 +480,7 @@ class RubyDebugView
480
480
  return if @controller.rdc.nil? || !@controller.rdc.is_debugging_ready? || !@controller.rds.is_alive?
481
481
  begin
482
482
  if _command == 'quit'
483
- msg = "Really quit debug ? (y/n)"
483
+ # msg = "Really quit debug ? (y/n)"
484
484
  ans = 'yes'#Tk.messageBox('icon' => 'question', 'type' => 'yesno',
485
485
  # 'title' => '(Arcadia) Debug', 'message' => msg)
486
486
  if ans == 'yes'
@@ -511,7 +511,7 @@ class RubyDebugView
511
511
  end
512
512
  end
513
513
  rescue Exception => e
514
- Arcadia.console(self, 'msg'=>"on command #{_command}:#{e.inspect}", 'level'=>'debug')
514
+ Arcadia.console(self, 'msg'=>Arcadia.text('ext.ruby_debug.client.e.on_command', [_command, e.inspect]), 'level'=>'debug')
515
515
  #Arcadia.new_debug_msg(self,"on command #{_command}:#{e.inspect}")
516
516
  end
517
517
  end
@@ -577,7 +577,7 @@ class RubyDebugView
577
577
  'fill'=>Arcadia.conf('hightlight.13.foreground'),
578
578
  'open'=>true,
579
579
  'anchor'=>'w',
580
- 'text' => "Eval selection"
580
+ 'text' => Arcadia.text("ext.ruby_debug.node.eval_selected")
581
581
  }))
582
582
  end
583
583
  update_variables('eval', _hash)
@@ -863,7 +863,8 @@ class RubyDebugServer
863
863
  end
864
864
  end
865
865
  rescue Exception => e
866
- Arcadia.console(self, 'msg'=>"Error on start_server : #{e.class}:#{e.message}", 'level'=>'debug')
866
+
867
+ Arcadia.console(self, 'msg'=>Arcadia.text('ext.ruby_debug.server.e.on_start', [e.class, e.message]), 'level'=>'debug')
867
868
  #Arcadia.new_debug_msg(self,"Error on start_server : #{e.class}:#{e.message}")
868
869
  end
869
870
  end
@@ -878,8 +879,7 @@ class RubyDebugServer
878
879
  end
879
880
  notify(RDS_QUIET)
880
881
  rescue Exception => e
881
- Arcadia.console(self, 'msg'=>"Error on kill : #{e.class}:#{e.message}", 'level'=>'debug')
882
- #Arcadia.new_debug_msg(self,"Error on start_server : #{e.class}:#{e.message}")
882
+ Arcadia.console(self, 'msg'=>Arcadia.text('ext.ruby_debug.server.e.on_kill', [e.class, e.message]), 'level'=>'debug')
883
883
  end
884
884
  end
885
885
 
@@ -1026,12 +1026,12 @@ class RubyDebugClient
1026
1026
  if @t > 0
1027
1027
  socket_session
1028
1028
  else
1029
- Arcadia.console(self, 'msg'=>"socket_session : #{e.inspect}", 'level'=>'debug')
1029
+ Arcadia.console(self, 'msg'=>Arcadia.text('ext.ruby_debug.client.e.socket_session.1', [e.inspect]), 'level'=>'debug')
1030
1030
  #Arcadia.new_debug_msg(self,"socket_session : #{e.inspect}")
1031
1031
  end
1032
1032
  rescue Exception => e
1033
- @session = nil
1034
- Arcadia.console(self, 'msg'=>"Error on socket_session : #{e.class}:#{e.message}", 'level'=>'debug')
1033
+ @session = nil
1034
+ Arcadia.console(self, 'msg'=>Arcadia.text('ext.ruby_debug.client.e.socket_session.2', [e.class,e.message]), 'level'=>'debug')
1035
1035
  #Arcadia.new_debug_msg(self,"Error on socket_session : #{e.class}:#{e.message}")
1036
1036
  end
1037
1037
  elsif !@controller.rds.is_alive?
@@ -1047,7 +1047,7 @@ class RubyDebugClient
1047
1047
  @session.close if is_alive?
1048
1048
  @session=nil
1049
1049
  rescue Exception => e
1050
- Arcadia.console(self, 'msg'=>"Error on close session : #{e.class}:#{e.message}", 'level'=>'debug')
1050
+ Arcadia.console(self, 'msg'=>Arcadia.text('ext.ruby_debug.client.e.close_session',[e.class,e.message]), 'level'=>'debug')
1051
1051
  #Arcadia.new_debug_msg(self,"Error on close session : #{e.class}:#{e.message}")
1052
1052
  end
1053
1053
  end
@@ -1063,7 +1063,7 @@ class RubyDebugClient
1063
1063
  end
1064
1064
  return @session
1065
1065
  rescue Exception => e
1066
- Arcadia.console(self, 'msg'=>"Error on start_session : #{e.class}:#{e.message} #{e.backtrace.join('..')}", 'level'=>'debug')
1066
+ Arcadia.console(self, 'msg'=>Arcadia.text('ext.ruby_debug.client.e.start_session', [e.class, e.message], e.backtrace.join('..')), 'level'=>'debug')
1067
1067
  #Arcadia.new_debug_msg(self,"Error on start_session : #{e.class}:#{e.message}")
1068
1068
  end
1069
1069
  end
@@ -1073,7 +1073,7 @@ class RubyDebugClient
1073
1073
  quit if is_debugging_ready?
1074
1074
  @session.close if is_alive?
1075
1075
  rescue Exception => e
1076
- Arcadia.console(self, 'msg'=>"Error on stop_session : #{e.class}:#{e.inspect}", 'level'=>'debug')
1076
+ Arcadia.console(self, 'msg'=>Arcadia.text('ext.ruby_debug.client.e.stop_session', [e.class, e.inspect]), 'level'=>'debug')
1077
1077
  #Arcadia.new_debug_msg(self,"Error on stop_session : #{e.class}:#{e.inspect}")
1078
1078
  end
1079
1079
  end
@@ -1094,15 +1094,13 @@ class RubyDebugClient
1094
1094
  rescue Errno::ECONNABORTED,Errno::ECONNRESET, Errno::EPIPE => e
1095
1095
  notify("quit_yes")
1096
1096
  #DebugContract.instance.debug_end(self)
1097
- Arcadia.console(self, 'msg'=>"Debugger has finished executing:\n #{e.class}:#{e.inspect}", 'level'=>'debug')
1098
- #Arcadia.new_debug_msg(self,"Debugger has finished executing:\n #{e.class}:#{e.inspect}")
1097
+ Arcadia.console(self, 'msg'=>Arcadia.text('ext.ruby_debug.client.e.abort_session', [e.class, e.inspect]), 'level'=>'debug')
1099
1098
  @session = nil
1100
1099
  @pend = true
1101
1100
  false
1102
1101
  #raise RubyDebugException.new("Debugged has finished executing")
1103
1102
  rescue Exception => e
1104
- Arcadia.console(self, 'msg'=>"Error on command #{_command}: #{e.class}:#{e.inspect}", 'level'=>'debug')
1105
- #Arcadia.new_debug_msg(self,"Error on command #{_command}: #{e.class}:#{e.inspect}")
1103
+ Arcadia.console(self, 'msg'=>Arcadia.text('ext.ruby_debug.client.e.on_command', [_command, e.class, e.inspect]), 'level'=>'debug')
1106
1104
  false
1107
1105
  end
1108
1106
  end
@@ -1124,12 +1122,11 @@ class RubyDebugClient
1124
1122
  @busy = false
1125
1123
  result
1126
1124
 
1127
- rescue Errno::ECONNABORTED
1128
- raise RubyDebugException.new("Debugged has finished executing")
1129
- rescue Errno::ECONNRESET
1130
- raise RubyDebugException.new("Debugged has finished executing")
1125
+ rescue Errno::ECONNABORTED, Errno::ECONNRESET
1126
+ raise RubyDebugException.new(Arcadia.text("ext.ruby_debug.client.e.raise.on_read.1"))
1131
1127
  rescue Exception => e
1132
- raise RubyDebugException.new("Error: on command '#{_command}' => #{e.class} : #{e.inspect}")
1128
+
1129
+ raise RubyDebugException.new(Arcadia.text("ext.ruby_debug.client.e.raise.on_read.2", [_command, e.class, e.inspect]))
1133
1130
  end
1134
1131
  private :read
1135
1132
 
@@ -1429,7 +1426,7 @@ class RubyDebug < ArcadiaExt
1429
1426
  if @rdebug_file
1430
1427
  Arcadia.attach_listener(self, BufferEvent)
1431
1428
  else
1432
- Arcadia.console(self, 'msg'=>"Warning: Extension ae-ruby-debug depend upon rdebug command (install it or update system path!)", 'level'=>'error')
1429
+ Arcadia.console(self, 'msg'=>Arcadia.text("ext.ruby_debug.e.rdebug"), 'level'=>'error')
1433
1430
  #Arcadia.new_error_msg(self, "Warning: Extension ae-ruby-debug depend upon rdebug command (install it or update system path!)")
1434
1431
  end
1435
1432
  Arcadia.attach_listener(self, DebugEvent)
@@ -1459,8 +1456,8 @@ class RubyDebug < ArcadiaExt
1459
1456
  else
1460
1457
  Arcadia.dialog(self,
1461
1458
  'type'=>'ok',
1462
- 'title'=>'File not exist',
1463
- 'msg'=>"File #{_filename} not exist!")
1459
+ 'title'=>Arcadia.text('ext.ruby_debug.d.file_not_exist.title'),
1460
+ 'msg'=>Arcadia.text('ext.ruby_debug.d.file_not_exist.msg', [_filename]))
1464
1461
  end
1465
1462
  when StepDebugEvent
1466
1463
  if (_event.command == :quit_yes)
@@ -1571,11 +1568,8 @@ class RubyDebug < ArcadiaExt
1571
1568
  def on_exit_query(_event)
1572
1569
  if @rdc && @rdc.is_alive?
1573
1570
  query = (Arcadia.dialog(self, 'icon' => 'question', 'type' => 'yes_no',
1574
- 'title' => '(Arcadia) Debug',
1575
- 'message' => "Debug in course, do you want to exit?")=='yes')
1576
- # query = (Tk.messageBox('icon' => 'question', 'type' => 'yesno',
1577
- # 'title' => '(Arcadia) Debug',
1578
- # 'message' => "Debug in course, do you want to exit?")=='yes')
1571
+ 'title' => Arcadia.text("ext.ruby_debug.d.exit_query.title"),
1572
+ 'message' => Arcadia.text("ext.ruby_debug.d.exit_query.msg"))=='yes')
1579
1573
  if query
1580
1574
  debug_quit
1581
1575
  _event.can_exit=true
@@ -1632,7 +1626,7 @@ class RubyDebug < ArcadiaExt
1632
1626
  end
1633
1627
  end
1634
1628
  rescue Exception => e
1635
- Arcadia.console(self, 'msg'=>"---> "+e.to_s+ ' ' + e.backtrace[0], 'level'=>'debug')
1629
+ Arcadia.console(self, Arcadia.text('ext.ruby_debug.e.do_debug', [e.to_s, e.backtrace[0]]), 'level'=>'debug')
1636
1630
  end
1637
1631
  end
1638
1632
  end
@@ -1662,8 +1656,8 @@ class RubyDebug < ArcadiaExt
1662
1656
  Thread.new{
1663
1657
  Arcadia.dialog(self,
1664
1658
  'type'=>'ok',
1665
- 'title' => "(Arcadia) Debug",
1666
- 'msg'=>"Debug in course, stop it before exit",
1659
+ 'title' => Arcadia.text("ext.ruby_debug.d.quit_if_debug.title"),
1660
+ 'msg'=>Arcadia.text("ext.ruby_debug.d.quit_if_debug.msg"),
1667
1661
  'level'=>'info')
1668
1662
  # Tk.messageBox('icon' => 'info',
1669
1663
  # 'type' => 'ok',
@@ -8,8 +8,6 @@ class=SearchInFiles
8
8
 
9
9
  font=courier 10
10
10
  font.bold=courier 10 bold
11
- color.background=#ffffff
12
- color.foreground=#000000
13
11
  freebsd::font=courier 12 italic
14
12
  freebsd::font.bold=courier 12 bold
15
13
  win|mingw::font={Courier New} 9
@@ -6,7 +6,7 @@
6
6
  class SearchInFiles < ArcadiaExt
7
7
 
8
8
  def on_before_build(_event)
9
- create_find 'Search in files'
9
+ create_find Arcadia.text('ext.search_in_files.title')
10
10
  Arcadia.attach_listener(self, SearchInFilesEvent)
11
11
  end
12
12
 
@@ -88,14 +88,13 @@ class SearchInFiles < ArcadiaExt
88
88
  Thread.new do
89
89
  begin
90
90
  MonitorLastUsedDir.set_last @find.e_dir.text # save it away TODO make it into a message
91
-
92
- _search_title = 'search result for : "'+@find.e_what.text+'" in :"'+@find.e_dir.text+'"'+' ['+@find.e_filter.text+']'
91
+ _search_title = Arcadia.text('ext.search_in_files.search_result_title', [@find.e_what.text, @find.e_dir.text, @find.e_filter.text])
93
92
  _filter = @find.e_dir.text+'/**/'+@find.e_filter.text
94
93
  _files = Dir[_filter]
95
94
  _node = @search_output.new_result(_search_title, _files.length)
96
95
  progress_stop=false
97
96
  progress_bar = TkProgressframe.new(self.arcadia.layout.root, _files.length)
98
- progress_bar.title('Searching')
97
+ progress_bar.title(Arcadia.text('ext.search_in_files.progress.title'))
99
98
  progress_bar.on_cancel=proc{progress_stop=true}
100
99
  #@progress_bar.on_cancel=proc{cancel}
101
100
  pattern = Regexp.new(@find.e_what.text)
@@ -151,16 +150,12 @@ class SearchOutput
151
150
 
152
151
  @button_u = Tk::BWidget::Button.new(left_frame, Arcadia.style('toolbarbutton')){
153
152
  image Arcadia.image_res(CLEAR_GIF)
154
- helptext 'Clear'
155
- foreground 'blue'
153
+ helptext 'ext.search_in_files.button.clear.hint'
156
154
  command _proc_clear
157
155
  relief 'groove'
158
156
  pack('side' =>'top', 'anchor'=>'n',:padx=>0, :pady=>0)
159
157
  }
160
158
 
161
- # @found_color='#3f941b'
162
- # @not_found_color= 'red'
163
- # @item_color='#6fc875'
164
159
  @found_color=Arcadia.conf('activeforeground')
165
160
  @not_found_color= Arcadia.conf('hightlight.comment.foreground')
166
161
  @item_color=Arcadia.conf('treeitem.fill')
@@ -237,7 +232,7 @@ class FindFrame < TkFloatTitledFrame
237
232
  y0 = 10
238
233
  d = 23
239
234
  TkLabel.new(self.frame, Arcadia.style('label')){
240
- text 'Find what:'
235
+ text Arcadia.text('ext.search_in_files.search.label.find_what')
241
236
  place('x' => 8,'y' => y0,'height' => 19)
242
237
  }
243
238
  y0 = y0 + d
@@ -256,7 +251,7 @@ class FindFrame < TkFloatTitledFrame
256
251
 
257
252
  y0 = y0 + d
258
253
  TkLabel.new(self.frame, Arcadia.style('label')){
259
- text 'Files filter:'
254
+ text Arcadia.text('ext.search_in_files.search.label.files_filter')
260
255
  place('x' => 8,'y' => y0,'height' => 19)
261
256
  }
262
257
  y0 = y0 + d
@@ -267,7 +262,6 @@ class FindFrame < TkFloatTitledFrame
267
262
  autocomplete 'true'
268
263
  expand 'tab'
269
264
  takefocus 'true'
270
- #pack('padx'=>10, 'fill'=>'x')
271
265
  place('relwidth' => 1, 'width'=>-16,'x' => 8,'y' => y0,'height' => 19)
272
266
  }
273
267
  @e_filter_entry = TkWinfo.children(@e_filter)[0]
@@ -280,7 +274,7 @@ class FindFrame < TkFloatTitledFrame
280
274
  y0 = y0 + d
281
275
 
282
276
  TkLabel.new(self.frame, Arcadia.style('label')){
283
- text 'Directory:'
277
+ text Arcadia.text('ext.search_in_files.search.label.dir')
284
278
  place('x' => 8,'y' => y0,'height' => 19)
285
279
  }
286
280
  y0 = y0 + d
@@ -317,7 +311,7 @@ class FindFrame < TkFloatTitledFrame
317
311
  @b_go = TkButton.new(@buttons_frame, Arcadia.style('button')){|_b_go|
318
312
  compound 'none'
319
313
  default 'disabled'
320
- text 'Find'
314
+ text Arcadia.text('ext.search_in_files.search.button.find')
321
315
  #overrelief 'raised'
322
316
  #justify 'center'
323
317
  pack('side'=>'right','ipadx'=>5, 'padx'=>5)
@@ -6,7 +6,7 @@
6
6
  class AckInFiles < SearchInFiles
7
7
 
8
8
  def on_before_build(_event)
9
- create_find 'Ack in files'
9
+ create_find Arcadia.text('ext.search_in_files.title.1')
10
10
  Arcadia.attach_listener(self, AckInFilesEvent)
11
11
  end
12
12
 
@@ -31,18 +31,19 @@ class AckInFiles < SearchInFiles
31
31
  # ack -i -G .rb "Ack" "c:/dev/ruby/arcadia"
32
32
  command = %!ack -i -G "#{@find.e_filter.text.gsub('*', '.*')}" "#{@find.e_what.text}" "#{@find.e_dir.text}"!
33
33
 
34
- _search_title = 'ack result for : "'+@find.e_what.text+'" in :"'+@find.e_dir.text+'"'+' ['+@find.e_filter.text+'] ' + command
34
+
35
+ _search_title = Arcadia.text('ext.search_in_files.ack_result_title', [@find.e_what.text, @find.e_dir.text, @find.e_filter.text, command])
35
36
  _filter = @find.e_dir.text+'/**/'+@find.e_filter.text
36
37
  _node = @search_output.new_result(_search_title, '')
37
38
  progress_stop=false
38
39
  @progress_bar = TkProgressframe.new(self.arcadia.layout.root, 2)
39
- @progress_bar.title('Running')
40
+ @progress_bar.title(Arcadia.text('ext.search_in_files.progress.title.1'))
40
41
 
41
42
  answer = `#{command}`
42
43
  answer_lines = answer.split("\n")
43
44
  @progress_bar.destroy # destroy the old one
44
45
  @progress_bar = TkProgressframe.new(self.arcadia.layout.root, answer_lines.length)
45
- @progress_bar.title('Parsing')
46
+ @progress_bar.title(Arcadia.text('ext.search_in_files.progress.title.2'))
46
47
  @progress_bar.on_cancel=proc{progress_stop=true}
47
48
 
48
49
  # a now looks like
@@ -59,7 +60,7 @@ class AckInFiles < SearchInFiles
59
60
  break if progress_stop # early out
60
61
  }
61
62
  if answer_lines == []
62
- @search_output.new_result('None found', '')
63
+ @search_output.new_result(Arcadia.text('ext.search_in_files.no_search_result'), '')
63
64
  end
64
65
 
65
66
  rescue Exception => e
@@ -4,7 +4,7 @@ require=ext/ae-shell/ae-shell
4
4
  class=Shell
5
5
  stdout_blocking=no
6
6
  stderr_blocking=yes
7
- win|mingw::gems=win32-process,ruby-wmi
7
+ win|mingw::1.8:@:gems=win32-process,ruby-wmi
8
8
 
9
9
  #:::::::::::::::: output ::::::::::::::::::::::<begin>
10
10
  #ruby=ruby
@@ -140,7 +140,7 @@ class Shell < ArcadiaExt
140
140
  start_time = Time.now
141
141
  @arcadia['pers']['run.file.last']=_event.file if _event.persistent
142
142
  @arcadia['pers']['run.cmd.last']=_event.cmd if _event.persistent
143
- if Arcadia.is_windows?
143
+ if Arcadia.is_windows? && RUBY_VERSION < '1.9'
144
144
  # use win32-process gem to startup a child process [not sure if linux needs something like this, too]
145
145
  require 'win32/process'
146
146
  require 'ruby-wmi'
@@ -165,7 +165,8 @@ class Shell < ArcadiaExt
165
165
  File.open(output_file_name, 'r') do |f|
166
166
  _readed = f.read
167
167
  _readed.strip!
168
- _readed += "\n" + "Done with #{_event.title} in #{Time.now - start_time}s"
168
+
169
+ _readed += "\n" + Arcadia.text('ext.shell.done', [_event.title, Time.now - start_time])
169
170
  output_mark = Arcadia.console(self,'msg'=>_readed, 'level'=>'debug', 'mark'=>output_mark)
170
171
  _event.add_result(self, 'output'=>_readed)
171
172
  end
@@ -185,18 +186,17 @@ class Shell < ArcadiaExt
185
186
  # th = Thread.current
186
187
  fi = nil
187
188
  fi_pid = nil
188
- abort_action = proc{
189
- ArcadiaUtils.unix_child_pids(fi_pid).each {|pid|
190
- Process.kill(9,pid.to_i)
191
- }
192
- Process.kill(9,fi_pid.to_i)
193
- #Kernel.system("kill -9 #{unix_child_pids(fi_pid).join(' ')} #{fi_pid}") if fi
194
- }
189
+ # abort_action = proc{
190
+ # ArcadiaUtils.unix_child_pids(fi_pid).each {|pid|
191
+ # Process.kill(9,pid.to_i)
192
+ # }
193
+ # Process.kill(9,fi_pid.to_i)
194
+ # }
195
195
 
196
- alive_check = proc{
197
- num = `ps -p #{fi_pid}|wc -l` if fi_pid
198
- num.to_i > 1 && fi_pid
199
- }
196
+ # alive_check = proc{
197
+ # num = `ps -p #{fi_pid}|wc -l` if fi_pid
198
+ # num.to_i > 1 && fi_pid
199
+ # }
200
200
 
201
201
 
202
202
  #Arcadia.console(self,'msg'=>"#{th}", 'level'=>'debug', 'abort_action'=>abort_action)
@@ -204,46 +204,114 @@ class Shell < ArcadiaExt
204
204
  Open3.popen3(_cmd_){|stdin, stdout, stderr, th|
205
205
  fi_pid = th.pid if th
206
206
  output_mark = Arcadia.console(self,'msg'=>" [pid #{fi_pid}]", 'level'=>'debug', 'mark'=>output_mark, 'append'=>true)
207
+ alive_check = proc{th.status != false}
208
+ abort_action = proc{Process.kill(9,fi_pid.to_i)}
209
+
207
210
  Arcadia.process_event(SubProcessEvent.new(self, 'pid'=>fi_pid, 'name'=>_event.file,'abort_action'=>abort_action, 'alive_check'=>alive_check))
208
-
209
- if stdout
210
- if @stdout_blocking
211
- output_dump = stdout.read
212
- if output_dump && output_dump.length > 0
213
- output_mark = Arcadia.console(self,'msg'=>output_dump, 'level'=>'error', 'mark'=>output_mark)
214
- _event.add_result(self, 'output'=>output_dump)
215
- end
216
- else
217
- stdout.each do |output_dump|
218
- output_mark = Arcadia.console(self,'msg'=>output_dump, 'level'=>'debug', 'mark'=>output_mark)
219
- _event.add_result(self, 'output'=>output_dump)
211
+
212
+ # if stdout
213
+ # if @stdout_blocking
214
+ # output_dump = stdout.read
215
+ # if output_dump && output_dump.length > 0
216
+ # output_mark = Arcadia.console(self,'msg'=>output_dump, 'level'=>'error', 'mark'=>output_mark)
217
+ # _event.add_result(self, 'output'=>output_dump)
218
+ # end
219
+ # else
220
+ # stdout.each do |output_dump|
221
+ # p "th.status = #{th.status}"
222
+ # output_mark = Arcadia.console(self,'msg'=>output_dump, 'level'=>'debug', 'mark'=>output_mark)
223
+ # _event.add_result(self, 'output'=>output_dump)
224
+ # if stdin && !stdin.closed? && th.status != false
225
+ # begin
226
+ # stdin.puts(Arcadia.console_input(self))
227
+ # rescue Exception => e
228
+ # output_mark = Arcadia.console(self,'msg'=>e.to_s, 'level'=>'debug', 'mark'=>output_mark)
229
+ # end
230
+ # end
231
+ # end
232
+ # end
233
+ # end
234
+
235
+
236
+
237
+ to = Thread.new(stdout) do |tout|
238
+ begin
239
+ while (line = tout.gets)
240
+ output_mark = Arcadia.console(self,'msg'=>line, 'level'=>'debug', 'mark'=>output_mark)
241
+ _event.add_result(self, 'output'=>line)
220
242
  end
243
+ rescue Exception => e
244
+ output_mark = Arcadia.console(self,'msg'=>e.to_s, 'level'=>'debug', 'mark'=>output_mark)
221
245
  end
222
246
  end
223
-
224
- if stderr
225
- if @stderr_blocking
226
- current_buffer = '<<current buffer>>'
227
- output_dump = stderr.read
228
- if output_dump && output_dump.length > 0
229
- if !_event.persistent
230
- output_dump.gsub!(_event.file, current_buffer)
247
+
248
+ input_break = false
249
+ ti = Thread.new(stdin, input_break) do |tin|
250
+ begin
251
+ while (tin && !tin.closed? && !input_break)
252
+ if th.status != false && to.status == 'sleep'
253
+ begin
254
+ input = Arcadia.console_input(self)
255
+ tin.puts(input) if input != nil
256
+ sleep(0.1)
257
+ rescue Exception => e
258
+ output_mark = Arcadia.console(self,'msg'=>e.to_s, 'level'=>'debug', 'mark'=>output_mark)
259
+ end
260
+ else
261
+ sleep(0.1)
231
262
  end
232
- output_mark = Arcadia.console(self,'msg'=>output_dump, 'level'=>'error', 'mark'=>output_mark)
233
- _event.add_result(self, 'output'=>output_dump)
234
263
  end
235
- else
236
- stderr.each do |output_dump|
237
- if !_event.persistent
238
- output_dump.gsub!(_event.file, current_buffer)
239
- end
240
- output_mark = Arcadia.console(self,'msg'=>output_dump, 'level'=>'error', 'mark'=>output_mark)
241
- _event.add_result(self, 'output'=>output_dump)
264
+ rescue Exception => e
265
+ output_mark = Arcadia.console(self,'msg'=>e.to_s, 'level'=>'debug', 'mark'=>output_mark)
266
+ end
267
+ end
268
+
269
+ te = Thread.new(stderr) do |terr|
270
+ begin
271
+ while (line = terr.gets)
272
+ output_mark = Arcadia.console(self,'msg'=>line, 'level'=>'error', 'mark'=>output_mark)
273
+ _event.add_result(self, 'output'=>line)
242
274
  end
275
+ rescue Exception => e
276
+ output_mark = Arcadia.console(self,'msg'=>e.to_s, 'level'=>'debug', 'mark'=>output_mark)
243
277
  end
244
- end
278
+ end
279
+
280
+ to.join
281
+ te.join
282
+ input_event = Arcadia.console_input_event
283
+ if input_event != nil
284
+ input_event.break
285
+ input_break = true
286
+ ti.join
287
+ else
288
+ ti.exit
289
+ end
290
+ te.exit
291
+
292
+ # if stderr
293
+ # if @stderr_blocking
294
+ # current_buffer = '<<current buffer>>'
295
+ # output_dump = stderr.read
296
+ # if output_dump && output_dump.length > 0
297
+ # if !_event.persistent
298
+ # output_dump.gsub!(_event.file, current_buffer)
299
+ # end
300
+ # output_mark = Arcadia.console(self,'msg'=>output_dump, 'level'=>'error', 'mark'=>output_mark)
301
+ # _event.add_result(self, 'output'=>output_dump)
302
+ # end
303
+ # else
304
+ # stderr.each do |output_dump|
305
+ # if !_event.persistent
306
+ # output_dump.gsub!(_event.file, current_buffer)
307
+ # end
308
+ # output_mark = Arcadia.console(self,'msg'=>output_dump, 'level'=>'error', 'mark'=>output_mark)
309
+ # _event.add_result(self, 'output'=>output_dump)
310
+ # end
311
+ # end
312
+ # end
245
313
  }
246
- output_mark = Arcadia.console(self,'msg'=>"\nEnd running #{_event.title}:", 'level'=>'debug', 'mark'=>output_mark)
314
+ output_mark = Arcadia.console(self,'msg'=>"\n"+Arcadia.text('ext.shell.done.1', [_event.title]), 'level'=>'debug', 'mark'=>output_mark)
247
315
 
248
316
 
249
317
  # open(_cmd_, "r"){|f|