Mon Oct 5 21:33:14 1998 Norbert Warmuth * screen.c (parse_display_format): Don't dereference NULL pointer when format string is an empty string. Fri Oct 2 19:22:24 1998 Norbert Warmuth * setup.c (panel_load_setup): equality operator used for assignment * setup.c: save and restore new global variable/option ftp_use_unix_list_options Mon Sep 28 21:55:13 1998 Norbert Warmuth * find.c: Changed hotkey of the continue-button (both Chdir and Continue used `C'). Tue Sep 15 21:52:00 1998 Norbert Warmuth * mc.hlp, doc/mc.1.in, doc/mc.sgml: updated my EMail address 1998-09-14 Norbert Warmuth * file.c (move_dir_dir): Fixed severe bug reported by Andrew Pechenov (losing files when moving directories cross filesystem boundaries): make sure erase_list is emptied always not only when we deleted files. 1998-08-26 Ludovic Drolez * Made the program relocatable by using the MCHOME environment variable. Mon May 25 23:32:35 1998 Norbert Warmuth * editdraw.c (print_to_widget): Ifdef'd SLang specific code in order to make it compile with ncurses. Syntax highlighting in the internal editor is already disabled when SLang isn't used. 1998-05-24 Miguel de Icaza * widget.c (port_region_marked_for_delete): New per-port piece of code: Provides a way for good selection killing. Sun May 24 02:45:03 1998 Norbert Warmuth * utilunix.c, util.h (errno_dir_not_empty): deleted Sat May 23 22:29:57 1998 Norbert Warmuth * file.c (check_dir_is_empty): New function which takes a path and returns -1 on error, 1 if there are no entries besides "." and ".." in the directory path points to, 0 else. This function actually opens and reads the directory and doesn't do tricks we used to do with rmdir. * file.c (erase_dir, erase_dir_iff_empty): Use check_dir_is_empty to detect non empty directories. The old code tried to remove the directory and decided on errno whether the failure of rmdir was caused by a non empty directory or whether there was a different error. Unfortunatly not every filesystem sets errno to EDIRNOTEMPTY if you try to delete a non empty directory. Namely the linux user space nfs server sets errno to EIO, Suns nfs server sets it to EEXIST and the AIX nfs server sets it to ??? (Steve reported problems on AIX so I guess AIX sets errno to a value we currently don't check). 1998-maj-18 Tamasi Gyorgy (gt_cosy@usa.net) * lib/mc.menu: 'Z' on 'tar.Z' and 'tar.z' files: '%f' -> '$1'. * lib/mc.ext.in.qnx.diff, lib/mc.menu.qnx.diff (QNX): modified 'mc.ext.in' (tar -t: output to stderr); modified 'mc.menu' (tar is not GNU tar: doesn't know '-z'); support for '*.tar.F': 'freeze'-compressed tar files [No automatic configure/install implemented: patches must be applied before running 'configure' (mc.ext.in.qnx.diff: this patch can be not only QNX-specific...)] * lib/Makefile.in: 'mc.ext.in.qnx.diff' and 'mc.menu.qnx.diff' added to DISTLIB. * slang/sldisply.c: SLTT_TRANSP_ACS_PATCH dependant code: The problem: some terminals (QNX/qansi*, SCO OS5/ansi [?]) map the whole upper half of the ASCII table to the lower half, when alt-char-set is activated with the smacs/as string-sequence. This means, that if 0 <= ch < 128 written to the terminal, it will be translated to (ch+128) automatically by the terminal: so not only the line-drawing characters can be written, when the alt-char-set is activated. It implicitly means, that space, NL, CR, etc. characters (exactly: anything besides the "standard" line drawing characters) can not be written directly to the terminal, when the alt-char-set is activated, because writing these characters doesn't cause an implicit/temporary switching-back to the standard char-set! The original code in SLang assumes that space, NL, CR, etc. can be printed when alt-char-set is activated. If SLTT_TRANSP_ACS_PATCH is defined, the modified code will not use this assumption. [Remark: the patch-code is not the most exact solution, but works...] QNX_QANSI_SLANG_COMPAT_ACS_PATCH dependant code: A more OS/terminal-specific solution for the problem mentioned above (->SLTT_TRANSP_ACS_PATCH). If QNX_QANSI_SLANG_COMPAT_ACS is defined, the default smacs/sa, rmacs/ae, acsc/ac [and sgr/sa, if it would be used!] command sequences will be replaced internally with the "old style" (pre-QNX 4.23) sequences in case of QNX/qansi terminals. Using these optional command sequences the terminal remains compatible with the original SLang code (without using the workaround-code enabled by defining SLTT_TRANSP_ACS_PATCH). Remark: Currently SLTT_TRANSP_ACS_PATCH is not auto-configured by 'configure'. (Must be manually defined...) There is some (QNX-specific) auto-configuration hand-coded in the source: #ifdef SLTT_TRANSP_ACS_PATCH # if defined(__QNX__) && defined(QNX_QANSI_SLANG_COMPAT_ACS) # undef SLTT_TRANSP_ACS_PATCH # endif #else # if defined(__QNX__) && !defined(QNX_QANSI_SLANG_COMPAT_ACS) # define QNX_QANSI_SLANG_COMPAT_ACS 1 # endif #endif * slang/slutty.c: "newtty.c_iflag &= ~(ECHO | INLCR | ICRNL);" ECHO(0x08) is a c_lflag bit, it means PARMRK(0x08) in c_iflag. (!?!) * src/file.c: 'do_reget' can be extern if (USE_VFS && USE_NETCODE), not if (USE_VFS). * src/find.c (search_content()): Variable 'i' "must be" 'int', not 'char'. ["i == -1": (buggy?) WCC 10.6 doesn't convert automatically (int)(-1) to (char)(-1) (GCC does), so "comparison result always 0" warning produced. It is cleaner to define 'i' as 'int', than cast '-1' to 'char', because 'read()' returns 'int'.] * src/key.c (init_key()): Call load_xtra_key_defines() and clear 'use_8th_bit_as_meta' by default under QNX, if a 'qnx*' terminal detected. (A saved config file (mc.ini) can override it later...) * src/key.h: Declare load_xtra_key_defines(). * src/keyxdef.c: Provides a method to define some platform-specific additional key mappings. (e.g. QNX terminals can handle most of META-? combinations as ALT-?...) ('keyxdef.c' currently not listed in doc/FILES...) * src/layout.c: TIOCGWINSZ must be available (so (?) included), because window-resizing code doesn't work, if not defined. * src/main.c: 'print_usage()' is reserved name in the QNX run-time library, so 'print_usage()' renamed to 'print_mc_usage()' * src/mouse.c (QNX): ncurses 1.9.8a ported to QNX doesn't provide the 'SP' pointer as a global symbol in the library, so the keyok() emulation currently can not be used under QNX (4.24 & Watcom C 10.6 release version). * src/slint.c (QNX): 'qansi*' terminals added to the color_terminals[] list. * src/subshell.c, src/utilunix.c (QNX): include to get prototype for exec*()!!! [See README.QNX/Section 1.4 about the dangerous "No prototype for " warnings emitted by Watcom C, if is a 'printf()'-style function having variable number of arguments and you compile your source with the default register calling convention!!!] * Makefile.in: 'keyxdef' module added to SRCS and OBJS. * /README.QNX: QNX-specific notes. * /configure (line 3369), /configure.in (line 88): 'test x$CCOPTS = x;' modified to 'test "x$CCOPTS" = x;' * /Makefile.in: README.QNX added to DISTMAIN. Thu May 21 00:09:45 1998 Norbert Warmuth * menu.c (menubar_event): Don't set menubar->selected to the invalid value -1. Fix for the bug reported by root@liepa.soften.ktu.lt * menu.c (menubar_drop_compute): removed the check for inrange items which isn't necessary any longer. Wed May 20 16:27:56 1998 Norbert Warmuth * widget.c (history_put): input line history was defunct because there was an #ifndef where an #ifdef should be. Btw. PORT_WIDGET_WANTS_HISTORY seems incomplete because a lot of history code is included even when this define is undefined. 1998-05-19 Tamasi Gyorgy * src/*: Until I get a better ChangeLog: Tamasi's port of the code to QNX. 1998-05-19 Alexander Lukyanov * Makefile.in: Distirbution fix so that people are not forced to install gettext. 1998-05-19 Miguel de Icaza * ext.c: Memory leak fixed. Mon May 18 22:24:09 1998 Norbert Warmuth * lib/mc.ini.in: s/reges/regex/ * main.c (process_args): return void, the return value was only used once but wrong (-h displayed help twice). (handle_args): -h: don't display help twice (print_usage): Don't print program name and version, that's already done by version(0). * menu.c (menubar_paint_idx): Highlight Hotkeys also on slow terminals (hotkeys were not displayed at all). 1998-05-18 Miguel de Icaza * menu.c (menubar_drop_compute): Check for inrange items. 1998-05-15 Miguel de Icaza * color.c (init_colors): Provide X-only version of color initialization. Thu May 14 01:56:11 1998 Norbert Warmuth * configure.in: Don't add -lintl to LIBS when included gettext is used (further checks for libraries would fail because libintl.a isn't build, yet). Instead use and substitute LINTL. * Makefile.in (OURLIBS): add @LINTL@ Tue May 12 17:45:49 1998 * syntax.c: yet more minor modifications. 1998-05-11 Miguel de Icaza * main.c: New default: auto-save setup. * screen.c (move_right, move_left): Add support for icon-view movement. 1998-05-09 Miguel de Icaza * setup.c (panel_load_setup): On non-icon editions, fall back to list_full Sun May 10 13:27:50 1998 Norbert Warmuth * widget.c (handle_char): Don't try to to delete default text in input widget more than once. Right after MC's start copy_filename (ESC Enter) failed because a flag wasn't cleared while characters were stuffed into the commandline (Andrej reported this bug). * main.c (copy_readlink): usr mc_readlink instead of readlink * file.c: Changed default for the copy/move option "dive into subdir if exists" to off (note: this was only possible after the change in setup.c). (copy_dir_dir): Activated the previously uncommented code which implements "Dive into subdirs". Even when there's no case where we actually would like that behaviour it is a documented feature. Though I don't wanted to change the default behavour. Hence the option change. (file_mask_defaults): set dive_into_subdirs (file_mask_dialog): Fix for debian Bug #20727: Move operation with "[ ] Dive into subdir if exists" and destination filename not wildcarded. If destination is an existing directory then files will be moved into this directory. If destination is not an existing directory then src file will be renamed (one file selected) or an error will be displayed (more than one file selected). (file_mask_dialog): made the option "Using shell patterns" local to the current copy/move operation, i.e. this option is always initialized with the global options's value. Previously it affected the global Options/Configuration/shell Patterns. Another possiblilty would be to make the global option a default option on startup and keep changes in the copy/move dialog (without saving these changes with save setup). * setup.c: Don't save and load options which can be changed outside the options menu. For example I don't like that preserve_uid_gid and dive_into_subdirs from the copy/move dialog are saved and restored (strange, what about the other options from this dialog?). It would be much cleaner to make these option read-only. This way one could edit ~/.mc/ini to provide default option setting on startup and "Save setup" wouldn't have side effects outside the option's menu. Sun May 10 13:24:20 1998 Norbert Warmuth * doc/mc.1.in, doc/mc.sgml, mc.hlp: Updated to reflect new default for dive into subdirs. Sun May 10 13:21:45 1998 Norbert Warmuth * edit/syntax.c: Disable debug messages on stderr. * edit/edit.h: Added missing _() 1998-05-06 Miguel de Icaza * layout.c (flag_winch): Propagate the window change to the slave pty even when not running our event loop. The resize_subshell routine is thread safe. * dlg.c (update_cursor, dlg_broadcast_msg_to): Do not send messages if no widgets are on the Dlg_head, this happens now with the gmc code, as we can have all of the windows shut down. Wed May 6 13:46:37 1998 Paul Sheer * syntax.c: more bug fixes. 1998-05-04 Miguel de Icaza * view.c (view_quit_cmd): Use dlg_stop. * main.c (ctl_x_cmd): Implement ctl-x handling as a state of the key press events. Drop the usage of mi_getch to acomplish this task. (midnight_callback): Deal with the current map depending on the c-x state. Mon May 4 10:21:31 1998 Norbert Warmuth * background.c (message_1s1d): the unprocessed string with %d was passed to message_1s; fixed small memory leak * widget.c (button_callback): WIDGET_CURSOR: make cursor position dependend from button type (fixes the off by one bug in advanced changeown). * file.c (copy_file_file): Schedule deletion of short target file only when we created or truncated the target file and not already when we decided to overwrite an existing file. 1998-05-03 Miguel de Icaza * boxes.c (task_cb): Use kill, not INT, as we are catching INT in the program. Sat May 2 14:07:05 1998 Paul Sheer * setup.c: ALT('H') now shows a directory history - that ESC SHIFT-h or ALT-SHIFT-h Fri May 1 17:45:58 1998 Paul Sheer * syntax.c: initial support for LaTeX 2.09 files added, * syntax.c: some minor bug fixes. and reorganisation of context and keyword priorities. Fri May 1 11:24:21 1998 Paul Sheer * syntax.c: syntax highlighting segfaults when editing a binary file - now fixed. Thu Apr 30 12:23:50 1998 Alex Tkachenko * src/file.c: lot of i18n of file Copy/Move/Delete operations. Maintainers of message catalogs please notice introduced op_names1 and formats for file operations. * src/boxes.c: i18n of background jobs control and quick cd dialog boxes. * src/menu.c (menubar_arrange): resizing of menubar upon changes of window size is now controlled by preprocessor symbol RESIZABLE_MENUBAR (now it's off by default, as requested in mailing list). If it is off, menubar items are separated with fixed number of spaces (3). * src/layout.c, edit/editwidget.c: calls to menubar_arrange ifdef'ed 1998-04-30 Miguel de Icaza * main.c (parse_an_arg): GNOME edition keeps track of various --geometry and various directories passed. 1998-04-29 Miguel de Icaza * main.c (update_panels): Great API simplification. update_panels only cares about the contents of the current panel, every other panel keeps the current selection (this was the behaviour anyways). update_panels can be provided in a per-port fashion as well. Wed Apr 29 03:06:09 1998 Paul Sheer * syntax.c: some optimisations, as well as support for syntax highlighting of Makefiles and ChangeLog files. Fixed some syntax highlighting bugs. All C and C++ keywords added. Tue Apr 28 06:11:08 1998 Norbert Warmuth * view.c (toggle_wrap_mode, toggle_hex_mode): Force recalculation of bottom_first (we mustn't use an already calculated and cached value because it is invalid for the new mode and the End key would not move to the end of the file). * configure.in: Renamed the option `--with-our-slang' to `--with-included-slang' (this one looks better because we also have an `--with-included-gettext'). Make the option `--with-ext2undel' recognice a given path. * cmd.c (view_file_at_line): In plain view (F13) set the default magic flag to zero in order to view the file content unprocessed (esp. don't uncompress files if they are compressed). The view_simple_cmd got broken when the default magic flag in view.c was changed from 0 to 1. * view.c (do_view_init, goto_line): Set wrap mode temporary off to make goto line number work, i.e. `line number' now always means line number in file and not line number on screen (in wrap mode one long line wrapped once is displayed in two lines on the screen). That's important when the viewer is invoked from the find file dialog to display even in wrap mode approxiamtly the part of the file where we found the content we searched for. (move_forward2): In wrap mode lines were sometimes counted wrong causing cursor up to move more than one line. (move_backward2): Fixed the movement in wrap mode. (change_viewer): Always re-init viewer when we have a filename, i. e. if the viewer is invoked with simple_view_cmd then we can switch with the F8 key between unprocessed file content und uncompressed file content. (view_init): re-init view also when magic flag was altered 1998-04-27 Miguel de Icaza * screen.c (is_a_panel): Added a routine to determine if a widget is a panel. 1998-04-27 Miguel de Icaza * screen.c (file_entry_color): Check if fe->fname has something. Sun Apr 26 00:21:12 1998 Norbert Warmuth * slint.c: Applied the patch from Bill Nottingham to make it link against SLang >=1.0. I reviewed the diffs to the part of SLang we use and there are no further changes to MC necessary (one function's return value changed it's meaning but we don't use this return value). * configure.in: Undone the change which prevented linkage against SLang >=1.0 Sat Apr 25 13:41:43 1998 Paul Sheer * edit.h, syntax.h: some optimisations to improve syntax highlighting speed. 1998-04-24 Miguel de Icaza * color.h: Move the CTYPE definition Fri Apr 24 16:43:25 1998 Paul Sheer * main.h, setup.c: editor_syntax_highlighting option added for ini file. Fri Apr 24 14:54:06 1998 Paul Sheer * syntax.c: added. this files reads ~/.cedit/mcsyntax and processes generic rules for syntax highlighting of different file types. Syntax highlighting does not store an attribute byte for each byte of the edit buffer. Rather, it calculates colours on the fly, with an optimised algorithm, as the text is being rendered. * edit.c, edit.h, editwidget.c, editdraw.c: changes to facilitate syntax highlighting. * editoptions.c: dialog box updated with a syntax highlighting checkbox. * slint.c: new function alloc_color_pair(). This allocates a new color index. init_pair() itself now records the last colour index so that colours can be added on to the end of the colour list with alloc_color_pair(). * slint.c: new function try_alloc_color_pair() returns a new index for a color with named fg and bg. Checks if that named colour already exists before setting a new index. 1998-04-23 Miguel de Icaza * user.c (execute_menu_command): Create temporary file exclusively as well. * main.c (do_execute), utilunix.c (my_system), gutil.c, ext.c: Changed the way we execute programs. Now a new set of flags exist that indicates how the execution is done. In ports that execute by sending the process to background, when executing temporary files, we have to remove the files after the child process has finished executing the code not after the calling do_execute. * ext.c (exec_extension): Create temporary file exclusively. Mon Apr 20 01:32:20 1998 Norbert Warmuth * configure.in: Don't try to link MC against SLang >= 1.0. I will remove this restriction when I'm sure that it's save to use the new version (the documentation to SLang mentions some changes of return values). 1998-04-16 Miguel de Icaza * file.h: Added prototype for copy_dir_dir. * file.c (real_do_file_error): use the proper flags, this is not a D_INSERT dialog box, for what it is worth. Important bug fix. * utilunix.c (get_owner): Declare. * widget.h: Added various missing prototypes for the X edition. * view.h: Added various missing prototypes for the X edition. * widget.c (x_radio_toggle): New per-port variable: PORT_HAS_RADIO_TOGGLE 1998-04-15 Miguel de Icaza * screen.c (GT): Assign two spaces for the minimum size of the "type" field for the GNOME edition. This gives some extra space for the icon that gets displayed. * dlg.c (remove_widget): New function: used to remove a widget from an existing Dlg_head; (destroy_widget): Destroy a specific Widget. (add_widgetl): Extended to deal with the fact that a running Dlg_head can become empty. * panelize.c (l_call): Update the input line every time the user selects the entry with the mouse (pretty common in the gnome edition). * hotlist.c (add_new_group_input): Removed an extra field that was causing problems. * find.c (find_parameters): Tree button is gone for gnome until we get the tree function working on gnome. * cmd.c (save_setup_cmd): Per Elliot's suggestion, do not pop up a dialog box to inform the user about the saved setup. 1998-04-15 Pavel Machek * cmd.c: Report failed chdir attempts. Wed Apr 15 10:48:41 1998 Alex Tkachenko * src/hotlist.c: changes to hotlist boxes i18n. * src/panelize.c: changes to panelize boxes i18n. * src/wtools.c (query_dialog): Take care about possible '&' in button names while calculating window sizes and button positions. 1998-04-15 Miguel de Icaza * screen.c (string_file_nlinks): The buffer was too small and we were overwriting parts of it. * subshell.c (do_subshell_chdir): Memory leak fix. * find.c (do_search): Do not use undefined order of evaluation. * user.c: Do not use undefined order of evaluation. * dlg.c (init_dlg): Do init the default return value. Sun Apr 12 03:09:17 1998 Norbert Warmuth * cmd.c (view_other_cmd): #ifdef'd application_keypad_mode and numeric_keypad_mode (don't include it in non text editions) Sun Apr 12 02:48:26 1998 Norbert Warmuth * xv/xvscreen.c: removed duplicate (conflicting) definition of do_enter() Sun Apr 12 02:24:57 1998 Norbert Warmuth * text.c (edition_post_exec), cmd.c (view_other_cmd): Don't change the keypad mode when we don't use the alternate plus minus. Pavel forgot an if-clause when he replaced the escape sequences (or another point of view: I forgot one if-clause at different place). Fri Apr 10 17:35:23 1998 Philippe De Muyter * configure.in (AC_NCURSES): When checking for library location, put -L option before -l option, not after. Fri Apr 10 10:35:06 1998 Norbert Warmuth * file.c (file_mask_dialog): When the shell patterns option was off source_mask was freed twice. 1998-04-10 Marc Ewing * panel.h: added up_b 1998-04-08 Miguel de Icaza * widget.c (update_input): Set the used flag early in update_input to allow X widget to catch the right value * screen.c (do_enter): Return the status for the operation. * main.c (main): Sigh. This was hard. I added support for argp. Right now we support both argp for the GNOME edition and popt for the other editions. I will remove popt support in the future and only keep argp. * dlg.c (add_widgetl): Adding widgets to an already running dialog had some flaws. Fix this. Wed Apr 8 11:15:29 1998 Alex Tkachenko * src/find.c: changes to find_parameters/find_file i18n. * src/widget.c: new function introduced, button_scan_hotkey(); button_new() and button_set_text() fixed to use mentioned function. * src/key.[ch], src/dlg.c: changes to make recognition of ESC char as ALT(c) possible for 8-bit chars. (By replacing 'A'/'Z' comparisons with call to isalpha() in the way proposed by Norbert). * src/boxes.c: changes to display box i18n * src/learn.c: changes to learn key dialog i18n 1998-04-07 Miguel de Icaza * main.c (update_one_panel_widget): New routine: Updates a panel based on the widget, not the index. Used by the GUI versions. * find.c (find_file): Cancel idle tasks before we destroy the find dialog. * dlg.c (destroy_dlg): Call x_destroy_dlg_start, a new hook that is invoked to allow the frontend code to prepare for dialog destruction. Only the Gnome edition is using this: it uses this to hide the dialog and avoid flickering. * main.c: dtterm also has mouse support. 1998-04-06 Miguel de Icaza * wtools.c (quick_callback): Process DLG_KEY events on X. * utilunix.c (max_open_files): new routine; Used to figure out the number of available file descriptors. Sat Apr 4 00:16:49 1998 Alex Tkachenko * src/layout.c: changes to layout dialog box i18n * src/option.c: changes to configure box i18n * src/cmd.c: added N_() macro for machine_str * src/wtools.c (real_input_dialog_help): ok/cancel buttons are places symmetrically spaced relatively to center of the box. It produces nicer appearance with i18n (IMO :) * src/boxes.c (confirm_box): i18n stuff added. Mon Apr 6 07:48:22 1998 Pavel Roskin * Makefile.in: "make dist" works with bash 1.x again Fri Apr 3 05:23:20 1998 Alex Tkachenko * configure.in: ALL_LINGUAS test added, to allow specify list of languages to be installed by setting env variable before configure. If it is empty, it defaults to full list. * src/menu.h menu_entry.{hot_pos, is_dupped} dropped * src/menu.c: consistency fixes: pull-down menu items are now accessible either with arrow keys or with hotkeys, denoted with & (and highlighted). (key combinations, placed to the right of items intended to be used from outside the menus). Freeing menu entries removed as it no longer needed * src/main.c, edit/editmenu.c: menubar init code is changed to conform above fixes. * edit/edit.h: use of "Cancel" in error_dialogs replaced with "Dismiss", to avoid collisions in translation of "Cancel" in other places with this case. * src/boxes.c: select_format() and it's support removed, as it is obsoleted by input line history feature. display_init()/display_callback fixed to suite i18n changes. sort_box() - alike. * src/option.c: pause_options added &'s and gettext calls to expand statically assigned values. * src/widget.c: (radio_callback) hotkey recognition is changed to &-notation, rather than simple uppercase. * src/dlg.c: (dlg_try_hotkey) plain symbol comparison replaced with call to isalpha(), this fixes errorneous exit from input line, when button hotkey is 8-bit NLS char. Fri Apr 3 12:23:28 1998 Norbert Warmuth * TODO: Removed obsolete entries: Similar entries in tree view are displayed correct; user specific files has been moved to ~/.mc/ Added: Check what to do with menubar_arrange/destroy_menu stubs in tk/tkmenu.c; the interal editor (not portet yet) adds entries to the wrong menubar Wed Apr 1 00:15:30 1998 Norbert Warmuth * key.c, key.h (numeric_keypad_mode, application_keypad_mode): New functions which encapsulate two hardcoded escape sequences from main.c. * main.c (main): Use the two new functions from key.c * main.c, screen.c: Moved all file selection keys from the default keymap to the keymap for panels in listing mode. Changed *_selection_cmd to *_selection_cmd_panel in panel_keymap (functions in panel_keymap get a WPanel * as first parameter, i.e. the indirection with cpanel isn't necessary). * main.c (midnight_callback): Keys '*' and '-' were not treated when only_leading_plus_minus==0; Optimized the if-clauses a little bit (i.e. removed duplicate checks). More optimation is possible but it would make the whole stuff completly unreadable. * key.c (correct_key_code): KP_ADD, KP_SUBTRACT and KP_MULTIPLY will be translated to +, - and * only if the option alternate_plus_minus is turned off. * learn.c (learn_keys): Turn alternate_plus_minus temporarily on to avoid translation of KP_ADD, KP_SUBTRACT and KP_MULTIPLY in correct_key_code/make sure keypad is in application mode (makes it possible to learn this keys). * cmd.c (reverse_selection_cmd_panel): New function (renamed from reverse_selection_cmd, takes a WPanel * as parameter, references to cpanel changed to panel/the passed parameter). reverse_selection_cmd now simply calls this function with cpanel. This pair was missing among the *_selection_cmd* functions. * cmd.h: Added function prototypes. 1998-03-31 Paul Sheer * cmd.c (nice_cd): Forgot to invoke the history registration in one spot. 1998-03-30 Miguel de Icaza * menu.c (destroy_menu): Implement destroy_menu for all of the ports as a routine that frees the menu entries if internationalization has been enabled. * wtools.c (quick_dialog_skip): Do not i18n any string that is empty. Sun Mar 29 23:02:09 1998 Alex Tkachenko * src/menu.[ch]: new member to menu_entry (hot_pos) introduced to make internationalized version of menu use externally defined hotkeys (denoted with preceding &). create_menu() fixed to load intl text of the entries. Some fixes around menu.c to enable usage of reloaded hotkeys. * main.c, editmenu.c: menu initialization code fixed to conform new menu structure. editmenu init code includes N_(..) now. * menu.c, layout.c, editwidget.c: bar menu items displacement is made dynamically upon initialization and window size changes. Mouse event processing is fixed accordingly. Sat Mar 28 13:18:36 1998 Alex Tkachenko * src/screen.c: (repaint_file) last patches to format_file() in the same file broke appearance of panels in brief mode -- fixed. Mon Mar 30 20:02:49 1998 Paul Sheer * main.c, screen.c, dirhist.c, dirhist.h, main.h, widget.c, main.h and others?: Directory history added. The previous directory history code was removed. The directory history now loads and saves using the same routines as the input widget. The keys meta-y, and meta-u are used to go backward and forward through the history. The buttons to the right and left of the current directory display on the panel can be used as well. The v button brings up a history, but no key is assigned to this. Discussion as to correct color and shape of these buttons is open. show_hist() in widget.c is made generic to be called for any widget. Help pages still needed to be added for the directory history. Wed Mar 25 19:05:31 1998 Norbert Warmuth * view.c (view_done): Set monitor off before deleting the view file dialog. * subshell.c (init_subshell): Added ':q' to $cwd in the precmd for tcsh. It preventes command and filename substitution (e.g. for a directory named "[word] words") Mon Mar 23 18:06:10 1998 Norbert Warmuth * main.c: Deleted some old and unused code 1998-03-24 Miguel de Icaza * All over the src/ directory: Internationalization changes. * background.c: Avoid buffer over-runs and reduce number of internationalization strings. Mon Mar 23 14:04:07 1998 Philippe De Muyter * configure.in (nlink_t): Check it using AC_CHECK_TYPE. * acconfig.h (nlink_t): New define slot. Mon Mar 23 08:17:55 1998 Pavel Roskin * src/main.c: mcedit can be named mce or mcedit.exe - only 3 first letters are significant. The same for mcview. Console is always saved in do_execute() if it was saved there. * src/util.h: STRNOMP introduced (strncmp on unix and strnicmp on OS2_NT) * slang/slgetkey.c: SLang_getkey() and SLang_input_pending() enabled for OS2_NT * myslang.h: using fast one_vline() and one_hline() for OS2_NT Mon Mar 23 00:47:51 1998 Norbert Warmuth * autogen.sh: added support for builddir != srcdir * doc/Makefile.in: The manual pages are generated files and located in the builddir and not in the srcdir. * find.c (find_file): Use the same hotkey for the panelize button as we use with the external panelize command. Fri Mar 20 17:51:01 1998 Norbert Warmuth * myslang.h: --with-ncurses didn't compile: renamed KEY_BACKTAB to KEY_BTAB (the name ncurses uses) * dlg.c (dlg_key_event): likewise 1998-03-19 Miguel de Icaza * screen.c: Remove KEY_DC forever. This should have never been here. Wed Mar 18 22:08:34 1998 Miguel de Icaza * achown.c (do_enter_key): call endgrent, endpwent. * chown.c (init_chown): call endgrent, endpwent. Tue Mar 17 23:58:40 1998 Pavel Machek * src/file.c: Fix for the case where the disk gets full. Tue Mar 16 18:35:53 1998 Stas Maximov * src/hotlist.c default values for dialogs which add entries to hotlist are now set to the current directory. Tue Mar 10 14:42:01 1998 Stas Maximov * vfs/extfs.c, lib/mc.ext, vfs/extfs/extfs.ini, vfs/extfs/cpio.in Added support for cpio extfs including compressed and gziped cpio archives. compress and gzip handled separately because I saw a lot of systems which have compress, but don't have gzip. Sat Feb 21 16:46:49 1998 Stas Maximov * src/subshell.c: failed to grantpt on SVR4 due to zero-initialized subshell_pid. sigaction handler for SIGCHLD does waitpid(subshell_pid, ...) and when subshell_pid == 0 it steals the zombie from grantpt(3) which does fork/exec/waitpid for suid program to set the permissions on pty. It's enough to initialize it to 1 or -2. 1998-03-16 Federico Mena Quintero * util.c (convert_pattern): Now the internal buffer is malloc()ed instead of being static. This is required for long patterns. (regexp_match): Free the pattern after calling convert_pattern(). * file.c (file_mask_dialog): Free the source_mask after calling convert_pattern(). Mon Mar 16 13:03:45 1998 Pavel Roskin * cmd.c: Internal edit is used by default. vi may be confusing for some users. * tree.c: tree_rmdir_cmd() should not return any value, because it is not analyzed for errors. * main.c: NT code: use O_BINARY instead of _O_BINARY * util.c: DO not test for arguments that do not make sense under Windows NT. * file.c: utime.h always included for Windows NT port. * view.c: Events are flushed only if the ports supports it. Mon Mar 16 12:30:39 1998 Stas Maximov * hotlist.c: Defaults on the hotlist add-current and new-entry is the current directory. Sat Mar 14 17:30:21 1998 Miguel de Icaza * file.c (panel_operate): Why was the flags in query_dialog set to D_INSERT is a big mistery. Should be fixed now. Fri Mar 13 18:10:58 1998 Miguel de Icaza * dlg.c (dlg_stop): New routine used to finish dialog boxes. * cmd.c (set_panel_filter_to): Implementation split. To be used by GNOME. * widget.c (input_new): GNOME-entry widget is inspired in the WInput + the history patches from Paul. Use the GNOME-entry history, as this makes it easier to deal with the filter button on the panel. * setup.c (save_panel_types): Do not use if running on the gnome edition. This need a lot of fixing for making this work with gnome and session management. * main.c (do_nc): DO not call setup_panels_and_run_mc as create_panels in gnome edition does all this. (setup_mc): Skip part of the setup. (do_execute): Do not Execute any of the pause code after run for gnome. Wed Mar 12 17:46:09 1998 Norbert Warmuth * screen.c (chdir_other_panel, chdir_to_readlink): Use passed panel instead of cpanel (removed mixed use of panel and cpanel). * main.c, screen.c: Deleted F13 from the default keymap, added F13 and F14 to the panel's keymap (the keymap for panels in listing mode). These two keys are only useful for panels in listing mode. It seems there are even more candidates for such a move. Especially select_cmd and unselect_cmd which appeared recently for the GNOME edition in screen.c act unexpected for panels in tree-mode. * cmd.c (view_simple_cmd): Added WPanel* to the parameter list. (edit_cmd_new): No need to get a panel because it is not used. * panelize.c: Changed hotkey of the Panelize button (Alt-p is already used by the input line history). I wonder if I should change it in the find dialog, too (just to have a unique hotkey for the panelize button). Wed Mar 11 19:02:48 1998 Miguel de Icaza * view.c: Lots of changes: Split the X11 code from the main view program. This is needed to cleanly support the addition of the Gnome version of the file viewer; New names for old functions (just a view_ prefix): view_add_character, view_add_string, view_gotoyx, view_set_color, view_display_clean. Now all of them take a WView argument (which is ignored in the macro for the text edition). This is to support multiple open views at once. * boxes.c (symlink_dialog): Enable ok/cancel buttons for the Gnome edition. * cmd.c (link_cmd, symlink_cmd): Provide the filename to operate on. Tue Mar 10 20:41:45 1998 Miguel de Icaza * cmd.c (unselect_cmd_panel, select_cmd_panel): To avoid races on the X11 version, these routines now take a panel argument at invocation time. * widget.c (radio_callback): Call x_radio_focus for FOCUS/UNFOCUS events. (button_callback): Fallback to default_msg on WIDGET_FOCUS messages. 1998-03-10 Federico Mena Quintero * xslint.c (getch): Added missing "return". * utilunix.c (init_groups): Added parentheses around assignment/truth value. * boxes.c: #include * screen.c (string_inode): Cast fe->buf.st_ino to long to be consistent with sprintf format. * main.c (handle_args): Added parentheses around assignment/truth value. Sat Mar 7 14:33:38 1998 Pavel Roskin * src/complete.c: obsolete hack for OS/2 and NT removed. Completion works for NT now (not very good) * src/main.c: HOME variable is respected by NT and OS/2 versions. If it is missing, we use LIBDIR on OS2_NT and "/" on Unix. * src/key.h: SHIFT_PRESSED is set to 0x0010 on NT. This value doesn't conflict with definitions for ALT and CTRL, but it is SDK-compatible. * vfs/vfs.h: Minor changes for OS/2. EMX defines mkdir with 2 arguments * vfs/tcputil,c, vfs/utilvfs.c: signal.h was includes twice. * vfs/Makefile.in: undelfs.h is not used and should disapper * slang/slos2tty.c: new file, copied from SLang-0.99.38, needed for OS/2 port * slang/Makefile.in: added slos2tty.c * vfs/extfs/README: annoying spell errors corrected * src/main.c: --termcap disabled for OS2_NT because it doesn't (and cannot) work. ARCH_FLAGS is not needed anymore. * src/text.c: most includes removed. Added a warning is someone compiles this file with HAVE_X. Improved color scheme for consoles with 16 background colors (e.g. OS/2). Hack for OS/2 removed. * src/util.c, src/util.h: STRCOMP and MC_ARCH_FLAGS are moved to util.h. It may be useful to use them for filenames' completion on OS2_NT Fri Mar 6 19:29:54 1998 Miguel de Icaza * find.c: Simplify header files: use the fs.h include file. (use x_flush_events). * screen.c (string_file_name): In GNOME, the CList widget does the filename truncation, so we do not do it here. (panel_new): Initialize all of the wpanel contents to zero. This will is required by the GNOME X ports (to figure out if a field has been inited or not). Thu Mar 5 10:28:40 1998 Norbert Warmuth * popt.c (poptParseArgvString): make it compile with the native compiler on AIX 4.1.3 1998-03-04 Federico Mena Quintero * cmd.c: Added #include "x.h" Wed Mar 4 14:49:55 1998 Norbert Warmuth * doc/mc.1.in, mc.hlp: updated (these files haven't been updated at the last change to mc.sgml) * doc/mc.sgml: spelling error corrected * Makefile.in: renamed all references of mc.1 to mc.1.in * find.c (locate_egrep): Don't use an absolute path if egrep isn't found at the usual places. Then execvp will search the directories passed in the environment PATH variable (a little bit slower but better than a defunct find content). * tree.c: removed the include file I mistakenly added with my last patch. Tue Mar 3 20:00:36 1998 Miguel de Icaza * file.c (get_file): Take a panel argument. I am pretty sure that this is broken for the case where we are copying from a WTree. (panel_operate): take a panel argument instead of defaulting to cpanel. Mon Mar 2 15:54:55 1998 Miguel de Icaza * dlg.c (create_dlg): Set running to 0 on creation; (add_widgetl): do widget initialization if the dialog is already running when this dialog box is created. Mon Mar 2 12:11:37 1998 Norbert Warmuth * vfs/ftpfs.c (changetype): Removed the hack which always forced sending the command "TYPE I" when changing to binary transfer mode was requested even when MC thought the connection was already in binary mode (bucket->isbinary == 1). The correct fix is now in login_server. * vfs/ftpfs.c (login_server): Set the transfer mode stored in the bucket to UNKNOWN (the bucket might be reused and the old transfer mode isn't valid any longer). * screen.c (panel_key): Cleanup: deleted if-clause with -1 (EV_NONE) which isn't delivered to widgets by the dialog manager; always return 1 when key was handled; removed the function keys from the panel's keymap (the function keys are always handled by the buttonbar); don't eat characters below ' ' (C-l and Shift-F3 now work even when quick search was started); characters between 32 and 255 start quick search if there is no commandline (no C-s necessary to start search). * tree.c (tree_key): likewise Tue Feb 24 18:37:36 1998 Stas Maximov * subshell.c: Set subshell_pid to 1 on startup Fri Feb 13 19:59:39 1998 Alexander Savelyev * screen.c: KEY_DC is also handled by delete_cmd. * vfs/ftpfs.c (chdir): sending the CWD command is not necessary (imho). (ftpfs_connection_close): Do not use WAIT_REPLY, closes connections faster. (open_data_connection): implement the reget command. * boxes.c: bigger VFS dialog box. * file.c (init_replace): Add support for copying files only if the size differs, and support for regetting ftp files. Wed Feb 11 20:08:50 1998 Norbert Warmuth * user.c (execute_menu_command): Extented the syntax of %-macros used in the user menu in order to switch quoting on (default) and off, e.g. %0f means don't quote the expanded macro, %f and %1f mean quote the expanded macro. Fri Jan 30 16:43:47 1998 Miguel de Icaza * dlg.c (create_dlg): Now we pass the flags parameter to the create_dialog routine. * tkmain.c (xtoolkit_create_dialog): Check for the grided value Fri Jan 23 07:28:54 1998 Peter Daum * extfs.c (open_extfs_archive): Pass the filename to the list command. * extfs/mailfs: New file system for browsing mail files (support for compressed mail fiels as well). Fri Jan 23 07:19:18 1998 Pavel Roskin * edit/edit.h: mc_mkdir requires 2 arguments for any operation system. Obsolete #ifdef's removed. * edit/editwidget.c: ansi standard violation removed * nt/Makefile.NT: default SLang directory is now ../slang. Most of SLang sources are no more compiled for MC. * nt/drive.h: new file. Copied from os2/drive.h with minor changes * nt/ket.nt.c: new way for handling conflicting SHIFT_PRESSED definitions. get_event can work without blocking. Copy, move and delete operations work normally. * nt/slint.nt.c: SLang_getkey2 and Slang_input_pending2 are copied from src/slint.c * nt/sys/param.h: annoying warnings temporaly suppressed. * slang/slvideo.c, slang/slw32tty.c: new files. They contain changes by Alexander Dong. * src/myslang.h: definitions for acsii symbols removed, since they are available in slang.h. Double lines are not used anymore. * src/panelize.c: sys/wait.h is included only if HAVE_SYS_WAIT_H is defined * nt/Makefile.NT: text.c is added * nt/Makefile.VC4: "-debug" switch for linker is not used for release version * src/screen.c (show_dir): double lines are no more used by NT and OS/2 ports. * src/wtools.c (real_input_dialog_help): layout of input dialog for XView port is corrected * edit/edit.h: mc_mkdir requires 2 arguments for any operation system. Obsolete #ifdef's removed. * edit/editwidget.c: ansi standard violation removed Wed Jan 21 14:01:29 1998 Miguel de Icaza * ext.c (regex_command): reverted the patch that changed tests for *p == ' ' || *p == '\t' to isspace(). isspace() is true for tabs, newlines, carriage-returns and vertical tabs as well. Which is not what we want. Wed Jan 21 11:58:39 1998 Sung-Hyun Nam * ftpfs.c (retrieve_dir): Avoid compiler warning by testing explicitly the value. screen.c (format_file): color not initialized when we met empty_line. Wed Jan 21 11:28:21 1998 Alex Tkachenko * cmd.c, utilunix.c: cosmetic changes to reduce compiler warnings * utilunix.c (my_system): small fix for SCO zombies moved here; now it returns WEXITSTATUS(status) instead of status itself. While missing it may not hurt on i.e., linux, on SCO it gives incorrect value. * vfs/extfs.c system() calls replaced with my_system() call; this allows a greater degree of control - fixes SCO system() return value processing. Notice: plain replacement system() with WEXITSTATUS(system) does not produce correct behavior (don't ask me why). * panelize.c (do_external_panelize): similar fixes for pclose() return value on SCO. view.c (load_view_file): inverted value of viewer_magic_flag to put viewer decompression state in accordance with F8 label text. Also default_nroff_flag is initialized to be 1; thus enabling all filter processing by default easies mc usage for novice users. Sun Jan 18 13:47:37 1998 Sung-Hyun Nam * main.c * panel.h, tkscreen.h : error when compile dlg.c * tkconf.h : paint_frame * screen.c : to include paint_frame * tkmain.c : I just copied clr_scr() from the text.c Fri Jan 16 16:19:59 1998 Miguel de Icaza * screen.c (format_file): Do not invoke the file_compute_color routine for empty lines. * gmain.c: Color scheme for Gnome * gscreen.c: Color setup now allocated the GdkColor *. * color.c: Moved the default color setting to a per-port location (text.c for the text mode edition); new color configuration: core; Fixed the case where the color spec was buggy and we kept on a infinite loop; Fri Jan 16 13:47:13 1998 Pavel Roskin * nt/drive.nt.c, nt/chmod.nt.c: Updated button_new and check_new calls Fri Jan 16 12:47:39 1998 Norbert Warmuth * vfs/ftpfs.c (command): Don't log passwords when the dialog between server and client is logged to a file (mc -l logfile). * vfs/ftpfs.c (resolve_symlink, retrieve_dir): When a directory contains spaces send two commands ("CWD path" and "LIST .") instead of one command ("LIST path") in order to get directory listings.