2002-05-13 Andrew V. Samoilov * editcmd.c (edit_save_file): Call mc_chown () and mc_chmod () before mc_open () to prevent hangs over ftpfs. * edit.h: Remove open, close, write, read and mkdir declaration. * edit.c: Use mc_open, mc_close, mc_write, mc_read, mc_rename, mc_chmod and mc_chown. Don't cast (char *) to (unsigned long) in pointer arithmetics. * editcmd.c: Likewise. 2002-03-25 Andrew V. Samoilov * syntax.c (edit_read_syntax_file): Use system wide Syntax Highlighting definitions' file if there is no users one. 2002-03-18 Pavel Roskin * edit.h: Use eregex.h, not regex.h. From Alexander Varakin 2002-02-27 Andrew V. Samoilov * editcmd.c (edit_replace_cmd): Eliminate fin_string and use message() to fix possible buffer overflow. (edit_search_cmd): Likewise. 2002-02-18 Andrew V. Samoilov * syntax.c (convert): Fix buffer overflow for ".*\" cases. 2002-01-22 Pavel Roskin * editdraw.c (edit_scroll_screen_over_cursor): Do nothing if the edit widget has zero width or height. 2002-01-21 Pavel Roskin * edit.c: Rename DELETE to DELCHAR to avoid macro redefinition on Win32. * edit.h: Likewise. 2002-01-21 Matthias Urban * edit.c: Add support for CK_Complete_Word event. * editcmddef.h: Likewise. * edit_key_translator.c (cooledit_key_map): Bind Alt-Tab to CK_Complete_Word. (emacs_key_map): Likewise. * editcmd.c: Implement word completion. 2002-01-21 Pavel Roskin * editmenu.c (CmdMenuEmacs): Add mail command without shortcut. Users of emacs keys should be able to send mail too. 2002-01-15 Andrew V. Samoilov * syntax.c (syntax_g_free): New macro to release and NULLify glib allocated memory area(s). (strdup_convert): Rename to ... (convert): ... this. Don't strdup passed string. (get_args): Use convert instead of strdup_convert. (free_args): Make it do notning macro. (open_include_file): Eliminate p array. Use glib function to construct error_file_name. Use PATH_SEP instead of '/'; (edit_read_syntax_file): Use PATH_SEP_STR. (edit_load_syntax): Use syntax_g_free to release error_file_name. (edit_read_syntax_rules): Likewise. Eliminate c->single_char. It's only written but never read. * edit.h (struct context_rule): Comment out single_char field. It is written once but never read. * edit-widget.h: Use PATH_SEP_STR. 2001-12-22 Andrew V. Samoilov * editcmd.c (edit_goto_cmd): Use g_free to release f. (edit_save_file): Use PATH_SEP instead of '/'. Undefine "close" before closing file created by mc_mkstemps. Define close to mc_close after it - temporary fix. (sprintf_p): Don't cast (char *) to (unsigned long). * syntax.c (read_one_line): Undo last patch - errno is a function on some systems. Check ferror() status before everithing else if fgetc returns EOF. Accept last line without trailing newline. (compare_word_to_right): Don't cast p and q to unsigned long. (apply_rules_going_right): Likewise. 2001-12-21 Pavel Roskin * edit.c (user_menu): Don't move the cursor before and after inserting the block. Reported by Matthias Urban * syntax.c (read_one_line): Clear errno before using it. Don't use the result of fgetc() if errno is EINTR. 2001-11-28 Andrew V. Samoilov * syntax.c (apply_rules_going_right): Fix crash for lines like \s+ \n lightgray/13 red in Syntax file. (read_one_line): Use EOF instead of -1. (get_args): Fix buffer overflow for l without trailing whitespace(s). (break_a): New macro. (edit_read_syntax_rules): Use break_a to fix memory leaks. (edit_load_syntax): Eliminate s and use message to prevent buffer overflow. * editdraw.c (edit_render): Eliminate f. It's only written but never read. 2001-11-27 Andrew V. Samoilov * editmenu.c (edit_wrap_cmd): Use g_free() on the result of input_dialog(). 2001-11-22 Andrew V. Samoilov * editcmd.c (edit_save_file): Use g_free() on the result of mc_mkstemps(). (edit_replace_cmd): Fix rare memory leaks. 2001-11-19 Andrew V. Samoilov * edit.c (edit_renew): Release dir after use. * editcmd.c (edit_replace_dialog): Eliminate tsearch_text, treplace_text and targ_order. (edit_replace_cmd): edit_replace_dialog gives g_malloced strings, so g_strdup/g_free have to be used. Accept only positive pattern number in Scanf search and replace. (edit_save_file): Enable safe save and backups on remote VFS. 2001-11-16 Andrew V. Samoilov * edit_key_translator.c (cooledit_key_map): Add C-k, CK_Delete_To_Line_End. * edit.c (user_menu): Don't assign block_file twice. 2001-11-07 Andrew V. Samoilov * edit.c (edit_reload): destroy_dlg g_free()s widget(s), so g_malloc/g_free have to be used. (edit_init): Ditto. Eliminate st. 2001-11-05 Andrew V. Samoilov * edit.h (edit_execute_cmd): Declare it here. * edit.c: Remove edit_execute_cmd declaration. (edit_execute_cmd): Use edit_print_string instead of edit_printf. * editcmd.c: Remove edit_execute_cmd declaration. (edit_search_dialog): Eliminate tsearch_text. (edit_search_cmd): edit_search_dialog gives g_malloc()ed exp. Use g_strdup/g_free instead of strdup/free. (edit_mail_dialog): quick_dialog use g_strdup, so g_free must be used. (edit_load_cmd): input_dialog returns g_malloc(ed) string, so g_free has to be used. (edit_save_block_cmd): Likewise. (edit_insert_file_cmd): Likewise. (edit_sort_cmd): Likewise. (edit_save_as_cmd): Likewise. Memory leak fixed. * bookmark.c (book_mark_clear): Eliminate rend. It's only written but never read. (book_mark_flush): Likewise. (book_mark_inc): Likewise. (book_mark_dec): Likewise. 2001-10-23 Pavel Roskin * edit.c (user_menu): If the error file is missing, treat it as success. Truncate block file unconditionally. 2001-10-22 Pavel Roskin * edit.c: Stop using _EDIT_C definition. Move variable declarations from edit.h, make static or eliminate if possible. Report errors immediately. * edit.h: Likewise. * editwidget.c (edit): Don't report errors from edit_init(), they are reported in place. 2001-10-20 Pavel Roskin * editcmd.c (sprintf_p): Declare with the printf attribute. Make static. * edit.h: Declare edit_printf() with the printf attribute. 2001-10-18 Pavel Roskin * edit.c (check_file_access): Only allow to edit regular files. Use stat() before open() to prevent hangs on pipes, use fstat() afterwards if stat() was unsuccessful. 2001-09-17 Pavel Roskin * edit.h: Don't use macro `stat' - it's already a macro on Solaris 8 with large file support. * editcmd.c: Replace stat() with mc_stat(). * edit.c: Likewise. 2001-09-11 Pavel Roskin * syntax.c (syntax_text): Remove, it's a separate file now. (upgrade_syntax_file): Remove. (edit_read_syntax_file): Use check_for_default(). 2001-09-08 Pavel Roskin * edit.h: Remove some useless definitions. 2001-09-07 Pavel Roskin * Makefile.am: Don't define "MIDNIGHT" - it's unused now. * edit.c: Eliminate all code disabled for the text edition. * editcmddef.h: Likewise. * editmenu.c: Likewise. * editwidget.c: Likewise. * syntax.c: Likewise. * wordproc.c: Likewise. * edit-widget.h: Change ~/.cedit to ~/.mc/cedit to keep mcedit files separate from cooledit. * bookmark.c: Eliminate all code disabled for the text edition. * edit-widget.h: Likewise. * editcmd.c: Likewise. * editdraw.c: Likewise. * editoptions.c: Likewise. * edit.h: Eliminate all code disabled for the text edition. Reorder and simplify includes. * edit.c: Likewise. 2001-09-06 Pavel Roskin * syntax.c (syntax_text): Add PHP support from Cooledit. 2001-09-04 Pavel Roskin * Makefile.am (AM_CFLAGS): Remove CFLAGS, don't use substituted values directly. * syntax.c (syntax_text): Remove useless ']' in the Perl and Python rules. Change shell script rule to use more portable regular expression. * editcmd.c (edit_block_process_cmd): Prepend space to the command to avoid polluting bash history. Document arguments. Fix crash if block is 0 - not used currently. 2001-08-26 Pavel Roskin * Makefile.am: Don't install libedit.a. * Makefile.in: Converted to ... * Makefile.am: ... this. 2001-08-24 Pavel Roskin * Makefile.in (EDITSRC): Add headers. (CPPFLAGS): Remove reference to gtkedit. Copy all necessary files from gtkedit. * Makefile.in (EDITLINKS): Merge with EDITSRC, remove all references. 2001-08-24 Pavel Roskin * syntax.c (syntax_text): Fix recognizing pdksh and zsh scripts. 2001-08-23 Pavel Roskin * editcmd.c (edit_block_process_cmd): Use execute(), not my_system() to relieve interactive scripts, such as spell checker, from saving and restoring the terminal. 2001-08-19 Pavel Roskin * gtkedit.c: Include if present - it should always be included before to avoid redefining MIN and MAX. * editcmd.c [!MIDNIGHT]: Undefine B_ENTER and B_CANCEL before redefining them. * edit.h: Include if present. Include Gtk+ headers as system headers. * gtkedit.c: Include Gtk+ headers as system headers. 2001-08-18 Pavel Roskin * syntax.c (syntax_text): Highlight *.pot as PO files. * edit.h [GTK]: Fix definition of edit_message_dialog(). * gtkedit.c (gtk_edit_dialog_message): Use "OK" button, not "Cancel", for consistency with the text edition. 2001-08-17 Pavel Roskin * syntax.c (syntax_text): Add support for PO files. 2001-08-12 Pavel Roskin * edit.c: Handle CK_Shell. * editcmddef.h: Define CK_Shell. * editmenu.c (FileMenu): Remove C-o from the "Open file..." item. (FileMenuEmacs): Likewise. 2001-08-06 Andrew V. Samoilov * editcmd.c (edit_replace_prompt): Fix menu location calculation. 2001-08-01 Pavel Roskin * editcmd.c (edit_save_file): Temporarily disable safe save and backups on remote VFS because it doesn't work. Use mc_mkstemps() instead of tempnam(). 2001-07-29 Pavel Roskin * syntax.c (syntax_text): Add support for S-Lang. 2001-07-28 Pavel Roskin * editcmd.c (menu_save_mode_cmd): Resurrect i18n code lost in the last resync with Cooledit. Reported by David Martin * gtkedit.c (gtk_edit_delete_cb): Handler for "delete_event". (edit): Connect it. 2001-07-27 Pavel Roskin * edit.c: Fix include. 2001-07-20 Pavel Roskin * syntax.c (open_include_file) [GTK]: Use mc_home instead of LIBDIR. 2001-07-19 Pavel Roskin * editcmd.c (edit_canonicalize_pathname): Don't ever use getwd(), use g_get_current_dir() instead. * editoptions.c (edit_options_dialog): Call edit_load_syntax() if user turned syntax highlighting off to unload the rules. 2001-07-17 Pavel Roskin * edit.h [MIDNIGHT]: Declare wedit. * editmenu.c: Remove wedit declaration. * editoptions.c (edit_options_dialog): Load syntax rules if user turned syntax highlighting on. * syntax.c (edit_load_syntax): Don't load rules if syntax highlighting is disabled. 2001-07-13 Pavel Roskin * editoptions.c (edit_options_dialog): Allow numbers for tab spacing. Reported by mharris@redhat.com. http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=34852 * editcmd.c (menu_save_mode_cmd): Give meaningful names to the input fields instead of "i" so that they have separate history. * editoptions.c (edit_options_dialog): Likewise. 2001-07-11 Pavel Roskin * editdraw.c (status_string): Use g_snprintf() instead of snprintf(). From Libor Motyčka 2001-07-10 Pavel Roskin * gtkeditkey.c (edit_translate_key): When processing bindings with Alt check that Shift is not pressed - it's handled later. 2001-07-05 Pavel Roskin * editdraw.c: Comment fixes. 2001-06-26 Pavel Roskin * edit-widget.h (editor_widget): Rename `stat' to `stat1' to avoid problems on Solaris with 64-bit file access, when `stat' is a macro. All users adjusted. Reported by Maksym Polyakov . 2001-06-25 Pavel Roskin * gtkedit.c: Remove home_dir - it's declared in main.c. 2001-06-15 Pavel Roskin * editcmd.c (canonicalize_pathname) [GTK]: Rename to ... (edit_canonicalize_pathname): ... this to avoid namespace clash. * edit.h [MIDNIGHT]: Include "src/cmd.h" and "src/user.h". Remove declarations duplicating "src/user.h". [GTK]: Include "src/dialog.h" and "src/util.h". * editmenu.c (edit_wrap_cmd): Fix declaration. (edit_about_cmd): Likewise. * editwidget.c (get_key_state): Likewise. * editcmd.c (edit_quit_cmd): Don't use strcmp on the result of gtk_dialog_cauldron() since it's NULL if the dialog has been closed without using buttons. * edit.c (edit_execute_cmd): Put time format to a variable to avoid gcc warning about Y2K issues with %c in strftime(). 2001-06-14 Pavel Roskin * edit.c: Declare cmd_F* static. Comment out cmd_F9. * edit.c: Use indented #error for compatibility with old C compilers. 2001-06-13 Pavel Roskin * edit.c (edit_execute_cmd) [GTK]: Disable user menu - it doesn't work. (user_menu) [GTK]: Disable. * gtkedit.c (tb_items): Use complete words. Disable pull-down menu. 2001-06-09 Pavel Roskin * editcmd.c (catstrs): Use interactive_display() without specifying the help file. From Andrew V. Samoilov. 2001-06-08 Andrew V. Samoilov * editcmd.c [HAVE_CHARSET]: Really include charset.h. * editmenu.c (edit_wrap_cmd): Memory leaking fixed. 2001-06-05 Pavel Roskin * edit.c [HAVE_CHARSET]: Include charsets.h and selcodepage.h. * editcmd.c [HAVE_CHARSET]: Add charset conversion support. * editdraw.c [HAVE_CHARSET]: Likewise. From Andrew V. Samoilov and Walery Studennikov . 2001-06-01 Pavel Roskin * gtkedit.h: Warning fix - use stricter declarations for destroy_me and destroy_me_user_data. 2001-05-31 Pavel Roskin * Makefile.in: Define HAVE_X and HAVE_GNOME, not just GTK - header files are using them. * editdraw.c (edit_render) [GTK]: Revert previous patch, it broke compilation. 2001-05-31 Andrew V. Samoilov * editdraw.c (edit_status): Use strcpy (s, ) instead of sprintf (s, "%s", ). (set_color) [MIDNIGHT]: Became a macro. (render_edit_text) [defined(MIDNIGHT) || defined(GTK)]: Warning fix. (edit_render) [GTK]: Eliminate win variable. (key_pending) [!GTK]: Warning fix. 2001-05-30 Pavel Roskin * editdraw.c (status_string): Use is_printable(). Declare static. Eliminate intermediate buffer. Use memset() for filling. Print byte as unsigned. Use C notation for hex numbers. * editdraw.c (status_string): Don't print non-printable chars. Better formatting. Print "" at the end of file instead of -1. Use snprintf instead of sprintf. 2001-05-30 Andrew V. Samoilov * syntax.c (open_include_file) [MIDNIGHT]: Don't hardcode location of syntax file(s) with LIBDIR, use mc_home instead. From Ludovic Drolez . (syntax_text): Use perl.syntax to highlight perl modules (.pm). 2001-05-18 Pavel Roskin * editcmd.c (edit_replace_prompt): Warning fix. 2001-02-26 Pavel Roskin * editcmd.c (edit_delete_macro_cmd) [MIDNIGHT]: Don't use CK_Macro on the argument to edit_delete_macro(). * edit.c (edit_init_file): Remove, it's useless. All the necessary files should be created when needed. * edit.h: Remove declaration of edit_init_file(). 2000-11-01 Andrew V. Samoilov * editcmd.c (canonicalize_pathname) [GTK]: memory leaking fixed 2000-10-30 Pavel Roskin * editcmd.c (canonicalize_pathname) [GTK]: Make the argument constant. (edit_split_filename) [GTK]: Make the second argument constant to match the declaration. 2000-10-30 Andrew V. Samoilov * editcmd.c (edit_save_file): better error handling on writting (edit_sort_cmd): saved sort options proposed in dialog edit.h, editcmd.c: declaration for edit_save_block () added (edit_split_filename): f constified * edit.c (edit_init) [ENABLE_NLS]: option_whole_chars_search expanded by national letters using current locale on first call (edit_file_is_open) [MIDNIGHT]: all occurences and related code are commented (edit_execute_cmd): typo in error message fixed 2000-09-30 Pavel Roskin * libgettext.h: Removed, shouldn't be here. * Makefile.in: Adjusted to remove libgettext.h 2000-09-15 Andrew V. Samoilov * editcmd.c (edit_delete_macro, edit_(load|save)_macro_cmd): don't translate keywords written to macro file or macro don't work, at least for Cyrillic. Made this as separate commit, so, if it seriously breaks compatibility it's easy to revert it. 2000-09-15 Andrew V. Samoilov * editcmd.c (edit_save_file): fopen()+fwrite()+fclose() replaced by open()+write()+close() to restore possibility to edit files over Midnight Commander's VFSes (edit_replace_cmd) [MIDNIGHT]: some more right algorithm to calculate menu coordinates used. I don't like if menu hides replaced text. (edit_goto_cmd): Memory leaking fixed when f is empty string 2000-09-07 Andrew V. Samoilov * edit.c (check_file_access) [MIDNIGHT,GTK]: error message localized; some cosmetics changes to avoid annoying warnings * editcmd.c (edit_save_file): pclose returns 0 on success, file fclose()d when fwrite fails (pipe_mail): malloc () + sprintf () replaced by g_strdup_printf () * syntax.c (syntax_text): Makefile replaced by [Mm]akefile to cover makefile and GNUmakefile (upgrade_syntax_file): infinitive loop fixed when rule file is outdated but it cannot be unlinked/overwritten 2000-08-30 Pavel Roskin * editwidget.c [!MIDNIGHT]: include xdnd.h * Makefile.in: distribute xdnd.h 2000-08-18 Pavel Roskin * Makefile.in: adjusted list of distributed files. Added rule for rebuilding Makefile 2000-08-08 Pavel Roskin * gtkedit.c [GTK]: don't include mousemark.h * gtkedit.h [GTK]: likewise 2000-08-03 Pavel Roskin * mousemark.c, mousemark.h: removed * Makefile.in: don't distribute mousemark.h * gtkedit.c [MIDNIGHT]: don't include mousemark.h * gtkedit.h [MIDNIGHT]: likewise 2000-07-20 Andrew V. Samoilov * gtkedit/editcmd.c (edit_save_file): check fclose()s return value to prevent loss of data (edit_block_process_cmd): don't translate empty string * gtkedit/edit.h (edit_get_write_filter, edit_write_stream, edit_init_file): added declarations * edit.c (edit_filters): constified (edit_get_write_filter): filename constified (user_menu): don't translate empty string * syntax.c (syntax_text): constified (upgrade_syntax_file): syntax_line constified, f closed after use