Broken ed.ex
- Posted by achury Mar 24, 2009
- 912 views
ed.ex don't runs with DOS interpreter under WinXP
Also note that runs with exw but there is a small bug related with the highligth character on the rigth screen edge. The character is not erased after scroll
Also there is a bug related with the cursor position in the prompt for filename to open.
This is the ex.err on DOS:
C:\EUPHORIA\BIN\ed.ex:920 in procedure save_state() variable buffer_version has not been assigned a value ... called from C:\EUPHORIA\BIN\ed.ex:1234 in procedure refresh_all_windows() w = 1 ... called from C:\EUPHORIA\BIN\ed.ex:1351 in function key_gets() hot_keys = {} history = {{}} input_string = {} line = 1 init_column = 12 column = 12 char = 3 col = <no value> h = 1 cursor = {1,12} first_key = 1 ... called from C:\EUPHORIA\BIN\ed.ex:2361 in procedure ed() command = { {67'C',58':',92'\',69'E',85'U',80'P',72'H',79'O',82'R',73'I', 65'A',92'\',66'B',73'I',78'N',92'\',69'E',88'X',46'.',69'E',88'X',69'E'}, {67'C',58':',92'\',69'E',85'U',80'P',72'H',79'O',82'R',73'I', 65'A',92'\',66'B',73'I',78'N',92'\',101'e',100'd',46'.',101'e',120'x'} } file_no = <no value> i = <no value> i = <no value> ... called from C:\EUPHORIA\BIN\ed.ex:2460 in procedure ed_main() cl = { {67'C',58':',92'\',69'E',85'U',80'P',72'H',79'O',82'R',73'I', 65'A',92'\',66'B',73'I',78'N',92'\',69'E',88'X',46'.',69'E',88'X',69'E'}, {67'C',58':',92'\',69'E',85'U',80'P',72'H',79'O',82'R',73'I', 65'A',92'\',66'B',73'I',78'N',92'\',101'e',100'd',46'.',101'e',120'x'} } ... called from C:\EUPHORIA\BIN\ed.ex:2481 Global & Local Variables C:\euphoria\include\std/types.e: Defined_Sets = { {98'b',99'c',100'd',102'f',103'g',104'h',106'j',107'k', 108'l',109'm',110'n',112'p',113'q',114'r',115's',116't',118'v',119'w',120'x', 121'y',122'z',66'B',67'C',68'D',70'F',71'G',72'H',74'J',75'K',76'L',77'M', 78'N',80'P',81'Q',82'R',83'S',84'T',86'V',87'W',88'X',89'Y',90'Z'}, {97'a',101'e',105'i',111'o',117'u',65'A',69'E',73'I', 79'O',85'U'}, { {48'0',57'9'}, {65'A',70'F'}, {97'a',102'f'} }, {32' ',9,10,13,11,160}, { {32' ',47'/'}, {58':',63'?'}, {91'[',96'`'}, {123'{',126'~'} }, { {32' ',126'~'} }, { {97'a',122'z'} }, { {65'A',90'Z'} }, { {48'0',57'9'}, {97'a',122'z'}, {65'A',90'Z'} }, { {97'a',122'z'}, {65'A',90'Z'} }, { {0,127''} }, { {0,31}, {127'',127''} }, { {48'0',57'9'} }, { {33'!',126'~'} }, { {0,255} }, {95'_'}, {1,0} } C:\euphoria\include\std/convert.e: mem = 46138280 C:\euphoria\include\std/dll.e: page_addr = 0 page_offset = 0 C:\euphoria\include\std/memory.e: check_calls = 1 C:\euphoria\include\std/filesys.e: delete_file_id = 1 dir_id = 0 dirname_id = 2 InitCurDir = {67'C',58':',92'\',69'E',85'U',80'P',72'H',79'O',82'R',73'I', 65'A',92'\',66'B',73'I',78'N',92'\'} file_counters = {} C:\euphoria\include\std/pretty.e: pretty_end_col = <no value> pretty_chars = <no value> pretty_start_col = <no value> pretty_level = <no value> pretty_file = <no value> pretty_ascii = <no value> pretty_indent = <no value> pretty_ascii_min = <no value> pretty_ascii_max = <no value> pretty_line_count = <no value> pretty_line_max = <no value> pretty_dots = <no value> pretty_line_breaks = <no value> pretty_printing = <no value> pretty_fp_format = <no value> pretty_int_format = <no value> pretty_line = <no value> C:\euphoria\include\std/eds.e: current_db = -1 current_table_pos = -1 current_table_name = {} db_names = {} db_file_nums = {} db_lock_methods = {} current_lock = 0 key_pointers = {} key_cache = {} cache_index = {} caching_option = 1 void = <no value> vLastErrors = {} mem0 = 46138456 mem1 = 46138457 mem2 = 46138458 mem3 = 46138459 memseq = {46138456,4} C:\euphoria\include\std/text.e: lower_case_SET = {} upper_case_SET = {} encoding_NAME = {65'A',83'S',67'C',73'I',73'I'} C:\euphoria\include\std/io.e: mem0 = 46098224 mem1 = 46098225 mem2 = 46098226 mem3 = 46098227 C:\euphoria\include\std/get.e: input_file = <no value> input_string = <no value> string_next = <no value> ch = <no value> leading_whitespace = <no value> C:\EUPHORIA\BIN\ed.ex: ESCAPE = 27 CR = 13 NUM_PAD_ENTER = 13 BS = 8 HOME = 327 END = 335 CONTROL_HOME = 375 CONTROL_END = 373 PAGE_UP = 329 PAGE_DOWN = 337 INSERT = 338 NUM_PAD_SLASH = -999 DELETE = 339 XDELETE = -999 ARROW_LEFT = 331 ARROW_RIGHT = 333 CONTROL_ARROW_LEFT = 371 CONTROL_ARROW_RIGHT = 372 ARROW_UP = 328 ARROW_DOWN = 336 F1 = 315 F10 = 324 F11 = 389 F12 = 390 CONTROL_DELETE = 403 delete_cmd = {100'd',101'e',108'l',32' '} compare_cmd = {102'f',99'c',32' ',47'/',84'T',32' '} SAFE_CHAR = 14 buffer = <no value> screen_length = 24 screen_width = 80'P' BLANK_LINE = {32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ', 32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ', 32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ', 32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ', 32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ', 32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ', 32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' ',32' '} window_base = 1 window_length = 23 window_list = {0} buffer_list = {} file_name = {} b_line = <no value> b_col = <no value> s_line = <no value> s_col = <no value> s_shift = 0 stop = <no value> kill_buffer = {} adding_to_kill = <no value> multi_color = <no value> auto_complete = <no value> dot_e = <no value> modified = <no value> editbuff = 0 buffer_version = <no value> my_buffer_version = <no value> control_chars = <no value> cr_removed = <no value> start_line = 0 start_col = 0 error_message = {} file_history = {} command_history = {} search_history = {} replace_history = {} config = {1,0,24,80'P',0,0,0,1} window_number = 1 buffer_number = 0 key_queue = {} edit_tab_width = <no value> C:\euphoria\include\euphoria/syncolor.e: NORMAL_COLOR = 3342387 COMMENT_COLOR = 16711765 KEYWORD_COLOR = 255 BUILTIN_COLOR = 16711935 STRING_COLOR = 41011 BRACKET_COLOR = {3342387,10040115,255,5570815,65280} char_class = {2,2,2,2,2,2,2,2,7,8,2,2,7,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,7,2,5,2,2,2,2,5,4,4,2,2,2,6,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,2,4,2,3,2,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,2,4,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2} line = <no value> color_segments = <no value> current_color = <no value> seg_start = <no value> seg_end = <no value> C:\EUPHORIA\BIN\ed.ex: searching = 0 replacing = 0 match_case = 1 find_string = {} replace_string = {} Traced lines leading up to the failure: C:\EUPHORIA\BIN\ed.ex:1085 c = wait_key() C:\euphoria\include\std/console.e:174 return machine_func(M_WAIT_KEY, 0) C:\EUPHORIA\BIN\ed.ex:1086 if check_break() then C:\euphoria\include\std/console.e:140 return machine_func(M_CHECK_BREAK, 0) C:\EUPHORIA\BIN\ed.ex:1087 c = CONTROL_C C:\EUPHORIA\BIN\ed.ex:1090 if c = NUM_PAD_ENTER then C:\EUPHORIA\BIN\ed.ex:1092 elsif c = NUM_PAD_SLASH then C:\EUPHORIA\BIN\ed.ex:1094 elsif c = 296 or c = 282 and ACCENT = 1 then C:\EUPHORIA\BIN\ed.ex:1097 elsif c = ESCAPE then C:\EUPHORIA\BIN\ed.ex:1226 return c C:\EUPHORIA\BIN\ed.ex:1273 if char = CR or char = 10 then C:\EUPHORIA\BIN\ed.ex:1276 elsif char = BS then C:\EUPHORIA\BIN\ed.ex:1284 elsif char = ARROW_LEFT then C:\EUPHORIA\BIN\ed.ex:1289 elsif char = ARROW_RIGHT then C:\EUPHORIA\BIN\ed.ex:1295 elsif char = ARROW_UP then C:\EUPHORIA\BIN\ed.ex:1304 elsif char = ARROW_DOWN then C:\EUPHORIA\BIN\ed.ex:1313 elsif char = DELETE or char = XDELETE then C:\EUPHORIA\BIN\ed.ex:1320 elsif char = HOME then C:\EUPHORIA\BIN\ed.ex:1323 elsif char = END then C:\EUPHORIA\BIN\ed.ex:1326 elsif (char >= 32 and char <= 255) or char = '\t' then C:\EUPHORIA\BIN\ed.ex:1349 elsif char = CONTROL_C then C:\EUPHORIA\BIN\ed.ex:1351 refresh_all_windows() C:\EUPHORIA\BIN\ed.ex:1233 w = window_number C:\EUPHORIA\BIN\ed.ex:1234 save_state() C:\EUPHORIA\BIN\ed.ex:920 window_list[window_number] = {buffer_number, buffer_version, window_base,