diff --git a/programs/develop/libraries/box_lib/trunk/box_lib.mac b/programs/develop/libraries/box_lib/trunk/box_lib.mac index 39730f2299..cc272818c9 100644 --- a/programs/develop/libraries/box_lib/trunk/box_lib.mac +++ b/programs/develop/libraries/box_lib/trunk/box_lib.mac @@ -437,7 +437,7 @@ ted_fun_on_key_ctrl_n equ dword[edi+206] ;... Ctrl+N (соз ted_fun_on_key_ctrl_s equ dword[edi+210] ;... Ctrl+S ted_buffer_size equ dword[edi+214] ;размер буфера копирования/вставки ted_fun_find_err equ dword[edi+218] ;указатель на функцию вызываемую если поиск закончился неудачно -ted_fun_init_synt_err equ dword[edi+222] ;указатель на функцию вызываемую при ошибочном открытии файла синтаксиса +;ted_fun_init_synt_err equ dword[edi+222] ;указатель на функцию вызываемую при ошибочном открытии файла синтаксиса ted_fun_draw_panel_buttons equ dword[edi+226] ;указатель на функцию рисования панели с кнопками ted_fun_draw_panel_find equ dword[edi+230] ;указатель на функцию рисования панели поиска ted_fun_draw_panel_syntax equ dword[edi+234] ;указатель на функцию рисования панели синтаксиса diff --git a/programs/develop/libraries/box_lib/trunk/t_edit.mac b/programs/develop/libraries/box_lib/trunk/t_edit.mac index 627c62b630..4ad2e8b55e 100644 --- a/programs/develop/libraries/box_lib/trunk/t_edit.mac +++ b/programs/develop/libraries/box_lib/trunk/t_edit.mac @@ -685,22 +685,10 @@ endp align 4 -proc ted_init_syntax_file, edit:dword, file:dword, f_name:dword +proc ted_init_syntax_file, edit:dword pushad mov edi,dword[edit] - mov eax,70 - mov ebx,dword[file] - mov dword[ebx], 0 - mov dword[ebx+4], 0 - mov dword[ebx+8], 0 - mov ecx,ted_syntax_file_size - mov dword[ebx+12], ecx - m2m dword[ebx+16], ted_syntax_file - mov byte[ebx+20], 0 - m2m dword[ebx+21], dword[f_name] - int 0x40 - mov ecx,0x100 mov edx,ted_arr_key_pos @@: @@ -714,22 +702,6 @@ proc ted_init_syntax_file, edit:dword, file:dword, f_name:dword mov ted_help_text_f1,0 mov ted_help_id,-1 ;идентификатор слова для справки - cmp eax,6 - je @f - cmp eax,0 - je @f - cmp ax,10 - jl .zifra_0_9 - mov al,'?' - sub ax,48 - .zifra_0_9: - add ax,48 - cmp ted_fun_init_synt_err,0 - je .no_colors - call ted_fun_init_synt_err - jmp .no_colors - @@: - mov eax,edi ;сохраняем значение edi mov esi,ted_syntax_file add edi,ted_offs_count_colors diff --git a/programs/other/t_edit/t_button.inc b/programs/other/t_edit/t_button.inc index da0bb26929..f94a67467a 100644 --- a/programs/other/t_edit/t_button.inc +++ b/programs/other/t_edit/t_button.inc @@ -18,7 +18,7 @@ struct symbol ends -hed db 'TextEditor 19.04.12',0 ;подпись окна +hed db 'TextEditor 31.05.12',0 ;подпись окна sc system_colors ;fn_icon db 'te_icon.bmp',0 @@ -197,23 +197,36 @@ ted_save_err_msg: ;description: ; функция нажатия на кнопку [Применить] в панели синтаксиса align 4 -proc ted_but_open_syntax, edit:dword - push ebx edi - mov edi,dword[edit] +proc ted_but_open_syntax uses eax ebx ecx edi, edit:dword + mov edi,dword[edit] + cmp ted_panel_id,TED_PANEL_SYNTAX + jne @f + stdcall dword[tl_node_get_data], tree1 + pop dword[fn_col_option] + mov ebx,dword[fn_col_option] + copy_path ebx,fn_syntax_dir,file_name_rez,0x0 + copy_path file_name_rez,sys_path,file_name,0x0 - cmp ted_panel_id,TED_PANEL_SYNTAX - jne @f - stdcall dword[tl_node_get_data], tree1 - pop dword[fn_col_option] - mov ebx,dword[fn_col_option] - copy_path ebx,fn_syntax_dir,file_name_rez,0x0 - copy_path file_name_rez,sys_path,file_name,0x0 - stdcall [ted_init_syntax_file],edi,run_file_70,file_name - call [ted_text_colored] - stdcall [ted_draw],edi - @@: - pop edi ebx - ret + mov ebx,run_file_70 + mov dword[ebx], 0 + mov dword[ebx+4], 0 + mov dword[ebx+8], 0 + mov ecx, ted_syntax_file_size + mov dword[ebx+12], ecx + m2m dword[ebx+16], ted_syntax_file + mov byte[ebx+20], 0 + m2m dword[ebx+21], file_name + mcall 70 + cmp eax,0 + jne .end_0 + call ted_on_init_synt_err + jmp @f + .end_0: + stdcall [ted_init_syntax_file],edi + call [ted_text_colored] + stdcall [ted_draw],edi + @@: + ret endp ;description: diff --git a/programs/other/t_edit/t_data.inc b/programs/other/t_edit/t_data.inc index adc97ddb25..4e6f8df1a8 100644 --- a/programs/other/t_edit/t_data.inc +++ b/programs/other/t_edit/t_data.inc @@ -488,7 +488,7 @@ tedit0: ; .fun_on_key_ctrl_s dd 0 ;+210 ... Ctrl+S .buffer_size dd BUF_SIZE ;+214 размер буфера копирования/вставки .fun_find_err dd ted_on_find_err ;+218 указатель на функцию вызываемую если поиск закончился неудачно - .fun_init_synt_err dd ted_on_init_synt_err ;+222 указатель на функцию вызываемую при ошибочном открытии файла синтаксиса + .fun_init_synt_err dd 0 ;+222 .fun_draw_panel_buttons dd draw_but_toolbar ;+226 указатель на функцию рисования панели с кнопками .fun_draw_panel_find dd draw_panel_find ;+230 указатель на функцию рисования панели поиска .fun_draw_panel_syntax dd draw_panel_syntax ;+234 указатель на функцию рисования панели синтаксиса diff --git a/programs/other/t_edit/t_edit.asm b/programs/other/t_edit/t_edit.asm index feef6dc889..60edbd6911 100644 --- a/programs/other/t_edit/t_edit.asm +++ b/programs/other/t_edit/t_edit.asm @@ -169,7 +169,23 @@ mov ecx,ebx mov ebx,dword[fn_col_option] copy_path ebx,fn_syntax_dir,file_name_rez,0x0 copy_path file_name_rez,sys_path,file_name,0x0 - stdcall [ted_init_syntax_file], tedit0,run_file_70,file_name + mov edi, tedit0 + mov ebx,run_file_70 + mov dword[ebx], 0 + mov dword[ebx+4], 0 + mov dword[ebx+8], 0 + mov ecx, ted_syntax_file_size + mov dword[ebx+12], ecx + m2m dword[ebx+16], ted_syntax_file + mov byte[ebx+20], 0 + m2m dword[ebx+21], file_name + mcall 70 + cmp eax,0 + jne .end_0 + call ted_on_init_synt_err + jmp @f + .end_0: + stdcall [ted_init_syntax_file], edi ;--- get cmd line --- cmp byte[openfile_path+3],0 ;openfile_path