* lib/mc.ext.in: Add a few sound formats that "play" and "mikmod"
[midnight-commander.git] / src / ChangeLog
blobe907e91e474eb79c0e914af29ff17b7aa60d8a4e
1 2004-10-25  Andrew V. Samoilov  <sav@bcs.zp.ua>
3         * cmd.c (select_unselect_cmd): Collect repeated code from
4         (un)?select_cmd here.  Fix rare off-by-one and memory leak if
5         empty pattern passed.
7         (select_cmd): Use select_unselect_cmd().
8         (unselect_cmd): Likewise.
10 2004-10-23  Roland Illig  <roland.illig@gmx.de>
12         * complete.c (environ): Don't declare environ on Cygwin.
13         * utilunix.c (mc_tmpdir): Convert uid to unsigned long for
14         pathname of the temporary directory.
16         From Pavel Tsekov <ptsekov gmx net>.
18 2004-10-23  Roland Illig  <roland.illig@gmx.de>
20         * regex.c (regerror): Never use the __memcpy function, as it
21         breaks the build on Cygwin.
23 2004-10-22  Roland Illig  <roland.illig@gmx.de>
25         * regex.c: Fix the C preprocessor feature tests. They produced
26         warnings before.
27         * view.c (display): Fixed bug that displayed an empty file in
28         hexview mode with growing buffers.
30 2004-10-22  Pavel Shirshov  <me@pavelsh.pp.ru>
32         * main.c (print_color_usage): Update list of keywords for global,
33         menu and help.
35 2004-10-21  Roland Illig  <roland.illig@gmx.de>
37         * cons.saver.c (die): Declare as "static" to avoid gcc warning.
38         (send_contents): Likewise.
40 2004-10-20  Jakub Jelinek  <jakub@redhat.com>
42         * user.c (user_menu_cmd): Fix error. test_line() doesn't handle
43         consecutive '+'s and '='s correctly. Pass a line starting with 
44         a single '+' or '=' instead.
46 2004-10-17  Andrew V. Samoilov  <sav@bcs.zp.ua>
48         * hotlist.c (add_new_entry_cmd): Fix memory leaks.
50 2004-10-16  Roland Illig  <roland.illig@gmx.de>
52         * file.c (do_file_error): Add const qualifier. (query_recursive):
53         Likewise. (query_replace): Likewise.
54         * view.c: Rename EOF_offset to INVALID_OFFSET, as it is mostly
55         used to mark an invalid cache.
57 2004-10-13  Jindrich Novy  <jnovy@redhat.com>
59         * util.c (strip_password): Add "/#sh:".
61 2004-10-12  Andrew V. Samoilov  <sav@bcs.zp.ua>
63         * myslang.h: Check USE_INCLUDED_SLANG properly.
65 2004-10-11  Roland Illig  <roland.illig@gmx.de>
67         * utilunix.c (close_error_pipe): Fixed possible invalid memory access
68         (three lines below).
70 2004-10-11  Leonard den Ottolander  <leonard * den ottolander nl>
72         * file.c (copy_dir_dir): Small text fix.
74 2004-10-06  Alexander Savelyev  <i@fano.com.ua>
76         * fileopctx.h (struct FileOpContext): Use off_t for offset.
78 2004-10-05  Miroslav Rudisin  <miero+gnu@atrey.karlin.mff.cuni.cz>
80         * util.c(strip_password): Add support for '@' in username.
82 2004-10-05  Jakub Jelinek  <jakub@redhat.com>
84         * cons.saver.c: Partly rewritten cons.saver.c.
86 2004-09-28  Andrew V. Samoilov  <sav@bcs.zp.ua>
88         * util.c (convert_controls): Fix possible buffer overflow
89         for ".*^" strings.
91 2004-09-27  Andrew V. Samoilov  <sav@bcs.zp.ua>
93         * complete.c [__linux__ && !__USE_GNU]: Fix compilation on Red Hat 7.3
94         * util.c (convert_controls): Fix compilation.
96 2004-09-26  Roland Illig  <roland.illig@gmx.de>
98         * pipethrough.c: #include <string.h> to compile on Solaris.
99         * util.h (convert_controls): Adjusted the comment to what the
100         function really does.
102 2004-09-26  Mike Gorchak  <mike@malva.ua>
104         * key.c (qansi_key_defines[]): Add support for qansi-m terminals.
105         Needed on QNX Neutrino. (correct_key_code): Likewise.
107 2004-09-25  Roland Illig  <roland.illig@gmx.de>
109         * pipethrough.c: Added pipethrough, a function to execute child
110         processes in a simple way.
111         * pipethrough.h: The interface for the function.
112         * pipethrough.3: The manpage (will be installed in maintainer-mode).
113         * Makefile.am: Added the files to SRCS.
115 2004-09-25  Roland Illig  <roland.illig@gmx.de>
117         * view.c (display): Recognize "+\bo" as a list item in nroff mode.
118         Display "_\b_" correctly in both colors.
120         * view.c (hex_search): Added const qualifier.
121         * boxes.c (display_unit): Likewise.
122         * command.c (examine_cd): Likewise. Additionally used g_strdup to
123         not accidentally modify an environment variable.
124         * complete.c (command_completion_function): Likewise.
125         (filename_completion_function): Likewise. (try_complete): Likewise.
126         (variable_completion_function): Likewise.
127         * file.c (check_hardlinks): Likewise.
128         * find.c (find_do_view_edit): Likewise. (find_file): Likewise.
129         * global.h (home_dir): Likewise.
130         * main.c (get_parent_dir_name): Likewise. (init_xterm_support):
131         Likewise. (OS_Setup): Likewise.
132         * menu.c (create_menu): Likewise.
133         * mountlist.c (xatoi): Likewise. (read_filesystem_list): Likewise.
134         * poptconfig.c (poptReadDefaultConfig): Likewise.
135         * popthelp.c (showHelpIntro): Likewise.
136         * rxvt.c (look_for_rxvt_extensions): Likewise.
137         * slint.c (has_colors): Likewise.
138         * subshell.c (check_sid): Likewise.
139         * user.c (check_format_var): Likewise.
140         * widget.c (radio_callback): Likewise.
142 2004-09-25  Pavel Shirshov  <me@pavelsh.pp.ru>
144         * boxes.c (configure_vfs): g_free handles NULL argument too,
145         no need for the comparison.
146         * cmd.c (set_panel_filter_to): Likewise.
147             (do_link): Likewise.
148             (quick_cd_cmd): Likewise.
149         * color.c (done_colors): Likewise.
150         * dialog.c (destroy_dlg): Likewise.
151         * dir.c (alloc_dir_copy): Likewise.
152         * ext.c (flush_extension_file): Likewise.
153         * file.c (copy_file_file): Likewise.
154             (panel_operate): Likewise.
155         * hotlist.c (remove_group): Likewise.
156             (remove_from_hotlist): Likewise.
157             (done_hotlist): Likewise.
158         * main.c (main): Likewise.
159         * setup.c (panel_load_setup): Likewise.
160         * tree.c (tree_destroy): Likewise.
161             (show_tree): Likewise.
162         * user.c (user_menu_cmd): Likewise.
163         * utilunix.c (i_cache_add): Likewise.
164             (putenv): Likewise.
165         * view.c (view_done): Likewise.
166             (regexp_search): Likewise.
167             (normal_search): Likewise.
168             (change_viewer): Likewise.
169         * widget.c (label_set_text): Likewise.
170             (set_label_text): Likewise.
172 2004-09-24  Roland Illig  <roland.illig@gmx.de>
174         * file.c (progress_update_one): Changed parameter type from int
175         to off_t.
176         
177         Fixes http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=124241
179 2004-09-24  Roland Illig  <roland.illig@gmx.de>
181         * util.c (load_file_position): Fixed possible segmentation fault
182         when an $HOME/.mc/filepos did not contain a ';'.
184 2004-09-24  Roland Illig  <roland.illig@gmx.de>
186         * boxes.c: Replaced NULL with (char *) NULL. Likewise for 0, where
187         NULL was meant.
188         * cmd.c: Likewise.
189         * dialog.c: Likewise.
190         * ext.c: Likewise.
191         * file.c: Likewise.
192         * find.c: Likewise.
193         * hotlist.c: Likewise.
194         * learn.c: Likewise.
195         * main.c: Likewise.
196         * screen.c: Likewise.
197         * setup.c: Likewise.
198         * treestore.c: Likewise.
199         * user.c: Likewise.
200         * util.c: Likewise.
201         * utilunix.c: Likewise.
202         * view.c: Likewise.
203         * widget.c: Likewise.
204         * wtools.c: Likewise.
206 2004-09-24  Roland Illig  <roland.illig@gmx.de>
208         * cons.handler.c (handle_console_linux): Replaced NULL with
209         (char *) NULL in call to execl.
210         * subshell.c (init_subshell_child): Likewise.
211         * utilunix.c (my_system): Likewise.
213         From patches from the OpenBSD ports collection.
215 2004-09-23  Roland Illig  <roland.illig@gmx.de>
217         * main.c (OS_Setup): Fixed segmentation fault.
218         
219         From Oskar Liljeblad <oskar osk.mine.nu>
221 2004-09-21  Leonard den Ottolander  <leonard * den ottolander nl>
223         * filegui.c (file_mask_dialog): Expand tilde. Remove redundant 
224         ifs before g_free().
226 2004-09-19  Roland Illig  <roland.illig@gmx.de>
228         * achown.c: Added const qualifiers and const_cast.
229         * background.c: likewise.
230         * boxes.c: likewise.
231         * file.c: likewise.
232         * filegui.c: likewise.
233         * find.c: likewise.
234         * hotlist.c: likewise.
235         * info.c: likewise.
236         * layout.c: likewise.
237         * myslang.h: likewise.
238         * option.c: likewise.
239         * user.c: likewise.
240         * util.c: likewise.
241         * utilunix.c: likewise.
242         * view.c: likewise.
243         * widget.c: likewise.
244         * complete.c: Surrounded the declaration of environ by and #ifdef
245         guard to avoid a GCC warning about a redundant declaration.
246         * cmd.c: renamed edit() to edit_file() to avoid GCC shadow
247         warnings (many variables are also called edit).
248         * main.c: likewise.
250 2004-09-19  Roland Illig  <roland.illig@gmx.de>
252         * util.c (strip_home_and_password): Fixed possible buffer overflow.
254 2004-09-19  Roland Illig  <roland.illig@gmx.de>
256         * find.c: Applied patch to make the find dialog more responsive
257         while scanning through large files.
259         From Jindrich Makovicka <makovick kmlinux.fjfi.cvut.cz>
261 2004-09-18  Roland Illig  <roland.illig@gmx.de>
263         * view.c (view_handle_key): Fixed invalid-offset-bug when handling
264         ctrl-e in hex mode.
266 2004-09-18  Roland Illig  <roland.illig@gmx.de>
268         * help.c (search_string): Fixed a warning about a const qualifier.
269         A local copy of the string is used for modifying.
270         * menu.h: Removed the const qualifier from Menu.name and
271         Menu.help_node as they are freed in destroy_menu.
272         * menu.c (destroy_menu): Removed the (now unnecessary) casts.
273         * popt.h: Removed a const qualifier to avoid compiler warnings.
274         * profile.c (get_profile_string): Added const qualifiers to
275         avoid compiler warnings. (GetSetProfile): likewise.
276         (GetSetProfileChar): likewise.
277         * profile.h (get_profile_string): likewise.
278         * win.c (check_movement_keys): likewise.
279         * win.h (check_movement_keys): likewise.
281 2004-09-17  Pavel Shirshov  <me@pavelsh.pp.ru>
283         * ext.c (get_file_type_local): Fixes <zombies> in
284         QNX 6.x (QNX Neutrino) when guessing file type before
285         viewing file.
287         Based on patch from Dmitry Alexeyev <dmi_a@qnx.org.ru> 
289 2004-09-17  Andrew V. Samoilov  <sav@bcs.zp.ua>
291         * hotlist.c (add_new_entry_input): Fix warnings.
292         * wtools.h (QuickWidget): Make text const.
293         * wtools.c (fg_input_dialog_help): Fix warning.
295 2004-09-14  Leonard den Ottolander  <leonard * den ottolander nl>
297         * utilunix.c (tilde_expand): Fix extra slash in result from 
298         tilde_expand() for ~<user>/dir.
300 2004-09-14  Pavel Tsekov  <ptsekov@gmx.net>
302         * key.c (get_modifier): Recognize keyboard modifiers on Cygwin.
304 2004-09-12  Pavel Shirshov  <me@pavelsh.pp.ru>
306         * execute.c (toggle_panels): Fix error. show_output_starts_shell=1
307         is not working
308         * cmd.c (view_other_cmd): Likewise.
310         From Petr Hadraba <hadrabap@volny.cz>
312 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
314         * view.c (get_byte): Fix avoid dying if file is too large 
315         to fit into memory.
316         (load_view_file): Fix avoid mmaping just part of a >=4GB file 
317         on 32-bit arches.
318         
319         * setup.c (load_keys_from_section): Handle "copy".
320         gnome-terminal started using TERM=gnome instead of TERM=xterm,
321         so does rxvt etc.
322         Instead of making mc.lib really huge and hard to edit
323         by repeating same keys for every xterm alternative,
324         I have added a special key "copy", with argument name of terminal.
325         mc will in this case read the keys from the referenced terminal's
326         keys from the same file as well.
328 2004-09-04  Jakub Jelinek  <jakub@redhat.com>
330         * info.c (info_show_info): don't truncate block counts to 32 bits
331         on 64-bit platforms
333 2004-09-04  Pavel S. Shirshov <me@pavelsh.pp.ru>
335         * subshell.c (exit_subshell): Prevent unwanted reuse of freed 
336         pty_buffer.
337         * complete.c (variable_completion_function): strncpy()->memcpy()
338         changes are because we know there is no '\0' among the first 
339         length bytes.
340         (insert_text): Likewise.
341         (command_completion_function): Avoid memory leaks.
342         (filename_completion_function): g_free handles NULL argument too,
343         no need for the comparison.
344         (try_complete): Likewise.
345         (command_completion_function): Likewise.
346         (free_completions): Likewise.
347         * widget.c (gauge_callback): Fix for 64-bit arches (%*s len must
348         be int, %3d takes int.
349         (copy_region): g_free handles NULL argument too, no need for 
350         the comparison.
351         (kill_line): Likewise.
352         * find.c (do_search): Likewise.
353         (init_find_vars): Likewise.
354         (do_find): Likewise.
355         * util.c (get_current_wd): We know there is just one '\0' byte 
356         in p, at p[len - 1].
358         Based on patch from Jakub Jelinek  <jakub@redhat.com>
360 2004-09-03  Pavel S. Shirshov <me@pavelsh.pp.ru>
362         * menu.c (destroy_menu): Fix warnings.
363         * view.c (view_adjust_size): Likewise.
364         * widget.c (find_buttonbar): Likewise.
366         Based on patch from Jakub Jelinek  <jakub@redhat.com>
368 2004-09-02  Roland Illig  <roland.illig@gmx.de>
370         * color.c (try_alloc_color_pair (ncurses)): Added const qualifier
371         to the arguments.
373 2004-09-02  Roland Illig  <roland.illig@gmx.de>
375         * man2hlp.c (handle_link): Added header "glibcompat.h" because
376         glib-1.2 does not know g_strlcpy.
377         * Makefile.am (man2hlp): Added source file glibcompat.c for
378         glib-1.2 compatibility.
380 2004-09-02  Pavel S. Shirshov <me@pavelsh.pp.ru>
382         * complete.c (completion_matches): Use more suitable function
383         g_strndup(), instead sequence g_malloc(), strncpy(),
384         name[len] = '\0'
385         * widget.c (copy_region): Likewise. (delete_region): Use
386         memmove() instead strcpy().
387         * user.c (debug_out): Eliminate buffer array.
388         (test_line): Likewise.
390         Based on patch from Jakub Jelinek  <jakub@redhat.com>
392 2004-09-02  Pavel S. Shirshov <me@pavelsh.pp.ru>
394         * color.c (load_dialog_colors): Make a separate color for 
395         hotkeys in red dialogs.
396         * color.h: Likewise.
397         * view.c (view_ok_to_quit): Add hotkey to dialog.
399 2004-09-01  Pavel S. Shirshov  <me@pavelsh.pp.ru>
401         * user.c (check_format_var): Use more suitable function
402         g_strndup(), instead sequence g_malloc(), strncpy(),
403         name[len] = '\0'
404         * man2hlp.c (handle_link): Use g_strlcpy instead sequence 
405         strncpy(), name[len] = '\0'
406         * profile.c (GetSetProfile): Likewise.
407         * wtools.c (fg_input_dialog_help): Likewise.
409         Based on patch from Jakub Jelinek  <jakub@redhat.com>
411 2004-09-01  Andrew V. Samoilov  <sav@bcs.zp.ua>
413         * wtools.h: Fix warnings.
414         * selcodepage.c (select_charset): Likewise.
415         * boxes.c (display_bits_box): Likewise.
417 2004-09-01  Pavel S. Shirshov  <me@pavelsh.pp.ru>
419         * color.c (mc_init_pair): Use cast to avoid warning.
420         * screen.c (display_mini_info): Likewise.
421         * slint.c (do_define_key): Likewise.
422         * tree.c (tree_show_mini_info): Likewise. (show_tree):Likewise.
423         * view.c (view_status): Likewise.
425 2004-08-29  Roland Illig  <roland.illig@gmx.de>
427         * background.c (do_background): Fixed file descriptor leak.
429 2004-08-29  Roland Illig  <roland.illig@gmx.de>
431         * Code cleanup: Added const qualifier for variables and
432         function declarations where possible. No functional changes.
434 2004-08-26  Roland Illig  <roland.illig@gmx.de>
436         * cmd.c (do_link): Fixed memory leak and cleaned up code.
438 2004-08-21  Pavel Shirshov  <me@pavelsh.pp.ru>
440         * utilunix.c (tilde_expand): Use more suitable function 
441         g_strndup, instead sequence g_malloc, strncpy, name[len] = '\0'
443 2004-08-19  Roland Illig  <roland.illig@gmx.de>
445         * util.h (move_backward2): Fixed endless loop. Cleaned up code.
446         The only case that's left with the old code is text mode with
447         line wrapping. (move_backward2_textmode_wrap): The special case
448         of moving some lines up in text mode with line wrapping enabled.
450 2004-08-19  Roland Illig  <roland.illig@gmx.de>
452         * util.h: Added the function free_after for easier handling
453         of dynamically allocated strings.
455 2004-08-19  Roland Illig  <roland.illig@gmx.de>
457         * util.c: Added the function str_replace, which replaces
458         all occurences of a character in a string.
460 2004-08-16  Roland Illig  <roland.illig@gmx.de>
462         * achown.c (apply_advanced_chowns): Added explicit cast
463         (uid_t) -1 and (gid_t) -1, as on most systems uid_t and gid_t
464         are unsigned. This avoids a GCC warning about comparison
465         between types differing in signedness. No functional changes.
467         * background.c (background_attention): Replaced int with ssize_t
468         to correctly handle calls to POSIX read(). No other functional
469         changes.
471         * boxes.c: const'ified some declarations. Now using the
472         NULL_QuickWidget macro to mark the end of arrays of QuickWidgets.
473         No functional changes.
475         * chown.c: Added missing initializers. No functional changes.
477         * color.c (configure_colors_string): Using size_t for variables
478         indexing arrays. (get_color): likewise. (init_colors): likewise.
479         No functional changes.
481         * command.c: Using size_t for variables indexing arrays.
482         (command_insert): Changed the type of the second parameter to
483         const char *, as it is not modified inside the function.
484         (do_cd_command): Added a comment about quoting the argument to
485         the internal "cd" command. No functional changes.
487         * complete.c: TODO
489         * dialog.c (create_dlg): Made the parameters help_ctx and title
490         const. No functional changes.
491         
492         * execute.c (execute_with_vfs_arg): Applied necessary changes to
493         the new mc_ungetlocalcopy.
495         * ext.c: Applied necessary changes to the new mc_ungetlocalcopy.
497         * file.c: Needs the implementation details of the vfs, so include
498         "../vfs/vfs-impl.h". Adjusted some data types to size_t and const
499         char *. No functional changes.
500         
501         * filegui.c: Now using NULL_QuickWidget as initializer.
502         No functional changes.
504         * find.c: Added const modifier for text of buttons. No functional
505         changes.
507         * global.h: New macro const_cast to indicate places where a const
508         is casted away but ideally shouldn't.
510         * hotlist.c: Type changes to size_t and const char *. No functional
511         changes.
513         * info.c (info_show_info): Explicitly casted st.st_blocks to avoid
514         invalid typed argument for printf. Changed a literal 0xffffffff to
515         -1 to fit into the type with which it is compared. No functional
516         changes.
518         * key.c: Added a const modifier. No functional changes.
520         * layout.c: Added const modifiers and changed int to size_t where
521         appropriate. No functional changes.
523         * main.c: Added explicit initializers to global variables. Replaced
524         the initializer 0 by NULL for pointers. Removed the (unused)
525         parameter for keyboard-mapped functions. (version): Renamed to
526         show_version to avoid name conflicts with equally-named variables.
527         Added missing initializers for popt arguments.
529         * main.h: Fixed the FIXME near the key_callback typedef.
530         (vfs_print_message): Added a const modifier to the msg parameter.
532         * menu.c (create_menu): Avoided a GCC warning concerning the
533         comparison of unsigned and signed expressions. No functional changes.
535         * mountlist.c: Replaced (char *) 0 by NULL. No functional changes.
537         * options.c: Made PAUSE_OPTIONS look uniformly. Added const modifier
538         where appropriate. No functional changes.
540         * popthelp.c: Added missing initializers. No functional changes.
542         * profile.c (profile_clean_section): Added const modifier to
543         parameter appname. No functional changes.
545         * screen.c (string_file_name): Replaced int by size_t.
546         (string_file_perm_octal): Changed output format to long octal, because
547         there might be more than 16 significant bits. Added the specialized
548         function type panel_key_callback and added wrapper functions for
549         functions that don't ordinarily take a WPanel * argument.
551         * slint.c (SLang_getkey2): Replaced memcpy by memmove, as src and
552         dest are overlapping. Changed an int to a size_t.
554         * subshell.c (check_sid): Added prototype to the definition.
555         Removed unnecessary casts from void * to char *.
556         Fixed a format string bug (changed %s to %d for a file descriptor).
558         * textconf.c (version): Renamed to show_version to avoid name
559         conflicts with variables.
561         * tree.c: Added an own callback function type that takes a WTree *
562         as first parameter and adjusted the calling functions.
564         * util.c (str_replace): replaces all occurences of a character by
565         another character. Modifies the given string in-place.
566         (x_basename): Now returns a const char * instead of a char *.
568         * util.h (free_after): Frees its second argument after evaluating
569         both arguments. See util.h for usage.
571         * utilunix.c (tilde_expand): Now using g_strdup instead of g_malloc
572         + strncpy.
574         * widget.c: Added the const modifier for strings in many places.
576         * wtools.c: Added the const modifier for strings in many places.
578         * view.c: Replaced various occurences of int, long and unsigned long
579         (all meaning the same) by the newly created offset_type to have
580         a uniform look. (move_backward2): Simplified the function to be
581         more readable. Outsourced the hardest case into
582         move_backward2_textmode_wrap and left it with the old code.
584 2004-08-19  Pavel Shirshov  <me@pavelsh.pp.ru>
586         * utilunix.c (mc_tmpdir): Fix typos in comment.
587         Set MC_TMPDIR environment variable for vfs scripts.
588         Clear error after successful test of mc temp dir.
590 2004-08-19  Pavel Shirshov  <me@pavelsh.pp.ru>
592         * screen.c (paint_frame): Fix possible buffer overflow.
594 2004-08-18  Pavel Shirshov  <me@pavelsh.pp.ru>
596         * background.c (do_background): Use O_RDWR when opening 
597         the file '/dev/null' for replacement standard streams. 
599 2004-08-17  Pavel Shirshov  <me@pavelsh.pp.ru>
601         * utilunix.c (mc_tmpdir): Check return value of getpwuid()
602         for NULL. 
604 2004-04-18  Pavel Roskin  <proski@gnu.org>
606         * vfsdummy.h [!USE_VFS]: Make sure that vfs_canon() doesn't
607         change the original string.  Fix compilation without VFS.
609 2004-03-07  Andrew V. Samoilov  <sav@bcs.zp.ua>
611         * achown.c (init_chown_advanced) [ENABLE_NLS]: i18n fix.
612         * user.c (extract_line): Add a new parameter (size of the
613         output buffer) to prevent buffer overflow.
615 2004-03-05  Pavel Roskin  <proski@gnu.org>
617         * subshell.c: Partly revert previous patch to preserve
618         translated strings.
620 2004-02-09  Pavel Roskin  <proski@gnu.org>
622         * subshell.c: Use "\r\n" at the end of all error messages.
623         Don't use perror().  Make error messages more exact.
625 2004-01-23  Pavel Roskin  <proski@gnu.org>
627         * utilunix.c (canonicalize_pathname): Add support for UNC paths.
629         * utilunix.c (canonicalize_pathname): Return void to make it
630         clear that the conversion is done in place.  Adjust all callers.
632         * filegui.c (init_replace): Don't show the "Reget" button when
633         moving files.  Reported by Arpad Biro <biro_arpad@yahoo.com>
635         * fileopctx.h: Add "operation" filed to FileOpContext.
636         * fileopctx.c (file_op_context_new): Add "operation" argument.
637         * filegui.c (file_op_context_create_ui): Remove "operation"
638         argument, it's known already.  Adjust all callers.
640 2004-01-23  Andrew V. Samoilov  <sav@bcs.zp.ua>
642         * user.c (execute_menu_command): Put /bin/sh in the beginning of
643         the script.
645 2004-01-22  Pavel Roskin  <proski@gnu.org>
647         * screen.c (display_mini_info): Correctly fill the space after
648         "<readlink failed>".
650         * glibcompat.h: Fix definition of g_try_realloc().
652 2003-12-24  Dmitry Alexeyev  <dmi_a@qnx.org.ru>
654         * key.c (get_event): Treat all negative values of gpm_fd in the
655         same way.  Add one more check that gpm is alive.
657 2003-12-24  Pavel Roskin  <proski@gnu.org>
659         * layout.c (rotate_dash): Set color before printing the dash.
661 2003-12-01  Pavel Roskin  <proski@gnu.org>
663         * command.c (examine_cd): Add tilde expansion.
665 2003-11-28  Pavel Roskin  <proski@gnu.org>
667         * utilunix.c (tilde_expand): Correct last fix, simplify code.
668         Reported by David Sterba <dave@jikos.cz>
670 2003-11-27  Pavel Roskin  <proski@gnu.org>
672         * execute.c (toggle_panels): Refresh panels after returning from
673         Ctrl-O.
675         * cmd.c (view_file_cmd): Use input_expand_dialog().
677         * wtools.c (quick_dialog_skip): Perform tilde expansion on input
678         widgets that use cd completion.
680         * utilunix.c (tilde_expand): Preserve tilde if the username
681         could not be found.  Don't ever return NULL.  Change callers not
682         to check for NULL.
684         * dialog.c (do_select_widget): New function that is the only one
685         calling dlg_focus() and dlg_unfocus().  Incorporate code from
686         other functions that did it.
687         (dlg_select_widget): Change return type to void.
689 2003-11-26  Pavel Roskin  <proski@gnu.org>
691         * dialog.h (dlg_widget_active): New function - check if the
692         widget is active.
693         * boxes.c (display_callback): Use it.
694         * layout.c (swap_panels): Likewise.
695         * screen.c (do_panel_event): Likewise.
697         * dialog.c: Eliminate callback macro.
699         * dialog.c (dlg_replace_widget): Use dlg_select_widget().
700         (select_a_widget): Rename to select_other_widget(), factorize
701         most code from dlg_one_up() and dlg_one_down().
703 2003-11-24  Pavel Roskin  <proski@gnu.org>
705         * complete.c (check_is_cd): Simplify logic, use isspace().
707 2003-11-24  Andrew V. Samoilov  <sav@bcs.zp.ua>
709         * hotlist.c (add_new_group_input): Clean up.
710         * wtools.c (do_create_message): Eliminate g_strdup_printf().
711         (bg_message): Likewise.
713 2003-11-21  Pavel Roskin  <proski@gnu.org>
715         * view.c (check_left_right_keys): Implement fast scrolling if
716         Ctrl is pressed.  Idea by Arpad Biro <biro_arpad@yahoo.com>
718         * execute.c (do_execute): Use get_key_code(), not getch() to
719         consume all characters from a single sequence.
720         Reported by Miven Dooligan <dooligan@intergate.ca>
722 2003-11-20  Pavel Roskin  <proski@gnu.org>
724         * glibcompat.h: Provide replacement for g_slist_delete_link().
725         Reported by Pavel S. Shirshov <me@pavelsh.pp.ru>
727 2003-11-20  Andrew V. Samoilov  <sav@bcs.zp.ua>
729         * util.c (load_mc_home_file): Eliminate g_strdup_printf().
731 2003-11-19  Pavel Roskin  <proski@gnu.org>
733         * user.c (expand_format): Preserve "%" if followed by a
734         characted without special meaning.
736 2003-11-14  Andrew V. Samoilov  <sav@bcs.zp.ua>
738         * glibcompat.h: Define g_try_realloc as realloc for glib 1.2.x.
740 2003-11-14  Pavel Roskin  <proski@gnu.org>
742         * main.c (midnight_callback): Ctrl-Shift-Enter now copies full
743         path to the command line, like in Total Commander.
745 2003-11-07  Pavel Roskin  <proski@gnu.org>
747         * boxes.c: Include "../vfs/gc.h" if VFS is used.
748         * hotlist.c: Likewise.
749         * key.c: Likewise.
750         * main.c: Likewise.
751         * setup.c: Likewise.
753         * view.c (free_file): Don't use check_error_pipe(), display
754         error messages in close_error_pipe().
755         * utilunix.c (check_error_pipe): Remove, it's unused.
757 2003-10-30  Andrew V. Samoilov  <sav@bcs.zp.ua>
759         * widget.[ch] (listbox_search_text): Constify "text" argument.
760         (listbox_add_item): Ditto.
762         * find.c (add_to_list): Make inline.
763         (stop_idle): Ditto.
764         (status_update): Ditto.
765         (get_list_info): Ditto.
767         (push_directory): Constify "dir" argument and use
768         concat_dir_and_file() instead of g_strdup().
770         (find_add_match): Constify "dir" and "file" arguments.
771         (insert_file): Ditto. Don't append trailing PATH_SEP, it's done
772         in push_directory().
774         (search_content): Constify "directory" and "filename" arguments.
775         (do_search): Make "directory" char * instead of char[].
777 2003-10-29  Pavel Roskin  <proski@gnu.org>
779         * fsusage.c: Merge ...
780         * mountlist.c: ... here.  These files are closely related.  Move
781         some defines from extraconf.h here.
782         * fsusage.h: Remove.
783         * Makefile.am: Remove fsusage.c and fsusage.h.
785 2003-10-28  Pavel Roskin  <proski@gnu.org>
787         * ext.c (regex_check_type): Use mc_getlocalcopy() instead of
788         piping first 8k to "file".  If the user selected the file, we
789         are likely to need the whole file.  Besides, mc_getlocalcopy()
790         on ftpfs and fish shares file cache with other VFS operations.
791         (get_file_type_pipe): Remove.
792         (mc_doublepopen): Likewise.
793         (mc_doublepclose): Likewise.
795 2003-10-27  Pavel Roskin  <proski@gnu.org>
797         * utilunix.c: Move mc_doublepopen() and mc_doublepclose() ...
798         * ext.c: ... where they are used.
800         * slint.c (mc_refresh): Revert last change - it breaks screen
801         restoring on rxvt.
803         * tree.c (tree_rmdir_cmd): Don't change to the root directory -
804         it's not needed now.
806         * win.c (check_movement_keys): Add support for Ctrl-PgDown,
807         Ctrl-PgUp, Ctrl-Home and Ctrl-End.
809 2003-10-26  Pavel Roskin  <proski@gnu.org>
811         * terms.c: Merge ...
812         * win.c: ... here.
813         * Makefile.am: Remove terms.c.
815         * panel.h: Fix duplication between cpanel and current_panel in
816         favor of current_panel.  Ditto opanel and other_panel.
818         * main.c (get_current_panel): Remove.
819         (get_other_panel): Move ...
820         * layout.c: ... here.
822         * info.h: Don't expose WInfo internals.
824         * background.c (tell_parent): Eliminate.
825         (background_attention): Use error code instead.
826         * file.c (panel_operate): Exit with code 0, not 1.
828         * wtools.c: Merge mc_message() and message() into one background
829         safe function message().  Fix all callers.
831         * i18n.h: Include into global.h.
832         * Makefile.am: Remove i18n.h.
834 2003-10-25  Pavel Roskin  <proski@gnu.org>
836         * background.c: Clean up includes.
837         (do_background): Set current_dlg to NULL for the child process.
838         * dialog.h (do_complete_refresh): Don't use we_are_background.
839         * file.h: Remove dependency on background.h.
840         * background.h: Define we_are_background.  Move mc_message() ...
841         * wtools.h: ... here.
842         * key.h: Don't define we_are_background.
843         * slint.c (mc_refresh): Use current_dialog instead of
844         we_are_background to fix compilation without WITH_BACKGROUND.
846         * background.c (do_background): Use pipe() instead of less
847         portable socketpair().  Close comm[0] in the child.
849         * wtools.c (mc_message): Fix argument expansion.
851         * background.c: Leave only code used when WITH_BACKGROUND is
852         defined. The rest goes ...
853         * wtools.c: ... here.
855         * background.c: Remove mymsg.
857         * util.c (msglen): Constify first argument.
858         * wtools.c (query_dialog): Constify string arguments.
859         (create_message): New function, forked from message().
860         (message): Return void.  Allocate memory dynamically.
861         * wtools.h: Eliminate D_INSERT.  Adjust all users.
863         * background.c: Replace all message stubs with a new function
864         mc_message().  Protect against strlen(MSG_ERROR).  Adjust all
865         dependencies.
867 2003-10-25  Jindrich Makovicka  <makovick@kmlinux.fjfi.cvut.cz>
869         * hotlist.c (remove_from_hotlist): Fix improper check of the
870         return value - group could be deleted after pressing ESC.
872 2003-10-25  Pavel Roskin  <proski@gnu.org>
874         * background.c (background_attention): Unregister task before
875         calling message() to avoid recursion.
876         (message_3s): Fix the number of arguments.
878         * command.c (enter): Don't change current_dlg to NULL.  It
879         breaks repainting of the panels.  Simplify logic.
881         * key.c (init_key_x11): Warning fix for gcc 3.3.2.
883 2003-10-24  Pavel Roskin  <proski@gnu.org>
885         * fs.h (compute_namelen): Fix warning about unused argument.
886         * man2hlp.c (handle_tp_ip): Likewise.
888         * dialog.c (dlg_key_event): Simplify logic, return void.
890         * dialog.c: Remove duplication between two chains of dialogs.
891         * dialog.h (struct Dlg_head): Add "fullscreen" field, remove
892         "refresh_pushed", rename "previous_dialog" to "parent".
894         * tree.h: Fix unneeded dependency on dialog.h.
895         * layout.h: Likewise.
897         * dlg.h: Merge with ...
898         * dialog.h: ... this.  Adjust all dependencies.
899         * dlg.c: Merge with ...
900         * dialog.c: ... this.
901         * Makefile.am (SRCS): Remove dlg.h and dlg.c.
903         * dlg.h: Declare idle_hook here.
905         * dialog.c: Eliminate typedef Refresh, unneeded includes.
907         * complete.h: Move CompletionFunction definition ...
908         * complete.c: ... here.
910         * color.c (dealloc_color_pairs): Rename to ...
911         (done_colors): ... this.
912         * layout.c (done_screen): Call done_colors() here ...
913         * slint.c (slang_shutdown): ... but not here, as it's not S-Lang
914         specific.
916         * cmd.c: Remove source routing code.
917         * main.c: Likewise.
919         * screen.c (user_file_menu_cmd): Move ...
920         * cmd.c: ... here.
921         * cmd.h: Remove unused declarations.
923         * chmod.c (stat_file): Eliminate.  Use mc_stat().
924         * chmod.h: Remove unneeded code.
925         * chown.h: Likewise.
926         * main.c: Include achown.h.
928         * fileopctx.h: Define struct FileOpContext.
929         * background.h: Avoid conditional declarations.
931         * dir.h: Eliminate DIR_H_INCLUDE_HANDLE_DIRENT.  Adjust all
932         callers.  Remove unused code.
933         * dlg.h: Remove unused code.
934         * panel.h: Likewise.
936 2003-10-24  Andrew V. Samoilov  <sav@bcs.zp.ua>
938         * dir.c (if_link_is_exe): Check mc_stat() return value.
939         Make full_name and file_entry const.
940         (link_isdir): Make file_entry const.
941         * dir.h: Adjust declarations.
943 2003-10-24  Pavel Roskin  <proski@gnu.org>
945         * view.c (view_handle_editkey): Fix prototype.
946         (toggle_hex_mode): Don't mess with parent's flags - it can
947         permanently disable Tab switch between panels.
948         (view): Use DLG_WANT_TAB for full screen only, unconditionally.
950 2003-10-23  Pavel Roskin  <proski@gnu.org>
952         * tree.h: Don't include treestore.h.  Fix sources to include
953         treestore.h when needed.
954         * treestore.h: Eliminate useless typedefs.
956         * treestore.c (tree_store_start_check_cwd): Eliminate.
957         (tree_store_start_check): Make globally visible.
958         * dir.c (do_load_dir): Use path supplied as argument.  Call
959         tree_store_start_check() after the directory is opened.
960         (do_reload_dir): Likewise.
962 2003-10-23  Andrew V. Samoilov  <sav@bcs.zp.ua>
964         * dir.c (do_reload_dir): Fix memory leaks.
966 2003-10-23  Pavel Roskin  <proski@gnu.org>
968         * win.c (check_movement_keys): Remove "additional" argument,
969         it's always 1.
971         * view.c: (put_editkey): Rename to ...
972         (view_handle_editkey): ... this.  Move here some logic from ...
973         (view_handle_key): ... here.
975         * view.c: Eliminate struct block_ptr_t and enum ViewSide.
976         Rename ascii mode to text mode.
978         * view.c (WView): Remove unused fields localcopy and file_dirty.
979         Make boolean fields 1 bit wide.
981         * view.c (toggle_hexedit_mode): New function, split from ...
982         (toggle_wrap_mode): ... this.
983         (view_labels): Fix overuse of the :? operator.  Don't allow
984         editing files in quick view - it's easy to lose changes.
986         * main.c (process_args): Use cast to avoid warning.
988         * view.c (view_callback): Don't close the current dialog when
989         the viewer is framed.
991 2003-10-16  Pavel Roskin  <proski@gnu.org>
993         * main.c (update_one_panel_widget): Use VFS_SETCTL_FLUSH for the
994         current directory.  This fixes Ctrl-R on fish.
995         * vfsdummy.h: Remove unused functions.
997         * main.c (process_args): Use VFS_SETCTL_LOGFILE for ftpfs.
999 2003-10-15  Pavel Roskin  <proski@gnu.org>
1001         * glibcompat.h: Define g_try_malloc as malloc for glib 1.2.x.
1003         * view.c (load_view_file): Use g_try_malloc() because the
1004         failure to allocate memory is acceptable here.
1005         Reported by Pavel S. Shirshov <me@pavelsh.pp.ru>
1007 2003-10-14  Pavel Roskin  <proski@gnu.org>
1009         * tree.c: Remove dead code.
1010         * treestore.c (tree_store_add_entry): Make static.
1011         (tree_store_start_check): Likewise.
1013         * cmd.c: Cleanup of unneeded global functions and data.
1014         * color.c: Likewise.
1015         * dir.c: Likewise.
1016         * file.c: Likewise.
1017         * filegui.c: Likewise.
1018         * hotlist.c: Likewise.
1019         * layout.c: Likewise.
1020         * main.c: Likewise.
1021         * panelize.c: Likewise.
1022         * wtools.c: Likewise.
1024 2003-10-12  Pavel Roskin  <proski@gnu.org>
1026         * screen.c (do_enter_on_file_entry): Remove annoying message "no
1027         action taken".  Simplify logic.  Confirmation affects VFS too.
1029 2003-10-11  Pavel Roskin  <proski@gnu.org>
1031         * vfsdummy.h: New file to replace vfs.h if VFS is disabled.
1032         * Makefile.am: Add vfsdummy.h.
1033         * global.h [!USE_VFS]: Include vfsdummy.h.  Fix files that
1034         include vfs.h directly.
1036         * file.c (check_hardlinks): Use vfs_file_class_flags().
1038         * main.c (_do_panel_cd): Use vfs_release_path().
1040         * file.c: Use struct vfs_class, not type vfs, which should be
1041         internal to VFS code.
1043 2003-10-08  Pavel Roskin  <proski@gnu.org>
1045         * background.h: Eliminate background_wait variable.  Adjust all
1046         dependencies.
1048         * main.c (argument_table): Reorder options into logical groups.
1050 2003-10-07  Pavel Roskin  <proski@gnu.org>
1052         * dlg.c (dlg_broadcast_msg): Use widget_msg_t type.
1053         (dlg_broadcast_msg_to): Likewise.
1055 2003-09-29  Koblinger Egmont  <egmont@uhulinux.hu>
1057         * main.c (copy_other_pathname): Trailing slash was not always
1058         inserted when it should be.
1060 2003-09-29  Andrew V. Samoilov  <sav@bcs.zp.ua>
1062         * find.c (do_search): Use strncpy() instead of unsafe strcpy().
1063         Check mc_(l)stat() return values.
1065 2003-09-24  Pavel Roskin  <proski@gnu.org>
1067         * key.c (xterm_key_defines): More sequences for gnome-terminal.
1069 2003-09-23  Pavel Roskin  <proski@gnu.org>
1071         * key.c (xterm_key_defines): Add more sequences.
1073 2003-09-22  Pavel Roskin  <proski@gnu.org>
1075         * find.c (find_file): Don't call file_mark(), it would use
1076         uninitialized data.
1077         * main.c (panel_clean_dir): Make panel dirty.
1079         * glibcompat.c: New file for compatibility with older versions
1080         of glib.
1081         * glibcompat.h: Likewise.
1082         * Makefile.am: Add the new files SOURCES.
1083         * global.h: Include glibcompat.h.
1085         * menu.c (menu_scan_hotkey): Use g_strlcpy() to avoid undefined
1086         behavior when using strcpy() on overlapping strings.
1087         * profile.c (GetSetProfile): Likewise.
1088         * widget.c (button_scan_hotkey): Likewise.
1089         Found by Valgrind.
1091 2003-09-13  Pavel Roskin  <proski@gnu.org>
1093         * dlg.c (dlg_replace_widget): Clean rewrite.  It was broken
1094         after eliminating Widget_Item.
1096         * menu.h: Return to keeping dialog id instead of a widget
1097         pointer for previous widget.  The widget can be replaced in the
1098         meantime.
1099         * dlg.c (dlg_select_by_id): New function, essentially a cleaner
1100         implementation of dlg_select_nth_widget().
1102         * dlg.h: Remove "first" field for dialogs and DLG_HAS_MENUBAR.
1103         * dlg.c (dlg_mouse_event): Remove menubar hack.
1104         * screen.c (do_panel_event): Redirect mouse events on the upper
1105         frame to the menubar if it's invisible.
1106         (panel_event): Don't repaint the panel after redirected events.
1108 2003-09-12  Pavel Roskin  <proski@gnu.org>
1110         * screen.c (panel_event): Make sure that the panel is repainted
1111         after the event is processed.
1113         * hotlist.c (l_call): Fix incorrect calls to hotlist_callback().
1115         * dlg.h: Merge Widget_Item into Widget.  Massive adjustment.
1117         * main.c (setup_panels_and_run_mc): Use straight widget order in
1118         midnight_dlg.  Select initial panel by dlg_select_widget().
1120         * menu.h (WMenu): Save pointer to the previous widget, not its
1121         number.  Adjust all dependencies.
1122         * menu.c (menubar_finish): Restore focus on the saved widget.
1123         * dlg.c (dlg_item_number): Remove, it's unused now.
1124         (dlg_select_nth_widget): Likewise.
1126         * help.c (interactive_display): Use straight widget order.
1128         * complete.c (complete_engine): Don't need DLG_REVERSE.
1129         * widget.c (show_hist): Likewise.
1130         * view.c (view): Use straight widget order.
1132         * dlg.h: Replace DLG_BACKWARD to DLG_REVERSE with a better
1133         defined meaning.  Make it default to populate dialogs from the
1134         top.  Change all calls to create_dlg().
1136         * dlg.c: DLG_BACKWARD now affects how the dialog is populated by
1137         widgets, not the runtime behavior.
1138         (init_dlg): Don't change current widget.  This allows using
1139         dlg_select_widget() before the dialog is run.
1140         * dlg.h: Remove initfocus field.
1141         * wtools.c (query_dialog): Use dlg_select_widget(), not
1142         initfocus to set the initial widget.
1144         * widget.c (input_callback): Don't handle Enter.
1145         Requested by Ali Akcaagac <aliakc@web.de>
1147         * chmod.c (chmod_callback): Fix uninitialized variable.
1149 2003-09-11  Pavel Roskin  <proski@gnu.org>
1151         * main.c (midnight_callback): Don't redraw dirty panels if the
1152         menubar is active.
1154         * dlg.c (add_widget): New, safer implementation.  Don't rely on
1155         the position of the first widget.  Disable insertion into
1156         running dialogs - it's unused and cannot be tested.
1158         * boxes.c (symlink_dialog): Add "OK" and "Cancel" buttons.
1159         Don't translate strings, it's done in quick_dialog().
1160         Reported by Ali Akcaagac <aliakc@web.de>
1162 2003-09-10  Pavel Roskin  <proski@gnu.org>
1164         * dlg.h: Remove "last" field from Dlg_head, it's unneeded in a
1165         circularly linked list.
1167         * screen.c (paint_dir): Don't make panel clean here.
1168         (panel_update_contents): Do it here.
1169         (panel_callback): Repaint the panel on focus.
1170         (select_item): Don't paint anything here.
1172         * dlg.h (send_message): Use cb_ret_t and widget_msg_t.
1174         * main.c (menu_cmd): If the current panel is inactive, use the
1175         opposite side to start menu.
1177         * dlg.h: Use cb_ret_t and widget_msg_t in widget callbacks.
1178         Massive adjustment for the above.
1180         * chmod.c (chmod_toggle_select): Get id as argument.
1182         * dlg.h: Remove restroy callback.  Widgets should use
1183         WIDGET_DESTROY.  Adjust all dependencies.
1185         * dlg.c: Don't supply ID of the current widget with any
1186         callbacks.  It's mostly useless and can be found by the
1187         callback.
1188         * layout.c: Likewise.
1189         * widget.c: Likewise.
1190         * chmod.c (chmod_callback): Adjust for the above.
1192         * layout.c (layout_change): Make static.
1193         * screen.c (paint_panel): Likewise.
1194         * cmd.c (dirsizes_cmd): Use dirty flag.
1195         * tree.c (chdir_sel): Don't call paint_panel().
1197         * find.c: Remove useless calls to paint_panel().
1198         * panelize.c: Likewise.
1200         * screen.c (use_display_format): Set dirty flag.  Remove calls
1201         to paint_panel() where they become unneeded.
1203         * screen.c (file_mark): Set dirty flag if the mark changes.
1204         * cmd.c: Remove calls to paint_panel() due to file marks.
1206         * screen.c (update_dirty_panels): New function - update panels
1207         with the dirty flag.
1208         (panel_update_contents): Make static, don't call directly.
1209         * main.c: Don't call panel_update_contents(), use dirty flag.
1210         (midnight_callback): Call update_dirty_panels().
1212 2003-09-09  Pavel Roskin  <proski@gnu.org>
1214         * find.c (find_parameters): Make "filename" entry focused on
1215         startup - it's used more often than "start at".
1217         * widget.c (button_callback): Don't let the default button steal
1218         Enter from the current button.
1220         * widget.c (button_callback): Treat Enter as hotkey for the
1221         default button.
1222         * wtools.c (quick_callback): Remove, it's unneeded now.
1224         * wtools.c (quick_callback): Restore old obscure functionality -
1225         DLG_KEY should not return MSG_HANDLED to allow the button
1226         callback to override the dialog return value.
1228         * key.c (xterm_key_defines): Add keypad keys.
1229         Reported by Vyacheslav Filyayev <vfilyayev@d2.khai.edu>
1231 2003-09-09  Andrew V. Samoilov  <sav@bcs.zp.ua>
1233         * view.c (view_init): Constify "_command" argument.
1234         (view): Likewise.
1235         (do_view_init): Likewise.
1236         (init_growing_view): Constify "name" and "filename" args.
1237         * view.h: Fix declarations and comment.
1239         * user.c (execute_menu_command: Fix rare segmentation violation
1240         if last line in menu file contain space(s) only and no trailing
1241         newline.
1243 2003-09-07  Pavel Roskin  <proski@gnu.org>
1245         * listmode.c: Use groupboxes.
1247         * layout.c (init_layout): Use groupboxes.
1249         * widget.c: Implement new widget - groupbox.
1250         * option.c: Use it.
1252         * layout.c: Fix remaining callback calls.
1253         * widget.c: Likewise.
1255         * dlg.h: Use new types for dialog callbacks.
1256         (dlg_cb_fn): Swap msg and parm arguments for consistency with
1257         widget callbacks.  Adjust all dependencies.
1259         * dlg.h: Remove WIDGET_USER.  Define new types dlg_msg_t,
1260         widget_msg_t and cb_ret_t.
1262         * dlg.c (find_widget_type): Take pointer to void to avoid casts
1263         everywhere.  Adjust all callers.
1265         * main.c (midnight_callback): Fix for the last commit - repaint
1266         the panel if the search mode is unset.
1268         * dlg.h: Remove DLG_PRE_EVENT, it's unused now.
1270         * main.c (make_panels_dirty): Remove, it's unneeded now.
1271         (midnight_callback): Don't call make_panels_dirty().  Mark
1272         current panel dirty if the search mode is unset.  No need to set
1273         attributes before calling show_console_contents().
1275         * dlg.h: Convert send_idle_msg field to a publicly visible flag
1276         DLG_WANT_IDLE.
1277         * main.c (midnight_callback): Move auto_menu handling to the
1278         handler for DLG_IDLE.
1279         (do_nc): Request idle events.
1281 2003-09-06  Pavel Roskin  <proski@gnu.org>
1283         * dlg.c: Fix a bug when DLG_HOTKEY_HANDLED would not be
1284         delivered if the current widget already has focus.
1286 2003-09-04  Andrew V. Samoilov  <sav@bcs.zp.ua>
1288         * user.c (execute_menu_command): Implement %view macro.
1290 2003-09-03  Pavel Roskin  <proski@gnu.org>
1292         * wtools.c (create_listbox_window): Don't repaint the dialog
1293         before it's run.
1295         * learn.c: Don't track button hotkeys.
1296         (learn_check_key): Consume all alphanumeric keys, regardless of
1297         button hotkeys.
1299 2003-09-01  Pavel Roskin  <proski@gnu.org>
1301         * listmode.c: Create all buttons in one place.  Remove unneeded
1302         low-level drawing.
1303         (listmode_edit): Return NULL on cancel.
1304         * main.c (listmode_cmd): Actually use the result of
1305         listmode_edit().
1307         * listmode.c: Use callbacks for Add and Remove buttons.  Don't
1308         run dialog in the loop, it doesn't work this way.
1310         * widget.h: Define type bcback for button callbacks.
1312         * widget.c (listbox_new): Remove "action" argument.  Listboxes
1313         without callbacks default to closing the dialog.  Adjust all
1314         users.  This fixes double click on completion listbox.
1315         * widget.h: Use uppercase names for the return values of the
1316         listbox callback.
1318         * hotlist.c (update_path_name): Avoid using global variable.
1319         (l_call): Likewise.
1321         * widget.h: Eliminate listbox_cback.  Call listbox callback
1322         whenever it's defined.  Adjust all users.
1324         * widget.h: Use exact type in the listbox callback.  Adjust all
1325         legitimate users, remove all unused callbacks.
1327         * boxes.c: Fix GUI code for some non-default configurations.
1328         * listmode.c: Likewise.
1330 2003-08-31  Pavel Roskin  <proski@gnu.org>
1332         * widget.h (button_new): Remove unused extra argument.  Adjust
1333         all dependencies.
1335         * option.c (check_options): Remove tk field.
1336         * widget.c: Comment fix to get rid of references to Tk.
1337         * wtools.c (real_input_dialog_help): Rename tk_name to histname.
1338         Remove names from non-input widgets.
1340         * widget.h: Completely get rid of tkname.  Rename it to histname
1341         for the input widget.  Adjust all dependencies.
1343         * dlg.h (struct Widget): Remove tkname field.
1344         (init_widget): Remove tkname argument.
1345         * widget.h (listbox_new): Likewise.
1346         Adjust all dependencies.
1348 2003-08-29  Andrew V. Samoilov  <sav@bcs.zp.ua>
1350         * cmd.c (edit_symlink_cmd): Fix possible off-by-one after
1351         readlink().
1352         * file.c (make_symlink): Likewise.
1353         * main.c (copy_readlink): Likewise.
1354         * screen.c (display_mini_info): Likewise.
1355         (chdir_to_readlink): Likewise.
1356         * util.c (resolve_symlinks): Likewise.
1358 2003-08-18  Pavel Roskin  <proski@gnu.org>
1360         * cmd.c (delete_cmd_local): New function.  Remove file under the
1361         cursor, regardless of marks.
1362         * screen.c (panel_keymap): Bind it to F18.
1364         * file.c (panel_operate_generate_prompt): Remove source
1365         calculation, it doesn't belong here.
1366         (panel_operate): Change arguments: drop ask_user and thedefault,
1367         introduce force_single.  force_single changes default to the
1368         current file and ignores selection.  Adjust all dependencies.
1370 2003-08-17  Pavel Roskin  <proski@gnu.org>
1372         * dir.h (file_entry): Rename "buf" to "st".  Adjust all
1373         dependencies.
1375 2003-08-01  Pavel Roskin  <proski@gnu.org>
1377         * main.c: Rename PanelMenu to LeftMenu.  Don't assume that
1378         LeftMenu and RightMenu are identical.
1379         From Pavel Tsekov <ptsekov@gmx.net>
1381 2003-07-28  Andrew V. Samoilov  <sav@bcs.zp.ua>
1383         * main.c: Make more variables static.
1385 2003-07-23  Pavel Roskin  <proski@gnu.org>
1387         * key.c (xterm_key_defines): Add more sequences for xterm-179 by
1388         Thomas E. Dickey.
1390 2003-07-21  Pavel Roskin  <proski@gnu.org>
1392         * subshell.c (pty_open_master) [HAVE_GRANTPT]: Prefer
1393         posix_openpt() over GNU-specific getpt().  Needed for FreeBSD
1394         5.x.  Original patch by Max Khon <fjoe@FreeBSD.org>
1396         * screen.c (panel_key): Redisplay ministatus if the searching
1397         was turned off.  Reported by gotar@poczta.onet.pl
1399 2003-07-08  Andrew V. Samoilov  <sav@bcs.zp.ua>
1401         * ext.c (regex_check_type): Don't skip first character after ":"
1402         unconditionally.
1404 2003-07-02  Pavel Roskin  <proski@gnu.org>
1406         * ext.c (regex_check_type): Set content_shift to skip the
1407         filename.
1409 2003-06-27  David Sterba  <dave@jikos.cz>
1411         * hotlist.c: Add buttons "Refresh" and "Free VFSs now" to Active
1412         VFS dialog.
1413         (hotlist_button_callback): Handle the buttons.
1414         * main.c: Remove the 'Free VFS now' menu item.
1416 2003-06-25  Andrew V. Samoilov  <sav@bcs.zp.ua>
1418         * ext.c (regex_check_type): Fix previous change.
1420         * ext.c (regex_check_type): Strip tab(s) after "filename:" in
1421         file output.
1423 2003-06-22  Pavel Roskin  <proski@gnu.org>
1425         * execute.c (do_execute): Make static.  Print end of line after
1426         "Press any key to continue" and user's keystroke, but before
1427         restoring the panels.  Eliminate last_paused variable.  Don't
1428         print fake prompt if there is no command.
1430         * text.c: Eliminate.  Move colors to color.c and clr_scr() to
1431         layout.c.
1432         * main.c (restore_console): Eliminate, use handle_console().
1433         * Makefile.am: Remove text.c.
1435         * execute.c: New file with all functions for execution and
1436         toggling panels not specific to subshell.
1437         * execute.h: Corresponding header.
1438         * Makefile.am: Adjust for the above.
1440         * main.c (execute): Eliminate.  Fix all dependencies.
1441         (shell_execute): Constify string argument.
1443 2003-06-09  Pavel Roskin  <proski@gnu.org>
1445         * key.c (mc_bindings): Remove.  Esc-">" and Esc-"<" are not
1446         always the same as Home and End, at least in mcedit.
1447         (get_key_code): Never ignore Escape outside known sequences.
1448         * screen.c (panel_keymap): Add Esc-">" and Esc-"<".
1449         * tree.c (tree_keymap): Likewise.
1450         * widget.c (input_map): Likewise.
1451         (listbox_key): Likewise.
1452         (check_movement_keys): Likewise.
1453         Reported by Miguel de Icaza <miguel@ximian.com>
1455 2003-06-09  David Sterba  <dave@jikos.cz>
1457         * key.c (correct_key_code): Treat Shift-Backspace as Backspace.
1459 2003-06-06  Pavel Roskin  <proski@gnu.org>
1461         * util.h: Add new match_type - match_regex.
1462         * ext.c: Use it everywhere.
1463         (regex_command): Don't change easy_patterns - it affects the
1464         panel filters.
1465         Reported by Andrew V. Samoilov <sav@bcs.zp.ua>
1467         * view.c (get_byte): Fix off-by-one error.  Found by Valgrind.
1469         * command.c (command_new): Fix memory leak.
1470         * subshell.c (exit_subshell): Free pty_buffer.
1472 2003-06-05  Pavel Roskin  <proski@gnu.org>
1474         * dir.c (do_load_dir): Add new argument "path" to avoid the need
1475         to request the current directory.
1476         (do_reload_dir): Likewise.  Adjust all callers.
1478         * screen.c (panel_destroy): Rewind history to the beginning
1479         before freeing it.
1480         * widget.c (input_destroy): Likewise.
1481         * util.c (list_append_unique): Free data when removing duplicate
1482         list entries.
1484 2003-05-29  Andrew V. Samoilov  <sav@bcs.zp.ua>
1486         * key.c (init_key): Fix crash if TERM is unset.
1488 2003-05-29  Koblinger Egmont  <egmont@uhulinux.hu>
1490         * ext.c (regex_check_type): Recognize and skip "/dev/stdin:"
1491         that can appear in the output of new versions of file.
1493         * util.c (unix_error_string): Convert error string from UTF-8 if
1494         glib 2 is used.
1496         * text.c (default_edition_colors): Change the default for
1497         dhotfocus to be blue on cyan for consistency with dhotnormal.
1499 2003-05-27  Andrew V. Samoilov  <sav@bcs.zp.ua>
1501         * info.c (info_show_info): Cast myfs_stats.avail to double to
1502         fix integer overflow that can cause a negative percent number.
1504 2003-05-05  Jindrich Makovicka  <makovick@kmlinux.fjfi.cvut.cz>
1506         * main.c (directory_history_add): Don't change the directory
1507         passed as the argument, work on a copy.
1509 2003-04-16  Andrew V. Samoilov  <sav@bcs.zp.ua>
1511         * find.c (get_line_at): Strip trailing newline to fix $
1512         matching.
1514 2003-03-26  Andrew V. Samoilov  <sav@bcs.zp.ua>
1516         * file.c (copy_file_file): Fix data corruption if mc_write()
1517         does not write n_read bytes at once.
1518         (move_file_file): Eliminate retry_src_lstat label.
1520 2003-03-24  Andrew V. Samoilov  <sav@bcs.zp.ua>
1522         * view.c (get_line_at): Set prev properly for reverse search.
1523         Don't remove final character in the last line without newline.
1524         (search): During regexp search: handle properly '^'
1525         in forward search and '$' in reverse search.
1526         Based on the patch from Adam Byrtek <alpha@debian.org>.
1528 2003-03-22  Andrew V. Samoilov  <sav@bcs.zp.ua>
1530         * cons.handler.c (set_attr) [__FreeBSD__]: Fix compilation.
1531         Reported by Dmitry Alexeyev <dmi_a@qnx.org.ru>.
1533 2003-03-22  Adam Byrtek  <alpha@debian.org>
1535         * command.c (enter): Check subshell state early and return if
1536         inactive before clearing the command line.
1537         * main.c (force_subshell_execution): Remove magic, unusable,
1538         undocumented command line option "-r".
1540         * subshell.c: Remove dead code (SYNC_PTY_SIDES).
1541         (init_subshell_child): Remove dead code (initfile for TCSH).
1542         (init_subshell): Use ZSH_VERSION environment variable to detect
1543         ZSH.  Use -g option to zsh to hide entries beginning with space
1544         from history.  Add space before ZSH precmd to hide it.
1546 2003-03-21  Andrew V. Samoilov  <sav@bcs.zp.ua>
1548         * view.c (get_line_at): Return unreversed line for backward
1549         search to restore backward regexp search feature.
1550         (icase_search_p): Fix for the above.
1551         Reported by Adam Byrtek <alpha@debian.org>
1553 2003-03-19  Andrew V. Samoilov  <sav@bcs.zp.ua>
1555         * view.c (icase_search_p): Add backward search support.
1556         (search): Likewise.
1557         (block_search): Likewise.
1558         (normal_search): Add "Backwards" button.
1559         (get_line_at): Handle view->direction properly and return
1560         reversed string if backward search required.
1562 2003-03-14  Pavel Roskin  <proski@gnu.org>
1564         * key.c (xterm_key_defines): Add more sequences for xterm, rxvt
1565         and konsole.
1567 2003-03-11  Andrew V. Samoilov  <sav@bcs.zp.ua>
1569         * key.c: Use fputs() instead of fprintf().
1570         (func_XOpenDisplay) [HAVE_GMODULE]: Move to init_key_x11().
1571         (get_modifier) [__QNXNTO__]: Use g_snprintf() instead of unsafe
1572         sprintf().
1574 2003-03-10  Pavel Roskin  <proski@gnu.org>
1576         * key.c (correct_key_code): Convert unrecognized 0177, Ctrl-h
1577         and Ctrl-d into Delete and Backspace.  Remove all references to
1578         those keys in other files.
1580         * key.c (get_modifier) [__QNXNTO__]: Remove incorrect check for
1581         the existence of libph.so.1.
1583 2003-03-10  Dmitry Alexeyev  <dmi_a@qnx.org.ru>
1585         * key.c (get_modifier): Add support for QNX Photon pterm.
1587 2003-03-10  Pavel Roskin  <proski@gnu.org>
1589         * utilunix.c (canonicalize_pathname): Clean rewrite from
1590         scratch.  The old implementation had memory problems with "/.."
1591         and didn't actually strip the leading "./" from path.  Remove
1592         support for obsolete Qnet paths.
1594 2003-03-05  Pavel Roskin  <proski@gnu.org>
1596         * subshell.c (init_subshell_child): Set environment variable
1597         MC_SID to the session number of the subshell.
1598         (check_sid): Check that we are not running mc already in the
1599         same session.
1600         * main.c (main): Don't run do_nc() if shutdown was requested.
1602 2003-03-05  Andrew V. Samoilov  <sav@bcs.zp.ua>
1604         * cons.handler.c (set_attr) [__FreeBSD__]: Eliminate cmd array.
1606 2003-03-05  Max Khon  <fjoe@iclub.nsu.ru>
1608         * cons.handler.c (console_init) [__FreeBSD__]: Fix the amount of
1609         allocated memory.
1610         (console_save) [__FreeBSD__]: Doesn't exit on error, just return.
1612 2003-03-05  Pavel Roskin  <proski@gnu.org>
1614         * cons.handler.c (show_console_contents_freebsd): Rewrite
1615         to use screen library (S-Lang or ncurses).  Direct output is
1616         unreliable when the screen library is active.
1618 2003-03-03  Pavel Roskin  <proski@gnu.org>
1620         * profile.c (load): Fix reading keys immediately after comments.
1622 2003-02-26  Pavel Roskin  <proski@gnu.org>
1624         * cons.handler.c: Put checks for rxvt extensions in one place.
1625         Simplify FreeBSD code.
1627 2003-02-26  Max Khon  <fjoe@iclub.nsu.ru>
1629         * cons.handler.c: Add implementation for FreeBSD 4.x and 5.x.
1631 2003-02-26  Pavel Roskin  <proski@gnu.org>
1633         * view.c (load_view_file): Make sure view->s.st_size is not
1634         truncated when passed to g_malloc().
1635         Reported by Philipp Thomas <pthomas@suse.de>
1637 2003-02-23  Dmitry Alexeyev  <dmi_a@qnx.org.ru>
1639         * key.c (get_modifier): Add support for QNX Neutrino console.
1641 2003-02-23  Pavel Roskin  <proski@gnu.org>
1643         * key.c (init_key_x11): Don't try to use X11 if DISPLAY is not
1644         set in the environment.
1646 2003-02-22  Pavel Tsekov  <ptsekov@gmx.net>
1648         * key.c: Add support for dynamic loading of libX11.
1650 2003-02-21  Pavel Roskin  <proski@gnu.org>
1652         * utilunix.c (destroy_groups): Revert last change, it doesn't
1653         work with glib-1.2.x.
1655 2003-02-19  Andrew V. Samoilov  <sav@bcs.zp.ua>
1657         * option.c (init_configure): Use OTHER_OPTIONS consistently.
1658         By Mike Smithson <dooligan@intergate.ca>.
1660 2003-02-18  Pavel Roskin  <proski@gnu.org>
1662         * util.c (list_append_unique): Free removed links.
1663         * utilunix.c (destroy_groups): Use g_tree_foreach() instead of
1664         obsolete g_tree_traverse().
1666         * util.c (list_append_unique): Traverse the list backwards.
1667         Otherwise the list was lost when the current link was removed.
1669         * widget.c (history_get): Set the history to the last item.
1670         Reported by Adam Byrtek <alpha@debian.org>
1672         * main.c (do_panel_cd): Record directory history for the panel
1673         that changes the directory, not for the current panel.
1675         * widget.c (history_get): Use list_append_unique() for backward
1676         compatibility.
1678         * main.c (directory_history_list): Allow history command even
1679         with just one entry - it's more intuitive.
1681         * util.c (list_append_unique): New function - add text to GList
1682         and remove duplicates.
1683         * main.c (directory_history_add): Use list_append_unique().
1684         * widget.c (push_history): Likewise.
1686         * panel.h: Convert directory history to GList.
1687         * widget.h: Convert input history to GList.
1688         Adjust all dependencies.
1690 2003-02-11  Pavel Roskin  <proski@gnu.org>
1692         * cmd.c (edit_cmd_new): Call editor with NULL argument, not with
1693         an empty string.  nvi won't save the file if invoked with an
1694         empty argument.
1695         (execute_with_vfs_arg): Don't call vfs_file_is_local() on NULL.
1696         Reported by Adam Byrtek <alpha@debian.org>
1698 2003-02-04  Pavel Roskin  <proski@gnu.org>
1700         * cmd.c (get_random_hint): Add "force" argument to ignore
1701         timeout.  Adjust all dependencies.
1702         * main.c (load_hint): Likewise.
1703         * layout.c (setup_panels): Force updating the hint bar.
1704         Original patch by Adam Byrtek <alpha@debian.org>
1706 2003-02-03  Pavel Roskin  <proski@gnu.org>
1708         * slint.c (getch): If there is EOF on the input, exit
1709         immediately, don't use quiet_quit_cmd().
1710         Reported by Steven P. Ulrick <spu@faith4miracle.org>
1712 2003-01-28  Pavel Roskin  <proski@gnu.org>
1714         * util.c (name_quote): Don't quote ':', '~' and '@'.  Quote '#'
1715         and '~' only if it's the first character.
1717         * info.c (info_show_info): Cast nlink_t to int to avoid a
1718         warning if nlink_t is short.
1719         * screen.c (string_file_nlinks): Likewise.
1721 2003-01-27  Arpi  <arpi@mplayerhq.hu>
1723         * key.c (is_idle): Correct maximal file descriptor and return
1724         value.
1726 2003-01-27  Andrew V. Samoilov  <sav@bcs.zp.ua>
1728         * util.h (app_text): Remove declaration - it became static.
1729         * util.c (get_compression_type): Cast magic to char * to
1730         fix compilation on AIX.
1731         * mountlist.c (read_filesystem_list) [MOUNTED_GETMNTENT1]:
1732         Check for MOUNTED is defined to fix compilation on AIX.
1733         Reported by Alexander Varakin <avarakin00@hotmail.com>.
1735 2003-01-27  Pavel Roskin  <proski@gnu.org>
1737         * main.c (update_xterm_title_path): Use is_printable().
1739 2003-01-24  Pavel Roskin  <proski@gnu.org>
1741         * slint.c (slang_reset_softkeys): Cast arguments from size_t to
1742         int to avoid a warning on 64-bit systems.
1744         * subshell.c (resize_tty) [!TIOCSWINSZ]: Warning fix.
1746 2003-01-23  Pavel Roskin  <proski@gnu.org>
1748         * slint.c (slang_init): Limit screen size to 255x255 because of
1749         S-Lang limitations.
1750         Reported by Tero Peippola <top@ees2.oulu.fi>
1752 2003-01-22  Adam Byrtek  <alpha@debian.org>
1754         * cmd.c (view_other_cmd): Update path in the xterm title after
1755         command execution.
1756         * main.c (do_execute): Likewise.
1758 2003-01-22  Pavel Roskin  <proski@gnu.org>
1760         * util.c (size_trunc): Remove "b" from the output - it's
1761         redundant and wrong - the abbreviation for byte is "B".
1762         Reported by Werner Lemberg <wl@gnu.org>
1764 2003-01-20  Pavel Roskin  <proski@gnu.org>
1766         * screen.c (string_file_type): Check for "regularity" before
1767         checking for executable bit.
1768         (file_compute_color): Likewise.
1770         * dir.c (handle_dirent): Fix cleaning the stat buffer if
1771         mc_lstat() fails.  Leave buf1->st_mode to be 0, so that the
1772         entry is marked as a "non-regular file of unknown kind".
1773         * screen.c (do_enter_on_file_entry): Try to change directory
1774         when pressing Enter on a non-stat()able file.
1776         * screen.c (string_file_type): Represent non-regular files of
1777         unknown kind by '?'.
1778         (file_compute_color): Use for them the same color as for stale
1779         links.
1781         * main.c: Change default value of full_eight_bits to 0 - it's
1782         reported to be broken on many terminals.
1784         * man2hlp.c (main): Initialize cnode->heading_level.
1785         Bug report by Tribhuvan <loka@rcn.com>
1787         * dir.c (sort_size): Avoid any arithmetic except comparison on
1788         file sizes - they may not fit "int" that the function returns.
1789         Original patch by Bulia Byak <bulia@dr.com>
1791 2003-01-20  Andrew V. Samoilov  <sav@bcs.zp.ua>
1793         * profile.c (load): Handle corrupted section header.
1794         Reported by skol@sbox.tugraz.at.
1795         (GetPrivateProfileInt): Make intBuf and buf auto variables.
1797 2003-01-20  Pavel Roskin  <proski@gnu.org>
1799         * screen.c (do_search): Use case-insensitive search if and only
1800         if the sort order is case-insensitive.
1801         Suggested by Bulia Byak <bulia@dr.com>
1803 2003-01-19  Pavel Roskin  <proski@gnu.org>
1805         * dir.c (do_load_dir): Remove dotdot_found - handle_dirent()
1806         doesn't process ".." now.  Don't add ".." to the "/" directory.
1807         (do_reload_dir): Likewise.
1808         Suggested by Bulia Byak <bulia@dr.com>
1810         * dir.c (handle_dirent): If mc_lstat() fails, assume that the
1811         entry is a directory.  This is useful for QNX Neutrino.
1813 2003-01-15  Andrew V. Samoilov  <sav@bcs.zp.ua>
1815         * man2hlp.c (fclose_check): Call ferror() and exit on file
1816         error.
1818         * man2hlp.c (main): Use fgets() return value in while loop
1819         instead of feof() because end-of-file indicator can be false on
1820         error.
1822         * man2hlp.c (handle_command): Fix possible buffer overflow.
1823         (handle_link): Likewise.
1825 2002-12-27  Pavel Roskin  <proski@gnu.org>
1827         * layout.c (setup_panels): Revert unnecessary part of the
1828         previous patch.  Call load_hint() regardless of message_visible.
1829         Reported by Dmitry Semyonov <Dmitry.Semyonov@oktet.ru>
1831         * key.c (correct_key_code): Don't call get_modifier() for normal
1832         characters - they only should get modifiers from sequences
1833         tables.  This fixes entering characters with AltGr.
1834         Reported by David Martín <dmartina@excite.com>
1836         * view.c (max_dirt_limit): Make global to match view.h.
1837         * setup.c (options): Actually save max_dirt_limit, which is
1838         documented as a "special setting".
1840 2002-12-26  Pavel Roskin  <proski@gnu.org>
1842         * key.c (get_modifier): Warning fix.
1844         * file.c: Never access internals of ctx->rx directly.
1845         * fileopctx.c (file_op_context_destroy): Use regfree() to free
1846         ctx->rx.
1847         Patch from Red Hat beta.
1849         * layout.c (setup_panels): Clean the hint bar if it's enabled.
1850         Bug reported by Adam Byrtek <alpha@debian.org>
1852 2002-12-26  Adam Byrtek  <alpha@debian.org>
1854         * main.c (update_xterm_title_path): New function, display
1855         current path in the xterm window title.
1856         (_do_panel_cd): Call update_xterm_title_path().
1857         (done_mc): Remove final message for the titlebar.
1858         * layout.c: Replace "Xterm hintbar" option with more generic
1859         "Xterm window title".  Update all dependencies.
1860         (setup_panels): Call update_xterm_title_path().
1862 2002-12-26  Pavel Roskin  <proski@gnu.org>
1864         * utilunix.c (mc_tmpdir): Check temporary directory more
1865         carefully.  Report problems and ask user to acknowledge them.
1867         * main.c (midnight_callback): Fix the last change, so that plain
1868         Enter is not affected.
1870 2002-12-25  Pavel Roskin  <proski@gnu.org>
1872         * main.c (copy_prog_name): Make static.
1873         (midnight_callback): Handle both Alt-Enter and Ctrl-Enter before
1874         the widgets, because the input widget interprets them now.
1875         (default_map): Remove Alt-Enter, it's handled elsewhere.
1877         * key.c (correct_key_code): Convert Shift-Tab and Ctrl-Tab to
1878         Back Tab (used in dialogs to jump to the previous widget).
1880         * widget.c (input_callback): Insert Enter with a modifier as
1881         literal Enter.  Useful when pasting multiline text.
1883         * cmd.c (execute_with_vfs_arg): New function.  Work around
1884         defects of VFS localcopy code.
1885         (view_file_at_line): Use execute_with_vfs_arg().
1886         (do_edit_at_line): Likewise.
1888 2002-12-24  Pavel Roskin  <proski@gnu.org>
1890         * key.c (is_idle): Check for input on input_fd and gpm_fd.
1892         * main.c (init_xterm_support): Revert last change, it doesn't
1893         free all S-Lang memory anyways, but creates portability issues.
1895         * dlg.h: Add new event DLG_VALIDATE.
1896         * dlg.c (frontend_run_dlg): Send DLG_VALIDATE.
1897         (select_a_widget): Don't send DLG_ONE_DOWN, nobody uses it.
1898         * find.c (find_parm_callback): New callback for the parameter
1899         dialog.  Don't allow stopping the dialog if the regular
1900         expression is invalid.
1902 2002-12-23  Pavel Roskin  <proski@gnu.org>
1904         * layout.c (init_curses) [HAVE_SLANG]: Don't call
1905         SLtt_get_terminfo(), it's already called in slang_init().
1906         * main.c (init_xterm_support): Free term_entry.
1908         * subshell.c (subshell_switch_key): Make static const.
1910         * key.c (correct_key_code): Strip or add modifier information
1911         when necessary.  Recognize shift with function key N as function
1912         key (N + 10).  Fix breakage from previous patch.
1913         * key.h: Change XCTRL and ALT macros to use new definitions for
1914         keyboard modifiers.
1916 2002-12-21  Pavel Roskin  <proski@gnu.org>
1918         * key.c (get_modifier): Make static.  Return the mc internal
1919         representation, not the Linux console code.
1920         (correct_key_code): Add the modifier, not strip it.
1921         (ctrl_pressed): Remove.  Adjust all dependencies.
1923         * key.h: Add definitions for the keyboard modifiers that can be
1924         part of the key code.
1925         * key.c (xterm_key_defines): Add some common key definitions
1926         with modifiers for xterm and rxvt.
1927         (correct_key_code): Strip and remember modifiers.
1928         (get_modifier): Add support for saved modifiers.
1930 2002-12-20  Pavel Roskin  <proski@gnu.org>
1932         * layout.c (init_curses) [!HAVE_SLANG]: Set ESCDELAY to 200ms.
1933         If ESCDELAY is 0, ncurses 5.2 may stop recognizing escape
1934         sequences under heavy CPU load.
1936 2002-12-19  Pavel Roskin  <proski@gnu.org>
1938         * screen.c (chdir_other_panel): Use do_panel_cd() on the
1939         opposite panel instead of changing the current panel twice.
1941         * main.c (make_panels_dirty): Preserve the cursor position.
1943 2002-12-18  Tomas Styblo  <tripie@cpan.org>
1945         * hotlist.c (update_path_name): Update the title even when
1946         opening an empty group.
1948 2002-12-16  Pavel Roskin  <proski@gnu.org>
1950         * dir.c (do_load_dir): Add an error message if mc_opendir()
1951         fails.
1952         (do_reload_dir): Likewise.
1953         * screen.c (do_enter_on_file_entry): Add an error message if
1954         do_cd() fails.
1956 2002-12-15  Pavel Roskin  <proski@gnu.org>
1958         * view.c (do_view_init): Use non-blocking open() followed by
1959         fstat() to avoid race conditions.  Unset O_NONBLOCK flag after
1960         the open().
1962         * cmd.c (mkdir_cmd): Don't try to create a directory with empty
1963         name.
1965         * global.h: Add replacement for O_NONBLOCK.
1967 2002-12-11  Pavel Roskin  <proski@gnu.org>
1969         * find.c (find_file): Skip entries without data when panelizing.
1970         Found by Valgrind.
1972         * eregex.h: Undefine __restrict_arr before redefining to avoid a
1973         warning if it's defined.
1975 2002-12-09  Pavel Roskin  <proski@gnu.org>
1977         * util.c (load_file_position): Don't free filename.
1979 2002-12-08  Pavel Roskin  <proski@gnu.org>
1981         * util.c: Add functions for saving and loading file positions.
1983 2002-12-07  Pavel Roskin  <proski@gnu.org>
1985         * file.c (is_wildcarded): Move ...
1986         * filegui.c: ... here.  Make static.
1988 2002-12-01  Pavel Roskin  <proski@gnu.org>
1990         * cmd.c (do_edit_at_line): Set line to 0 to allow the editor to
1991         decide if the user cares about the initial line or not.
1992         * main.c: Set edit_one_file_start_line to 0 initially.
1994 2002-11-29  Pavel Roskin  <proski@gnu.org>
1996         * setup.c: Add option_save_position to the options table.
1998 2002-11-28  Pavel Roskin  <proski@gnu.org>
2000         * tree.c: Make struct WTree opaque.  Remove "done" flag - it's
2001         broken by design.
2002         (tree_selected_name): New function, return name of the currently
2003         selected entry.  Use it where WTree is opaque.
2004         * boxes.c (tree_callback): Don't check for the "done" flag - it
2005         causes closing the dialog on any key after mouse selection.
2007         * user.h: Don't include edit/edit-widget.h.
2008         * user.c: Include edit/edit-widget.h and edit/edit.h.
2010         * slint.c (getch): Return -1, not SLANG_GETKEY_ERROR, otherwise
2011         get_key_code() crashes when calling isalpha().
2013         * color.c (mc_init_pair) [HAVE_SLANG]: Pass "default", not NULL
2014         to SLtt_set_color() - it fixes transparency with the latest
2015         versions of S-Lang.  Treat foreground like background.
2017 2002-11-20  Pavel Roskin  <proski@gnu.org>
2019         * main.c: Eliminate finish_program variable - mc can now exit
2020         immediately.
2022 2002-11-17  Pavel Roskin  <proski@gnu.org>
2024         * screen.c (do_select): Mark panel as dirty.
2026         * boxes.c (init_disp_bits_box): Make static.
2028 2002-11-15  Pavel Roskin  <proski@gnu.org>
2030         * main.c (main): Don't call subshell_get_console_attributes() if
2031         the subshell is disabled from the command line.
2033 2002-11-14  Pavel Roskin  <proski@gnu.org>
2035         * myslang.h: Define getyx() macro.
2036         * layout.c (print_vfs_message): Preserve cursor position.
2038         * view.h: Make struct WView opaque, move non-interface parts ...
2039         * view.c: ... here.
2040         * layout.c: Use struct WView, not typedef WView.
2042         * cmd.c: Clean up includes, don't rely on edit.h.
2044         * dialog.c (struct Refresh): Make opaque.
2045         * dialog.h: Move all stuff unrelated to dialog.c ...
2046         * wtools.h: ... here.  Adjust all users.
2048         * dialog.c (refresh_list): Make static.
2049         * dialog.h: Add typedef refresh_fn.
2051         * cmd.c (menu_edit_cmd): Make static, provide separate functions
2052         without arguments to access it.
2053         * menu.h: Make callfn function without arguments - we are not
2054         using any arguments now.
2056 2002-11-13  Pavel Roskin  <proski@gnu.org>
2058         * man2hlp.c (persistent_fread): Return error for len <= 0.
2059         (persistent_fwrite): Likewise.
2060         (main): Check the result of the second ftell().
2062         * cmd.h: Fully exclude WPanel from public interfaces of cmd.c.
2063         * cmd.c: All commands operate on current panels.
2064         (get_a_panel): Remove.
2065         * screen.c: Change to use new functions.
2067         * main.h: Don't check if panel.h was included.  Use forward
2068         declaration of WPanel, change prototypes to use struct WPanel.
2069         (midnight_callback): Make static.
2071         * cmd.c (do_view_cmd): Don't take WPanel argument - always use
2072         the current panel.
2073         (view_cmd): Likewise.
2074         (view_file_cmd): Likewise.
2075         (view_simple_cmd): Likewise.
2076         (filtered_view_cmd): Likewise.
2077         (filtered_view_cmd_cpanel): Remove.
2078         (view_panel_cmd): Likewise.
2080 2002-11-12  Pavel Roskin  <proski@gnu.org>
2082         * chmod.c (init_chmod): Make static.
2083         * help.c (quit_cmd): Rename to help_quit_cmd().
2084         (show): Rename to help_show().
2085         * main.c (quit_cmd): Make static.  Return void, not int.
2086         (sort_cmd): Make static.
2088         * dlg.c (send_message_to): Remove, use send_message() instead.
2089         (send_message): Make inline, remove Dlg_head argument.  Change
2090         all callers.
2092         * dlg.h: Remove Dlg_head argument from callback_fn - it's
2093         excessive and can be trivially derived from the widget.
2094         (default_proc): Remove Dlg_head argument.  Change all callers.
2095         * widget.c (listbox_draw): Remove Dlg_head argument.
2097         * dlg.h: Define dlg_cb_fn - dialog callback function.  Improve
2098         typedefs for callbacks and use them everywhere.  Clean up some
2099         unused defines.
2100         * dlg.c: Adjust declarations for match.
2102         * wtools.h: Eliminate the_widget field in QuickWidget.
2103         * wtools.c (quick_callback): Allocate widget table dynamically.
2105         * dlg.c (widget_redraw): Remove.
2106         * widget.c (find_buttonbar): Use find_widget_type().  Make
2107         global.
2108         (define_label): Remove paneletc argument.  Change all callers.
2109         (define_label_data): Likewise.
2110         (redraw_labels): Likewise.  Use find_buttonbar().
2111         * view.c (view_adjust_size): Use find_buttonbar().
2113         * menu.h: Remove "*" from the definition of the type "Menu"
2114         for consistency with other types.  Change all dependencies.
2115         (menubar_event): Make static.
2117 2002-11-12  Andrew V. Samoilov  <kai@cmail.ru>
2119         * view.c (get_line_at): Use g_strreverse() instead of
2120         reverse_string().
2121         * util.c (reverse_string): Remove.
2122         (decompress_extension): Return const char *.
2123         (strip_home_and_password): Make dir const.
2124         * util.h: Fix declarations.
2126 2002-11-11  Pavel Roskin  <proski@gnu.org>
2128         * charsets.c (convert_to_display): Don't crash on empty read
2129         only strings.
2130         (convert_from_input): Likewise.
2131         Reported by David Martin <dmartina@excite.com>
2133         * screen.c (select_item): Don't show the file selection if the
2134         panel is inactive.
2135         (chdir_other_panel): Select the same file on the other panel.
2137         * file.c (panel_operate): Warning fix.
2138         * cmd.c (compare_dirs_cmd): Likewise.
2139         * man2hlp.c: Warning fixes.  size_t can be unsigned.
2141         * file.c (panel_get_file): Make static.
2142         * filegui.h: Eliminate use of WANT_WIDGETS.
2143         * setup.h: Likewise.
2144         * menu.h: Declare struct WMenu.
2145         * main.h: Don't include menu.h, use forward declaration.
2147         * dlg.h: Move movefn definition ...
2148         * win.h: ... where it's used.  Remove unused definitions.
2149         * win.c: Remove unused code.
2150         * key.h: Include mouse.h, don't rely on others doing it.
2151         * widget.h: Include dlg.h.  Remove Tk-only fields.
2152         * widget.c: Remove Tk-only fields.
2154         * panel.h: Simplify interdependencies between headers.  Use
2155         forward declarations for structures.
2156         * widget.h: Declare struct WListbox.
2157         * wtools.h: Use forward declaration for struct WListbox to avoid
2158         dependency on widget.h.
2160 2002-11-10  Pavel Roskin  <proski@gnu.org>
2162         * panel.h: Remove all unused definitions.  Make format_e an
2163         opaque structure by moving it ...
2164         * screen.c: ... here.
2166         * screen.c (display_mini_info): Make static.
2167         (the_info_panel): Remove.
2169         * screen.c (Xtry_to_select): Make static, rename to
2170         do_try_to_select().
2172         * screen.c (chdir_other_panel): Change behavior of Alt-O -
2173         change the other panel to the current directory, put it to the
2174         listing mode if needed.  Based on a patch from PLD Linux
2175         Distribution.
2177 2002-11-06  Pavel Roskin  <proski@gnu.org>
2179         * myslang.h: Don't define ERR - it conflicts with sys/ucontext.h
2180         in glibc 2.1.3.
2181         * key.c: Use -1, not ERR.
2183 2002-11-01  Andrew V. Samoilov  <sav@bcs.zp.ua>
2185         * boxes.c (configure_vfs): Ask whether passive connections
2186         should be used.  Asked by Andrew W. Nosenko <awn@bcs.zp.ua>.
2188 2002-11-01  Pavel Roskin  <proski@gnu.org>
2190         * main.c (main): Use O_TRUNC when opening the file to write the
2191         last working directory.  Fix segmentation fault when exiting
2192         while on VFS.
2193         * util.c (mc_mkstemps): Use O_TRUNC to open temporary files.
2195 2002-10-31  Andrew V. Samoilov  <sav@bcs.zp.ua>
2197         * view.c (normal_search) [HAVE_CHARSET]: Fix segmentation fault
2198         on first search.  Writing to read-only "" is not good idea.
2200 2002-10-31  Pavel Roskin  <proski@gnu.org>
2202         * main.c (probably_finish_program): Eliminate.
2203         (handle_args): Use exit code 1 only for errors, 0 for legitimate
2204         options such as "--help".
2206 2002-10-30  Pavel Roskin  <proski@gnu.org>
2208         * main.c: Option -P takes an argument (output filename) now.
2209         (main): Output the last directory to the specified file.  Don't
2210         output "." if this information is unavailable.
2212         * subshell.c (subshell_name_quote): Don't quote numbers and
2213         letters if possible and safe.
2215         * charset.h: Provide new inline functions convert_to_display_c()
2216         and convert_from_input_c().
2217         * view.c: Include charset.h unconditionally, use new conversion
2218         functions that don't require ifdefs.
2220         * charset.h [!HAVE_CHARSET]: Provide dummy macros for
2221         convert_to_display and convert_from_input.  Eliminate uchar
2222         definition, use unsigned char, adjust dependencies.
2223         * charsets.c (convert_to_display): Tolerate NULL argument.
2224         (convert_from_input): Likewise.
2226         * ext.c (exec_extension): Don't create self-destructing scripts
2227         for the viewer - remove those scripts manually after calling
2228         view().  This fixes the problem with double F8 in the viewer on
2229         parsed files.
2230         Reported by David Martin <dmartina@excite.com>
2232         * ext.c (exec_extension): Don't rely on working #! - explicitly
2233         run /bin/sh on the temporary script.
2235         * mouse.h: Use definitions for GPM_B_DOWN and GPM_B_UP
2236         compatible with gpm-1.20.
2237         Reported by David Martin <dmartina@excite.com>
2239 2002-10-29  Pavel Roskin  <proski@gnu.org>
2241         * panel.h: Use spaces, not commas, in the format - they are more
2242         readable and easier to document.
2243         * screen.c (panel_format): Likewise.
2244         (mini_status_format): Likewise.
2246 2002-10-29  Andrew V. Samoilov  <sav@bcs.zp.ua>
2248         * view.c (init_growing_view): Mark message for translation.
2249         (normal_search) [HAVE_CHARSET]: Convert saved search string to
2250         original codeset if input_dialog() returns empty string.
2252 2002-10-24  Pavel Roskin  <proski@gnu.org>
2254         * screen.c (mini_info_separator): Revert last patch.  The bug is
2255         in Red Hat 8.0 S-Lang.
2257         * screen.c (mini_info_separator): The separator was one
2258         character too long.
2259         (show_dir): Remove obsolete linux_unicode hack.
2261         * dlg.c (init_dlg): Redraw screen after selecting the focused
2262         widget, not before.  The bug affected file progress dialog with
2263         verbose operation off.
2264         Reported by Dmitry Semyonov <Dmitry.Semyonov@oktet.ru>
2266         * filegui.c (check_progress_buttons): Reinitialize ret_value to
2267         avoid old values after events other than selecting a button.
2268         Reported by Dmitry Semyonov <Dmitry.Semyonov@oktet.ru>
2270 2002-10-24  Andrew V. Samoilov  <sav@bcs.zp.ua>
2272         * man2hlp.c (handle_link): Treat link name after \& as regular
2273         text.
2274         Suggested by David Martin <dmartina@excite.com>
2276 2002-10-23  Andrew V. Samoilov  <sav@bcs.zp.ua>
2278         * poptconfig.c (configLine): Cast the argument to functions for
2279         character classification to unsigned or use unsigned char *.
2280         (poptReadConfigFile): Likewise.
2281         * popthelp.c (singleOptionHelp): Likewise.
2282         * poptparse.c (poptParseArgvString): Likewise.
2284         * main.c (show_change_notice): Make local variable in main().
2285         (compatibility_move_mc_files): Merge with
2286         do_compatibility_move() and return 1 if moving was done, 0
2287         otherwise.  Move ~/.mc.tree to ~/.mc/Tree.
2289         * file.c (copy_file_file): Reuse message from move_file_file().
2290         (copy_dir_dir): Eliminate one more goto.
2292 2002-10-22  Pavel Roskin  <proski@gnu.org>
2294         * man2hlp.c (main): Remove unnecessary spaces in the table of
2295         contents.
2297         * setup.c: Remove dead code surrounded by
2298         SAVE_CHANGES_OUTSIDE_OPTIONS_MENU.
2299         * tree.c: Make tree_navigation_flag static.
2301         * help.h: Remove unused characters.
2302         * help.c (show): Remove handling of unused characters.
2304 2002-10-22  Andrew V. Samoilov  <sav@bcs.zp.ua>
2306         * popthelp.c (poptPrintHelp): Use POPT_ for "[OPTION...]",
2307         this message is eliminated by poptSetOtherOptionHelp().
2308         * popt.c (poptStrerror): Use _ instead of POPT_ for useful
2309         messages.
2311         * utilunix.c (mc_tmpdir): Make directory only if not exists.
2312         Use strncpy() instead of g_snprintf() - there can be printf()
2313         pattern(s) in the $TMPDIR.
2315         * man2hlp.c (handle_link): Don't strip leading space(s) from
2316         linkname.
2318 2002-10-22  Pavel Roskin  <proski@gnu.org>
2320         * myslang.h: Add a replacement for addch(), which expects a
2321         wchar_t argument in patched S-Lang on Red Hat 8.0.
2323 2002-10-21  Pavel Roskin  <proski@gnu.org>
2325         * main.c (print_mc_usage): Remove unnecessary newline.
2327         * main.c (print_mc_usage): Partly revert previous patch -
2328         poptPrintHelp() has side effects and should not be called
2329         inside fprintf(), which can be a macro.
2331         * main.c (print_mc_usage): Use poptSetOtherOptionHelp()
2332         From Andrew V. Samoilov <sav@bcs.zp.ua>
2334         * learn.c (learn_check_key): Simplify logic.  Add a comment for
2335         translators.
2337         * file.h: Rename know_not_what_am_i_doing to safe_delete.
2338         * file.c (real_query_recursive): Don't ask to enter "yes" - it's
2339         ugly and requires changing input method in some locales.
2341         * file.c (real_query_recursive): Default to empty string, not to
2342         "no" when asking to enter "yes".  Add note for translators.
2344         * cmd.c (do_view_cmd): When asking confirmation, correctly
2345         interpret closing the dialog by escape.
2347 2002-10-20  Pavel Roskin  <proski@gnu.org>
2349         * utilunix.c (mc_tmpdir): Don't exit if the temporary directory
2350         cannot be created - it should be possible to run mc on read-only
2351         filesystems.  Try to chmod() the temporary directory.
2353 2002-10-17  Andrew V. Samoilov  <sav@bcs.zp.ua>
2355         * man2hlp.c (handle_tp_ip): Implement .IP and .TP macros
2356         (without arguments).
2357         (handle_command): Call handle_tp_ip().
2358         (main): Handle label and body of .TP paragraph.
2360 2002-10-17  Pavel Roskin  <proski@gnu.org>
2362         * view.c (view_ok_to_quit): Use the same dialog as the editor.
2364 2002-10-15  Andrew V. Samoilov  <sav@bcs.zp.ua>
2366         * Makefile.am (man2hlp_LDADD): Set to $(GLIB_LIBS).
2367         * man2hlp.c: Include <glib.h> and use g_snprintf()/g_vsnprintf()
2368         instead of sprintf()/vsprintf().
2370         * man2hlp.c: Report about stale links.
2372 2002-10-13  Pavel Roskin  <proski@gnu.org>
2374         * color.h: Remove Q_SELECTED_COLOR and Q_UNSELECTED_COLOR.
2375         Rename BEST_COLOR to IF_COLOR.  Make error messages bold on b/w
2376         terminals.  Don't highlight stale links on b/w terminals, since
2377         they cannot be distinguished from marked files.
2379         * main.c (print_color_usage): Update list of keywords for file
2380         types.  Add a notice for translators.
2382         * color.c: Rename stalledlink to stalelink.  Make the same
2383         change elsewhere.
2385 2002-10-09  Andrew V. Samoilov  <sav@bcs.zp.ua>
2387         * popt.h: Adjust poptHelpOptions[] and poptPrintHelp()
2388         declarations.
2390         * popthelp.c: Replace POPT_ with _ for visible strings.
2391         (singleOptionHelp): Eliminate format array.
2392         (poptHelpOptions): Make const.
2393         (poptPrintHelp): Return width of left column.
2395         * main.c (print_mc_usage): Use width from poptPrintHelp()
2396         for "+number".
2398 2002-10-07  Andrew V. Samoilov  <sav@bcs.zp.ua>
2400         * boxes.c (sel_charset_button): Use g_snprintf() instead of
2401         sprintf().
2402         * charsets.c (init_translation_table): Likewise.
2404 2002-10-07  Pavel Roskin  <proski@gnu.org>
2406         * view.c: Move call to view_update_bytes_per_line() from
2407         view_init(), where the number of columns is unknown yet, to
2408         view_callback() where it's already known.
2409         (view_adjust_size): Make static.
2411 2002-10-07  Miven Dooligan  <dooligan@intergate.ca>
2413         * view.c (view_update_bytes_per_line): Don't use vertical bars
2414         in the hex viewer is short of space.  Fix missing space between
2415         addresses and hexdump when framed.
2416         (display): Likewise.
2418 2002-10-07  Pavel Roskin  <proski@gnu.org>
2420         * selcodepage.c (select_charset): Use g_snprintf() instead
2421         of non-portable snprintf().
2423         * myslang.h [!HAVE_SYSTEM_SLANG]: Update location of slang.h.
2425 2002-09-29  Pavel Roskin  <proski@gnu.org>
2427         * ext.c (get_file_type_local): Return -1 for fatal errors.
2428         (get_file_type_pipe): Likewise.
2429         (regex_command): Likewise.  Adjust all callers.
2430         From Jindrich Makovicka <makovick@KMLinux.fjfi.cvut.cz>
2432         * dlg.c (frontend_run_dlg): Allow terminating the dialog from
2433         the idle handler.
2434         From Jindrich Makovicka <makovick@KMLinux.fjfi.cvut.cz>
2435         Call change_screen_size() regardless of ncurses version, and let
2436         that function decide what to do.
2438 2002-09-28  Pavel Roskin  <proski@gnu.org>
2440         * background.c (background_attention): Fix calling functions
2441         with wrong arguments, which resulted in segmentation faults.
2443 2002-09-27  Pavel Roskin  <proski@gnu.org>
2445         * file.c (panel_operate): Replace fancy internationalized
2446         message boxes for unknown file operations with abort().
2448         * util.c (name_trunc): Remove unused code, unhelpful error
2449         message and workaround for bugs in the callers.
2451         * file.c (copy_file_file): Rename DST_* names to DEST_*, since
2452         DST_NONE is used in FreeBSD libc.
2453         Reported by Pavel Shirshov <me@pavelsh.pp.ru>
2455 2002-09-26  Pavel Roskin  <proski@gnu.org>
2457         * textconf.c: Don't translate filesystem names.
2459         * main.h: Remove all references to icons.
2460         * panel.h: Likewise.  Adjust all dependencies.
2462         * hotlist.c (load_hotlist): Remove compatibility code with
2463         hotlist files created by ancient versions of mc.
2465         * command.c (do_cd_command): Reuse translated message.
2467         * user.c (check_patterns): Ignore invalid shell_patterns and
2468         let user see them in the menu.  The error message was too vague.
2470 2002-09-26  Andrew V. Samoilov  <sav@bcs.zp.ua>
2472         * util.c (mc_mkstemps): Really return NULL in the filename in the
2473         case of failure.  Reported by Andrew W. Nosenko <awn@bcs.zp.ua>.
2475 2002-09-26  Pavel Roskin  <proski@gnu.org>
2477         * ext.c (get_file_type_local): Make static.
2478         (get_file_type_pipe): Likewise.
2479         * util.c (check_patterns): Likewise.
2481         * file.c (copy_file_file): Eliminate the complex scheme with
2482         "resources".  Set src_desc, dest_desc to -1 initially and use
2483         their values to see if they need to be closed.  Track status of
2484         the destination file using a 3-state variable.
2486         * file.c (copy_file_file): Fix event handling - check the result
2487         of file_progress_show_bytes().
2488         From Jindrich Makovicka <makovick@kmlinux.fjfi.cvut.cz>
2490 2002-09-25  Pavel Roskin  <proski@gnu.org>
2492         * subshell.c (pty_open_master) [IS_AIX]: Open /dev/ptc, not
2493         /dev/ptmx.  From Sergey Pavlukhin <psi@dmng.ru>
2495 2002-09-24  Pavel Roskin  <proski@gnu.org>
2497         * screen.c (string_file_nuid): Fix a warning with uClibc.
2498         (string_file_ngid): Likewise.
2500         * mountlist.c: Restore sys/param.h before sys/mount.h - it's
2501         required on FreeBSD.
2502         Reported by Pavel Shirshov <me@pavelsh.pp.ru>
2504         * screen.c (panel_event): Implement support for mouse wheel.
2506         * view.c (display): Fix wrapping of tabs.
2507         Reported by Arpad Biro <biro_arpad@yahoo.com>
2509 2002-09-23  Pavel Roskin  <proski@gnu.org>
2511         * dlg.h: New message DLG_RESIZE.
2512         * layout.c: Call DLG_RESIZE instead of resizing viewer and
2513         editor individually.
2514         * view.c (view): Install handler for DLG_RESIZE.  Make view_dlg
2515         a local variable.
2517         * view.c (view): Set view_dlg to NULL after it's destroyed.
2519         * color.h: Remove EDITOR_UNDERLINED_COLOR, it's unused.
2521         * global.h: Move fcntl.h inclusion here.  Define O_BINARY.
2522         * mountlist.c: Remove more includes already handled in global.h.
2524 2002-09-22  Pavel Roskin  <proski@gnu.org>
2526         * man2hlp.c (handle_alt_font): Implement .BR, .IR, .RB, .RI, .BI
2527         and .IB macros.
2528         (handle_command): Call handle_alt_font().
2530         * man2hlp.c: Take text width from help.h, not from the command
2531         line.
2532         * help.h: Declare HELP_TEXT_WIDTH.
2533         * help.c: Use HELP_TEXT_WIDTH.
2535         * help.h: Replace CHAR_BOLD_ON, CHAR_BOLD_OFF and CHAR_ITALIC_ON
2536         with  CHAR_FONT_BOLD, CHAR_FONT_NORMAL and CHAR_FONT_ITALIC
2537         respectively for better consistency.
2539         * util.c (is_printable): Disable "Full 8 bits output" on xterm,
2540         fall back to "ISO 8859-1" due to problems with gnome-terminal,
2541         which identifies itself as xterm.
2542         Reported by Miven Dooligan <dooligan@intergate.ca>
2544         * mouse.h: Put return codes from the mouse callback to an enum.
2545         Remove MOU_ENDLOOP and MOU_LOCK - they are interpreted like
2546         MOU_NORMAL.  Adjust all dependencies.
2547         * dlg.c: Use MOU_NORMAL instead of 0 for mouse_status.
2549 2002-09-21  Pavel Roskin  <proski@gnu.org>
2551         * main.c (process_args): Print only data directory and nothing
2552         else for the "-f" argument.
2553         (argument_table): Rename --libdir to --datadir, adjust its
2554         description.
2556         * Makefile.am: Rename LIBDIR to DATADIR, since it refers to
2557         pkgdatadir now.  Install cons.saver to pkglibdir, pass it to the
2558         compiler as LIBDIR.
2559         * cons.handler.c (handle_console): Use LIBDIR.
2560         * main.c (OS_Setup): Use DATADIR instead of LIBDIR.  Rename
2561         MC_LIBDIR to MC_DATADIR.
2563         * panelize.c: Remove unused variable panelize_title.
2565         * view.c (view_event): Add mouse wheel support.
2567 2002-09-20  Pavel Roskin  <proski@gnu.org>
2569         * mouse.h: Define events for the mouse wheel.
2570         * key.c (xmouse_get_event): Recognize mouse wheel events.
2572         * command.c: (command_insert): New function - insert quoted
2573         text into the command line.
2574         * main.c: Use command_insert() instead of stuff().  This ensures
2575         that the names in the command line are quoted.
2576         Reported by Arpad Biro <biro_arpad@yahoo.com>
2578         * command.c: Make `command' a standard WInput widget, just
2579         change its callback.  Eliminate input_w().  Adjust all
2580         dependencies.
2581         * widget.c (input_callback): Remove static attribute.
2583 2002-09-19  Pavel Roskin  <proski@gnu.org>
2585         * main.c (argument_table): Improve help for "+number" - it has
2586         to be re-translated anyway.
2588         * main.c (argument_table): Add missing descriptions.
2590         * main.c [NATIVE_WIN32]: Remove -S option, it's useless.
2592         * main.c (print_mc_usage): Use poptPrintHelp() instead of
2593         manually formatted help text.  Adjust callers to pass popt
2594         context.
2596         * poptint.h: Use i18n.h instead of most own replacement macros.
2598 2002-09-18  Pavel Roskin  <proski@gnu.org>
2600         * cmd.c (other_symlink_cmd): Remove, this function is
2601         undocumented and poorly implemented.
2602         * main.c: Remove call to other_symlink_cmd() on C-x C-l.
2604 2002-09-16  Pavel Roskin  <proski@gnu.org>
2606         * wtools.c (real_input_dialog_help): Trim spaces from the label
2607         text.  Align label with the input field.
2609         * cmd.c (do_link): Avoid using g_strconcat() on translatable
2610         strings.
2611         (other_symlink_cmd): Likewise.
2613 2002-09-13  Pavel Roskin  <proski@gnu.org>
2615         * main.c: Remove advanced_chfns variable.  Adjust all
2616         dependencies.
2618         * option.c: Make "Configure options" dialog more flexible,
2619         readjust layout.  Remove "advanced chown" option - it's unused.
2621 2002-09-13  Andrew V. Samoilov  <sav@bcs.zp.ua>
2623         * main.c (process_args) [WITH_SMBFS]: Call smbfs_set_debugf()
2624         for "-l" option.
2626 2002-09-13  Pavel Roskin  <proski@gnu.org>
2628         * main.c: Fully remove obsolete "-m" option.
2630 2002-09-11  Andrew V. Samoilov  <sav@bcs.zp.ua>
2632         * main.c [WITH_SMBFS]: Include ../vfs/smbfs.h.
2633         (argument_table) [WITH_SMBFS]: Add -D, --debuglevel option for
2634         smbfs debug level.
2635         (process_args) [WITH_SMBFS]: Handle new -D option.
2636         (print_mc_usage) [WITH_SMBFS]: Describe -D, --debuglevel option.
2638 2002-09-11  Pavel Roskin  <proski@gnu.org>
2640         * subshell.c: Move tcsh_fifo to the file scope.  Use mc_tmpdir()
2641         to calculate tcsh_fifo.
2643         * utilunix.c (mc_tmpdir): New function that returns temporary
2644         directory for mc.
2645         * util.c (mc_mkstemps): Use mc_tmpdir().
2646         * main.c (main): Call mc_tmpdir().
2648 2002-09-10  Pavel Roskin  <proski@gnu.org>
2650         * util.c (trim): Handle short strings even better - don't use
2651         dots unless necessary.
2653         * main.c (load_prompt): Don't shorten the prompt if COLS is 8 or
2654         less.
2656         * screen.c (show_dir): Don't call trim() with negative length.
2657         * util.c (trim): Better handle short length.  Make sure that the
2658         destination is always 0-terminated.
2660 2002-09-09  Andrew V. Samoilov  <sav@bcs.zp.ua>
2662         * screen.c (string_file_name): Fix possible off-by-one
2663         buffer overflow.
2664         (string_file_size): Avoid unsafe strcpy().
2665         (string_file_size_brief): Likewise.  Eliminate buffer array.
2667 2002-09-08  Pavel Roskin  <proski@gnu.org>
2669         * color.c: Move hascolors variable into init_colors().  Adjust
2670         all dependencies.
2672         * myslang.h: Remove definition of initscr(), it's unused.
2674         * tty.h [!HAVE_SLANG]: Remove all slang_* definitions.
2675         * main.c (main) [!HAVE_SLANG]: Don't call slang_shutdown().
2676         * myslang.h: Remove slang_done_screen(), it's unused.
2678 2002-09-08  Oskar Liljeblad  <oskar@osk.mine.nu>
2680         * key.c (get_event): Check gpm_fd only if gpm is actually used.
2681         * layout.c (done_screen): Move disable_mouse() call ...
2682         * main.c (done_mc): ... here.
2684 2002-09-08  Pavel Roskin  <proski@gnu.org>
2686         * view.c (init_growing_view): Avoid reporting the same error
2687         twice.  Reported by Moritz Barsnick <moritz@barsnick.net>
2689 2002-09-07  Pavel Roskin  <proski@gnu.org>
2691         * textconf.c: Don't use SLANG_TERMINFO, which is unused anywhere
2692         else.  Assume that terminfo is used if USE_TERMCAP is undefined.
2694 2002-09-06  Pavel Roskin  <proski@gnu.org>
2696         * subshell.c (subshell_name_quote): Return NULL if we are out of
2697         memory.  Use "echo -e" with zsh (Debian bug #150996).
2698         (do_subshell_chdir): Be prepared to get NULL from
2699         subshell_name_quote().
2701         * profile.c: Remove unused code.  Eliminate global variables.
2702         (is_loaded): Rename to find_loaded().  return matching profile.
2703         Adjust all dependencies.
2705         * fs.h: Only redefine S_IS* macros if they are undefined, and
2706         then define them to 0.  S_IF* constants should be avoided.
2707         * util.c: Whenever possible, use standard POSIX macros to test
2708         for the file type.
2709         Reported by Andrew V. Samoilov <sav@bcs.zp.ua>
2711 2002-09-05  Pavel Roskin  <proski@gnu.org>
2713         * cmd.c (nice_cd): Fix conditions when this function is
2714         compiled.
2716         * fs.h: Replace S_IFFIFO with S_IFIFO, which is the right name.
2718         * fs.h: Correct S_IS* definitions to use S_IFMT.  Add fallback
2719         definitions for S_IFDOOR and S_ISDOOR.
2720         * screen.c (string_file_type): Remove unnecessary ifdefs, fs.h
2721         takes care of it.
2722         (file_compute_color): Add support for Solaris doors.
2723         * util.c (string_perm): Remove unnecessary ifdef.
2725         * man2hlp.c (handle_command): Make clear that unsupported
2726         command is a warning, not an error.  Avoid unsafe strcat().
2728         * view.c (view_mode_callback): Eliminate, use the default
2729         callback.
2731         * main.c (load_hint): Don't hardcode copyright years.  Use a
2732         translated message.
2734         * main.c (midnight_callback): Avoid calling the default DLG_DRAW
2735         handler.  From David Martin <dmartina@excite.com>
2737         * help.c (help_handle_key): Sanity check for broken help files.
2738         From David Martin <dmartina@excite.com>
2740 2002-09-03  Pavel Roskin  <proski@gnu.org>
2742         * global.h: Eliminate xgetch, update all dependencies.
2744         * boxes.c: Fix remaining old-style calls to create_dlg().
2745         * complete.c: Likewise.
2746         * main.c: Likewise.
2747         * view.c: Likewise.
2749         * wtools.c: Remove Chooser, its unused.
2751         * dlg.c: Fix the case when the dialog has no title.
2753         * wtools.c (real_input_dialog_help): Use a more reliable way
2754         to indicate password input.
2756         * boxes.c (display_widgets) [!HAVE_CHARSET]: Fix initialization.
2757         (vfs_smb_get_authinfo): Reuse another translated string.
2759         * wtools.h (QuickDialog): Eliminate the "class" field - it's not
2760         used and it can clash with C++ code.  Adjust all dependencies.
2762         * dlg.c (x_set_dialog_title): Completely eliminate.  Adjust all
2763         dependencies.
2765         * help.c (interactive_display): Fallback to node "[main]" if the
2766         requested node cannot be found.
2768         * help.c (help_index_cmd): Eliminate unneeded search for
2769         "[Help]", which always fails.  Fix crash if "[Contents]" cannot
2770         be found.  Reuse more generic error message.
2772         * filegui.c: Eliminate x_set_dialog_title().
2773         * hotlist.c: Likewise.
2774         * help.c: Likewise.
2775         (interactive_display): Default to node "[main]" if the given
2776         node is empty.
2778 2002-09-02  Pavel Roskin  <proski@gnu.org>
2780         * dlg.c (create_dlg): Take title instead of unused name as the
2781         8-th argument.
2782         (x_set_dialog_title): Free old title.  Mark this function
2783         obsolete.
2784         * achown.c: Use new create_dlg().
2785         (do_enter_key): Provide titles for popups.
2787         * dlg.c: Remove unused code, make functions static if possible.
2789         * chmod.c: Use common_dialog_repaint().
2790         * chown.c: Likewise.
2791         * layout.c: Likewise.
2792         * option.c: Likewise.
2794         * wtools.c (common_dialog_callback): Fold into ...
2795         * dlg.c (default_dlg_callback): ... this.  Don't redraw dialogs
2796         that don't have colors.  Adjust all dependencies.
2797         (std_callback): Eliminate.
2799         * panelize.c (panelize_refresh): Eliminate in favor of
2800         common_dialog_callback().
2802         * widget.c (history_callback): Eliminate in favor of
2803         common_dialog_callback().
2804         (show_hist): Set dialog title and flag DLG_COMPACT.
2806         * help.c (help_callback): Use common_dialog_callback().
2807         (interactive_display): Set dialog title.
2809         * wtools.c (listbox_callback): Eliminate in favor of
2810         common_dialog_callback().
2812         * wtools.c (dialog_repaint): Eliminate, nobody should be using
2813         non-standard colors.  Adjust all dependencies.
2814         (common_dialog_repaint): Fix return code.
2815         (query_callback): Eliminate, use common_dialog_callback()
2816         instead.
2818         * listmode.c (listmode_refresh): Use common_dialog_repaint().
2819         Eliminate all global variables.  Reformat the whole file.
2821         * boxes.c (init_disp_bits_box): Use common_dialog_callback().
2822         Return the new dialog.
2824         * boxes.c (display_callback): Use common_dialog_repaint().
2825         (display_init): Avoid using two different translations.
2827 2002-09-01  Pavel Roskin  <proski@gnu.org>
2829         * help.c (interactive_display): Don't reuse the old value of
2830         help_lines - LINES could have changed.  Scale height better for
2831         terminals with many lines - use 2/3 of the full screen.
2833         * man2hlp.c: Move handling of .SH and NODE to a separate
2834         function handle_node().  Don't output empty nodes except in the
2835         table of contents.
2837 2002-09-01  Andrew V. Samoilov  <sav@bcs.zp.ua>
2839         * man2hlp.c (print_error): Print input filename.
2840         (handle_command): Handle .P, .LP, .IP and .br.
2841         Ignore comments and .TH (Title header).
2842         Report about unsupported commands.
2843         Handle .SM and .SB.
2845         * ext.c (regex_command): Use "%s" as text argument.
2846         * user.c (debug_out): Likewise.
2848         * win.c (key_name_conv_tab): Fix initialization.
2850 2002-08-31  Pavel Roskin  <proski@gnu.org>
2852         * help.c (show): Fix segfault on unterminated help files.
2853         From David Martin <dmartina@excite.com>
2855         * key.c (get_event): Reduce scope of select_set.  Don't check
2856         mouse_enabled all the time, instead break out of the loop if it
2857         becomes 0.
2859         * main.c (do_nc): Make midnight_colors[] local to do_nc().
2860         Initialize normal color - it's used by the tree.
2861         * boxes.c (tree_box): Use standard dialog_colors.
2862         * tree.c: Use NORMALC for normal entries.
2864         * view.c (view): Avoid passing an uninitialized color array to
2865         create_dlg() - pass NULL instead.
2867 2002-08-30  Pavel Roskin  <proski@gnu.org>
2869         * color.c: Define global array alarm_colors for the colors used
2870         in the dialogs that should be most visible (error messages,
2871         request to delete or overwrite).
2872         (load_dialog_colors): Initialize alarm_colors.
2873         * filegui.c: Use alarm_colors.
2874         * wtools.c: Likewise.
2875         * dlg.c (create_dlg): Make the color_set array constant.
2877         * wtools.c (common_dialog_repaint): Use colors specific to the
2878         current dialog, not fixed colors for "normal" dialogs.
2879         * filegui.c (replace_callback): Eliminate, use
2880         common_dialog_callback() instead.
2882         * filegui.c (file_op_context_create_ui): Use
2883         common_dialog_callback().  Set title to the operation name.
2884         (op_win_callback): Remove, it's unused.
2886 2002-08-27  Pavel Roskin  <proski@gnu.org>
2888         * view.c: Make static whatever possible.
2889         * view.h: Remove internal view routines.
2891 2002-08-27  Andrew V. Samoilov  <sav@bcs.zp.ua>
2893         * selcodepage.c (select_charset): Use snprintf instead of sprintf.
2894         (do_select_codepage) [!HAVE_ICONV]: Remove.
2896 2002-08-27  Pavel Roskin  <proski@gnu.org>
2898         * charsets.c: Add disclaimer of warranty.
2899         * filenot.c: Likewise.
2900         * fileopctx.c: Likewise.
2901         * mfmt.c: Likewise.
2902         * selcodepage.c: Likewise.
2903         * text.c: Likewise.
2904         * textconf.c: Likewise.
2906         * man2hlp.c (main): Factor error checks in fopen() and fclose(),
2907         eliminate reuse of variables for different purposes, add more
2908         comments.  Correctly process "\&" escape.
2909         The last part is from David Martin <dmartina@excite.com>
2911 2002-08-26  Pavel Roskin  <proski@gnu.org>
2913         * main.c (init_xterm_support): Force xterm-style screen saving
2914         and no mouse on "cygwin" terminal.
2916 2002-08-25  Pavel Roskin  <proski@gnu.org>
2918         * man2hlp.c: Change default from the English string for TOPICS,
2919         to no heading.
2921         * man2hlp.c (handle_command): Remove quotes from TOPIC.
2923         * key.c (get_event): Check gpm_fd before using it in FD_SET.  If
2924         gpm_fd is -1 (gpm has died), disable mouse support.
2926         * key.c: Use the maximal file descriptor, not FD_SETSIZE in all
2927         calls to select().
2928         * subshell.c: Likewise.
2929         From Pavel Tsekov <ptsekov@gmx.net>
2931 2002-08-24  Pavel Roskin  <proski@gnu.org>
2933         * user.c (expand_format): Remove support for error file in the
2934         editor.
2935         * utilunix.c (close_error_pipe): Fix the condition when nothing
2936         needs to be displayed.
2938         * dlg.c (x_set_dialog_title): Force uniform spacing.
2939         From Andrew Borodin <borodin@zarya-k.ru>
2941         * utilunix.c (check_error_pipe): Check error_pipe[0], not
2942         stdout.  From Pavel Tsekov <ptsekov@gmx.net>
2944         * achown.c (chown_refresh): Use common_dialog_repaint().
2946         * dlg.h (struct Dlg_head): Separate user flags and internal
2947         flags.  Make "direction" a user flag.  Adjust all dependencies.
2948         * dlg.c (run_dlg): Return ret_value.
2950 2002-08-23  Pavel Roskin  <proski@gnu.org>
2952         * text.c (default_edition_colors): Use more rxvt-friendly color
2953         for dhotnormal.
2955         * Makefile.am: Remove definition of CONFDIR, it's not used.
2957 2002-08-22  Pavel Roskin  <proski@gnu.org>
2959         * layout.c (print_vfs_message): Set normal color, don't use
2960         random current attributes.
2962         * dlg.h (struct Dlg_head): Eliminate "data" field, it duplicated
2963         functionality of "title".
2964         * wtools.c (query_callback): Use dialog_repaint().
2965         (quick_callback): Use common_dialog_repaint().
2967         * learn.c (learn_callback): Use common_dialog_repaint().
2968         * achown.c (chl_callback): Likewise.
2970         * dialog.h: Cleanup unused functions.
2971         * dialog.c: Cleanup unused headers.
2973         * dlg.h (struct Dlg_head): Fold fields "raw" and "has_menubar"
2974         into one field "flags".  Adjust all dependencies.  Add new flag
2975         DLG_COMPACT.
2976         * wtools.c (dialog_repaint): Draw frame without spaces if
2977         DLG_COMPACT flag is set.
2978         * complete.c (complete_engine): Set DLG_COMPACT.
2979         (query_callback): Use common_dialog_repaint().
2981         * keys.h: Remove, include ...
2982         * myslang.h: ... here.
2983         * Makefile.am: Remove keys.h.
2985         * dlg.h: Remove unused fields in struct Dlg_head.
2986         * dlg.c: Adjust for the above.
2988 2002-08-21  Pavel Roskin  <proski@gnu.org>
2990         * dlg.h: Remove unused fields in struct Widget.
2991         * dlg.c: Adjust for the above.
2992         * layout.c: Likewise.
2994         * cmd.c (info_cmd_no_menu): Toggle info screen.
2995         (quick_cmd_no_menu): Toggle quick view.
2997         * help.c (interactive_display): Always show button bar.
2999         * widget.c (buttonbar_callback): Fix a bug that prevented the
3000         last byte from being redrawn.
3001         Reported by David Martin <dmartina@excite.com>
3003         * layout.c (setup_panels): Make the button bar 0 lines high if
3004         it's invisible, so that mouse click on the history button works
3005         with invisible button bar.
3007         * widget.c: Make more functions static.
3009         * ext.c: (regex_check_type): Further split.  Restore caching
3010         broken in the previous commit.
3012         * ext.c (regex_command): Separate checking for "type/" into ...
3013         (regex_check_type): ... this.
3015         * global.h: Move include for rx.h and eregex.h here.
3017         * learn.c (learn_button): Don't allow Tab to be learned.
3019 2002-08-20  David Martin  <dmartina@excite.com>
3021         * menu.c (create_menu): Get help node as an argument.
3022         * main.c: Use new create_menu() interface.
3024 2002-08-20  Pavel Roskin  <proski@gnu.org>
3026         * man2hlp.c: Don't redirect stdout.  Check result of ftell.
3027         Drop support for invocation with 2 arguments.
3029 2002-08-19  Pavel Roskin  <proski@gnu.org>
3031         * cons.handler.c (handle_console): Use _exit(), not exit() in
3032         the child.
3034         * main.c (handle_args): Set POPT_CONTEXT_NO_EXEC flag for
3035         poptGetContext().
3036         * popt.c: Call abort() in execCommand() - we should not execute
3037         anything here.
3039         * util.h: Remove unused and dangerous flags for my_system():
3040         EXECUTE_TEMPFILE, EXECUTE_SETUID and EXECUTE_WAIT.
3041         * utilunix.c: Corresponding adjustments.
3042         * ext.c: Don't use EXECUTE_TEMPFILE, it has no effect.
3044         * subshell.c (synchronize): Workaround for Cygwin (should not be
3045         needed for the next version) - remove SIGCHLD blocking from
3046         old_mask.
3048         * dlg.h: Remove all unused flags for create_dlg().  Adjust all
3049         dependencies.
3051         * cmd.c (fishlink_cmd): Implement user interface for FiSH.
3052         * main.c: Add it to the menu.
3054         * help.c (help_follow_link): Made static.
3056 2002-08-18  Pavel Roskin  <proski@gnu.org>
3058         * subshell.c (synchronize): Discard all remaining data from
3059         stdin to the subshell.
3061         * subshell.c (exit_subshell) [AIX_TCSH_CODE_BELOW_IS_IT_FIXED]:
3062         Remove.  Nobody has fixed this code for years.
3064         * main.h [USE_INTERNAL_EDIT]: Don't include declarations from
3065         edit.h.
3066         * setup.c [USE_INTERNAL_EDIT]: Include edit.h.
3068         * boxes.h: Remove user_format.
3069         * boxes.c: Make more variables static, remove all extern
3070         declarations.
3071         * setup.c: Remove some extern declarations.
3073         * mountlist.h: Move some internals ...
3074         * mountlist.c: ... here.
3076         * main.c: Remove extremely unsafe and poorly designed support
3077         for /tmp/mc.$PID.control file.
3078         * util.c (my_putenv): Remove, it's unused now.
3080         * panel.h (struct format_e): Make string_fn return const char *.
3081         Adjust all dependencies.
3082         * screen.c (string_file_mtime): Return empty string for "..".
3083         (string_file_atime): Likewise.
3084         (string_file_ctime): Likewise.
3086         * view.c (display): Use enum for boldflag values.  Fix cursor
3087         highlighting for the ASCII part of the hex editor.
3089         * layout.c (init_curses) [!HAVE_SLANG]: Add support for
3090         stickchars - fill acs_map[] with ASCII approximations.
3091         * main.c [!HAVE_SLANG]: Enable --stickchars (-a) for ncurses.
3093 2002-08-16  Pavel Roskin  <proski@gnu.org>
3095         * setup.c: New variable global_profile_name to hold full name of
3096         mc.lib.
3097         (load_setup): Calculate global_profile_name.
3098         (done_setup): Free global_profile_name.
3099         (load_key_defs): Use global_profile_name.
3100         * treestore.c (should_skip_directory): Likewise.
3102         * man2hlp.c: Implement persistent fread and fwrite to make sure
3103         that all output is read and written.
3105 2002-08-16  Andrew V. Samoilov  <sav@bcs.zp.ua>
3107         * help.c (show): Cast *paint_start to unsigned char to display
3108         Cyrillic with ncurses.
3109         [HAS_ACS_AS_PCCHARS] (acs2pc_table): Make const.
3111         * user.c (expand_format): Cast the argument to functions
3112         for character classification to unsigned int.
3113         (execute_menu_command): Likewise.
3115 2002-08-15  Pavel Roskin  <proski@gnu.org>
3117         * treestore.c (tree_store_remove_entry): Don't use ts.check_name
3118         and don't check it.
3120         * treestore.c: Remove unused code, reformat.
3121         * treestore.h: Remove unused declarations.
3123         * fs.h (compute_namelen): New inline function to take care of
3124         the d_namlen field if and only if it's needed.
3126         * screen.c (string_file_name): Replace non-printable characters
3127         with question marks.
3129         * subshell.c (read_subshell_prompt): Remove argument "how", it's
3130         never set to VISIBLY.  Adjust all dependencies.  Eliminate hack
3131         with "clear_now" - it causes invalid memory access and hides the
3132         real problem.
3133         * util.c (strip_ctrl_codes): Fix possible invalid memory access
3134         if the escape sequence ends unexpectedly.
3136 2002-08-14  Pavel Roskin  <proski@gnu.org>
3138         * dir.c (do_load_dir): Fix leaking of file descriptors - always
3139         call mc_closedir() before return.
3141         * main.c (do_execute) [!HAVE_SUBSHELL_SUPPORT]: Compile fix.
3143         * view.c (display): Use only declared color pairs to fix hex
3144         editor appearance with ncurses.  Eliminate some useless defines.
3146 2002-08-10  Pavel Roskin  <proski@gnu.org>
3148         * key.c (delete_select_channel): Avoid using freed memory.
3150 2002-08-09  Pavel Roskin  <proski@gnu.org>
3152         * ext.c (exec_extension): Eliminate unused argument.
3153         (regex_command): Remove support for user actions.  Return int.
3154         Adjust all dependencies.
3156         * ext.c (exec_extension): Make static.  Remove support for Drop,
3157         Title and Icon actions.  Adjust all dependencies.
3159         * main.c (sigchld_handler_no_subshell) [linux]: SIGTSTP is
3160         always defined on Linux.
3161         * subshell.c (sigchld_handler): No need to use SIGTSTP
3162         explicitly when we really care about SIGCONT.
3164         * ncurses.patch: Remove, it's obsolete.
3165         * Makefile.am: Remove ncurses.patch.
3167 2002-08-04  Pavel Roskin  <proski@gnu.org>
3169         * subshell.c: Assume that SIGTSTP and SIGCONT are always
3170         defined.  This is now checked in configure.  Otherwise
3171         synchronize() would hang until subshell exits.
3173 2002-08-01  Pavel Roskin  <proski@gnu.org>
3175         * charsets.c: Unconditionally enable finalization code that was
3176         only used with HAVE_MAD.
3177         * color.c: Likewise.
3178         * color.h: Likewise.
3179         * key.c: Likewise.
3180         * main.c: Likewise.
3181         * slint.c: Likewise.
3182         * subshell.c (exit_subshell): Free subshell_prompt.
3184         * mad.c: Remove.
3185         * mad.h: Likewise.
3186         * Makefile.am (SRCS): Remove mad.c and mad.h.
3187         * cmd.c: Remove references to MAD.
3188         * main.c: Likewise.
3189         * dlg.c: Use inline, not INLINE.
3190         * hotlist.c: Likewise.
3191         * menu.c: Likewise.
3192         * global.h: Don't include mad.h.
3194 2002-07-31  Andrew V. Samoilov  <kai@cmail.ru>
3196         * man2hlp.c (main): Don't use freed structure member.
3198         * ext.c (regex_command): Don't check same condition twice.
3199         (exec_extension): Comment out useless loop.
3200         * key.h (key_code_name_t): Typedef const.
3202 2002-07-30  Pavel Roskin  <proski@gnu.org>
3204         * man2hlp.c (main): Use only stream I/O.  Fix checks for error
3205         conditions.  Reformat the whole file.
3207         * man2hlp.c: Avoid the need to use gindex.pl.
3208         From Andrew V. Samoilov <sav@bcs.zp.ua>
3209         * Makefile.am: Use man2hlp directly.
3210         (EXTRA_DIST): Remove gindex.pl.
3211         * gindex.pl: Remove.
3213         * ext.c (regex_command): Additional check to prevent reading
3214         unallocated memory when matching "shell/".  Found by Valgrind.
3216 2002-07-29  Pavel Roskin  <proski@gnu.org>
3218         * setup.c: Eliminate all PORT* macros.
3219         * screen.c: Likewise.
3221         * subshell.c (feed_subshell): Reading 0 bytes in a channel with
3222         FD_ISSET being set is a sign of something being wrong - exit
3223         immediately.  Observed when mc is run under su in xterm and
3224         xterm is closed while the subshell is running.
3225         Reported by Vlad Harchev <hvv@hippo.ru>
3227         * color.h: Replace PORT_COLOR macro with BEST_COLOR, which uses
3228         MY_COLOR_PAIR.
3230         * util.c: Remove unused functions.
3231         * utilunix.c: Likewise.
3232         * util.h: Update to match.
3234         * cons.saver.c: Use SEEK_SET instead of 0 in lseek().
3235         * view.c: Likewise.
3237         * main.c (do_execute): Add newline after "Press any key to
3238         continue".
3240         * cons.saver.c: Eliminate some global variables.  Further
3241         cleanup.  Make sure that console_fd is always closed.
3243 2002-07-28  Pavel Roskin  <proski@gnu.org>
3245         * cons.saver.c: Remove support for Linux kernels before 2.0.
3246         Massive cleanup.
3247         (send_contents): Remove incorrect optimization - restore even
3248         empty lines because they may be touched by the viewer.
3249         From Denis Vlasenko <vda_unique@iname.com>
3251 2002-07-26  Pavel Roskin  <proski@gnu.org>
3253         * utilunix.c (canonicalize_pathname): Don't extend empty path
3254         to "." - it can corrupt memory.
3256         * cmd.c (copymove_cmd_with_default): Remove, it's unused.
3257         (copy_cmd_local): New function, copy within panel.
3258         (ren_cmd_local): New function, rename within panel.
3259         * cmd.h: Adjust to match.
3260         * screen.c (panel_keymap): Associate F15 with copy_cmd_local and
3261         F16 with ren_cmd_local.
3263         * view.c (display): Don't highlight characters as bold if the
3264         character before the backspace was different.
3265         From Roland Illig <roland.illig@gmx.de>
3267 2002-07-25  Andrew V. Samoilov  <kai@cmail.ru>
3269         * wtools.c (message): Fix possible buffer overflow.
3271         * slint.c [HAVE_MAD] (dealloc_color_pairs): Move ...
3272         * color.c [HAVE_MAD]: ... here and make accessible from
3273         other files to fix compilation.
3274         * color.h [HAVE_MAD]: Declare dealloc_color_pairs.
3276 2002-07-20  Pavel Roskin  <proski@gnu.org>
3278         * screen.c (panel_callback): Revert last change, it has bad side
3279         effects on the subshell.
3281 2002-07-19  Pavel Roskin  <proski@gnu.org>
3283         * dlg.c: Eliminate all useless x_* functions.
3284         * dlg.h: Likewise.
3285         * panel.h: Likewise.
3286         * textconf.h: Likewise.
3287         * view.c: Likewise.
3288         * view.h: Likewise.
3289         * widget.c: Likewise.
3290         * main.c: Remove panel_update_marks(). Move try_to_select() ...
3291         * screen.c: ... here.  Eliminate x_* functions.
3292         * main.h: Remove panel_update_marks().
3294         * screen.c (panel_callback): Only change directory on
3295         WIDGET_FOCUS if current_panel changes.
3297         * main.c (handle_args): Don't call mc_get_current_wd().
3299         * main.c (directory_history_list): Report error if cannot change
3300         directory.
3302 2002-07-16  Pavel Roskin  <proski@gnu.org>
3304         * main.c (do_execute): Don't ask to press any key when the shell
3305         is running a command - the user has already pressed Ctrl-O.
3307 2002-07-15  Pavel Roskin  <proski@gnu.org>
3309         * slint.c: Eliminate hardcoded color terminals.  Most users no
3310         longer need this hack, and those who do have color_terminals
3311         option in the config file.
3313 2002-07-14  Pavel Roskin  <proski@gnu.org>
3315         * color.c [USE_NCURSES]: Eliminate division by COLOR, it's 0 in
3316         black and white mode.
3318         * slint.c: Move functions for allocating color pairs ...
3319         * color.c: ... here.  Implement ncurses equivalents.  Rename
3320         init_pair() to mc_init_pair() and keep tack of max_index with
3321         ncurses.  Adjust all dependencies.
3323         * mem.h: Clean up obsolete definitions, incorporate into ...
3324         * global.h: ... this.
3325         * Makefile.am: Remove mem.h.
3327 2002-07-13  Pavel Roskin  <proski@gnu.org>
3329         * Makefile.am (AM_CPPFLAGS): Remove REGEX_MALLOC, it's now in
3330         configure.in.
3332         * tty.h: Use standard autoconf defines to determine which
3333         ncurses header to include.  Eliminate RENAMED_NCURSES.
3335 2002-07-10  Pavel Roskin  <proski@gnu.org>
3337         * utilunix.c: Cast argument for GUINT_TO_POINTER to int to fix
3338         warnings on Cygwin.
3340         * subshell.c: ioctl() doesn't set errno - don't use perror() to
3341         report failures.  Use fprintf() instead, ignore errors from
3342         TIOCSWINSZ.
3343         (resize_tty): New function - code common for resize_subshell()
3344         and init_subshell_child().
3346         * global.h: Include vfs.h.
3347         * boxes.c (configure_vfs): Ask whether .netrc should be used.
3348         From Thomas Zajic <zlatko@gmx.at>
3350 2002-07-03  Pavel Roskin  <proski@gnu.org>
3352         * file.c (do_transform_source): Cast the argument to functions
3353         for character classification to unsigned int.
3354         * main.c (handle_args): Likewise.
3355         * util.c (size_trunc_sep): Likewise.
3356         (skip_numbers): Likewise.
3358         * subshell.c (sigchld_handler): Remove subshell_pty from the
3359         channel list if the subshell has died.
3361 2002-07-03  Andrew V. Samoilov  <kai@cmail.ru>
3363         * mad.[ch] [__GNUC__] (mad_strconcat): Use macro varargs.
3364         (mad_strdup_printf): Likewise.
3365         (mad_strdup_vprintf): Likewise.
3366         * main.c [HAVE_MAD] (main): Release this_dir and other_dir.
3368 2002-07-03  Pavel Roskin  <proski@gnu.org>
3370         * main.c (stop_dialogs): New function to stop all dialogs.
3371         (quit_cmd_internal): Use stop_dialogs() instead of stopping
3372         midnight_dlg only.  This fixes exit from the shell invoked from
3373         the internal viewer or editor.
3375         * cmd.c (view_other_cmd): Shut down extra select channels before
3376         switching to the shell.  Restore them afterwards, but not if
3377         quit was requested.  Skip more code on quit.
3379 2002-07-02  Pavel Roskin  <proski@gnu.org>
3381         * util.c: Eliminate get_small_endian_long() and CHECK macro.
3383         * util.h: Rename compression types, add a type for uncompressed
3384         files.
3385         * util.c (is_gunzipable): Rename to ...
3386         (get_compression_type): this.  Don't check archive length, since
3387         it's unreliable if there is padding at the end of the file.
3388         Eliminate prehistoric Linux workaround.  All callers adjusted.
3390 2002-07-01  Andrew V. Samoilov  <kai@cmail.ru>
3392         * utilunix.c (close_error_pipe): Use "%s" in message () to
3393         prevent possible crash.
3394         (check_error_pipe): Likewise.
3396 2002-06-27  Pavel Roskin  <proski@gnu.org>
3398         * screen.c (do_enter_on_file_entry): Process associations before
3399         trying to execute the file.
3401 2002-06-20  Pavel Roskin  <proski@gnu.org>
3403         * dir.c (handle_dirent): Don't process ".." entries.
3404         (handle_path): Likewise.
3405         From Andrew V. Samoilov <kai@cmail.ru>
3407 2002-06-13  Oskar Liljeblad  <oskar@osk.mine.nu>
3409         * slint.c (has_colors): Don't reset SLtt_Use_Ansi_Colors to 0 if
3410         force_colors is not set.  This fixes color on unknown terminals.
3412 2002-06-13  Andrew V. Samoilov  <kai@cmail.ru>
3414         * user.c (expand_format): Fix '%b' processing.
3415         Handle '%k' as documented.
3417 2002-05-30  Andrew V. Samoilov  <kai@cmail.ru>
3419         * view.c (regexp_search): Don't call save_edit_changes
3420         if there are no changes.
3421         (save_edit_changes): Use messages from ../po/mc.pot.
3423         * mad.c (mad_tempnam): Commented out to make linker happy.
3424         * main.c [HAVE_MAD && !_OS_NT] (main): G_free mc_home.
3426 2002-05-27  Andrew V. Samoilov  <kai@cmail.ru>
3428         * view.c (save_edit_changes): Handle errors.
3429         (do_view_init): Don't open and check file type
3430         if _command is not null or _file is empty string.
3432 2002-05-22  Pavel Roskin  <proski@gnu.org>
3434         * Makefile.am: doc/mc.1 is in top_builddir, not in top_srcdir.
3436 2002-05-15  Andrew V. Samoilov  <kai@cmail.ru>
3438         * view.c (do_view_init): Close fd if it is unused.
3440 2002-05-14  Andrew V. Samoilov  <kai@cmail.ru>
3442         * Makefile.am (VFSLIB): Add ../vfs/samba/libsamba.a
3443         if USE_SAMBA_FS is true.
3445 2002-05-07  Pavel Roskin  <proski@gnu.org>
3447         * hotlist.c (hotlist_button_callback): Don't process B_REMOVE
3448         for VFS list - it would crash.
3449         From Andrey Panov <pav@metib.ru>
3451 2002-04-19  Andrew V. Samoilov  <kai@cmail.ru>
3453         * main.c [!WITH_MCFS] (PanelMenu): Eliminate mcfs related entry.
3454         (RightMenu): Likewise.
3455         * textconf.c (features): Likewise.
3456         * cmd.c (netlink_cmd) [!WITH_MCFS]: Eliminate.
3458 2002-04-03  Pavel Roskin  <proski@gnu.org>
3460         * Makefile: mc.hlp should be in MAINTAINERCLEANFILES, not in
3461         CLEANFILES, because "make clean" should not make the source
3462         directory useless on systems without Perl.
3464 2002-03-26  Andrew V. Samoilov  <kai@cmail.ru>
3466         * eregex.h [!USE_INCLUDED_REGEX]: Include <regex.h>.
3467         * regex.c: Compile only if USE_INCLUDED_REGEX is defined.
3469 2002-03-25  Andrew V. Samoilov  <kai@cmail.ru>
3471         * complete.c (insert_text): Fix buffer overflow.
3473         * cmd.[ch] [USE_INTERNAL_EDIT] (edit_syntax_cmd:) New dialog
3474         to edit Syntax Highlighting definitions file.
3475         * main.c (CmdMenu) [USE_INTERNAL_EDIT]: Add 'Syntax file edit'
3476         entry.
3477         (process_args): Print mc's library directory to stdout.
3479 2002-03-21  Andrew V. Samoilov  <kai@cmail.ru>
3481         * man2hlp.c (handle_command): Handle backslash quoting
3482         for .I and .B
3483         (handle_link): Strip .B and .I
3484         * gindex.pl: Use fifth argument as man2hlp location.
3486 2002-03-20  Andrew V. Samoilov  <kai@cmail.ru>
3488         * man2hlp.c (handle_command): Handle '.\"TOPICS' comment.
3489         Use it for translated 'Topics:' message.
3490         * gindex.pl: Use first line of man2hlp output as
3491         translated 'Topics:' message if fourth argument
3492         is empty string.
3493         * Makefile.am (mc.hlp.ru): Use empty string as gindex.pl's
3494         fourth argument.
3496         * textconf.c (version): Write to stdout.
3497         * main.c (print_mc_usage): Add "stream" parameter to specify
3498         file stream.
3499         (process_args): Use print_mc_usage() with stdout as stream.
3500         (handle_args): Use print_mc_usage() with stderr as stream.
3501         (print_color_usage): Write to stdout.
3503 2002-03-18  Pavel Roskin  <proski@gnu.org>
3505         * eregex.h: Update from glibc-2.2.5.
3506         * regex.c: Likewise.
3507         * find.c: Use eregex.h, not regex.h.
3508         * util.c: Likewise.
3509         * view.c: Likewise.
3510         From Alexander Varakin <avarakin00@hotmail.com>
3512         * find.c (find_parameters): Invert condition when find is case
3513         sensitive.
3515 2002-03-04  Andrew V. Samoilov  <kai@cmail.ru>
3517         * Makefile.am (mc.hlp.ru): Use mc.1 instead of mc.1.in.
3518         (mc.hlp): Likewise.
3520         * file.c (copy_file_file): Chmod destination only if
3521         ctx->preserve is on.  Eliminate gotos.
3523 2002-03-01  Andrew V. Samoilov  <kai@cmail.ru>
3525         * Makefile.am (mc.hlp.ru): New rule to compile translated
3526         help file.
3527         (mclib_DATA): Add mc.hlp.ru.
3528         (EXTRA_DIST): Likewise.
3530         * gindex.pl: Add optional 4th argument for translated
3531         Content section name.
3533 2002-02-28  Andrew V. Samoilov  <kai@cmail.ru>
3535         * mad.c: Make mem_areas dynamically growing.
3536         (mad_init): Allocate memory for mem_areas.
3537         (mad_alloc): Grow mem_areas if it is exhausted.
3539         * filegui.c (file_mask_dialog): Enable 'follow Links'
3540         and 'preserve Attributes' features in Move dialog.
3541         (file_bps_show): Translate messages.
3542         (file_eta_show): Likewise.
3544         * man2hlp.c (main): Don't crash if called without argument(s).
3545         Make buffer char pointer.
3546         (handle_command): Handle '.\"NODE' comment.  Use it for
3547         nodename in translated manual pages.
3549         * gindex.pl: Use [nodename] as user visible section name
3550         only if next line is empty.  Elsewhere use this nonempty line.
3552         * find.c (find_parameters): Compile content_pattern here.
3553         Inform user about malformed regular expression.
3554         (search_content): Use compiled regular expression.
3555         (do_find): Eliminate `done'.  Call regfree for compiled
3556         content_pattern.
3558 2002-02-24  Pavel Roskin  <proski@gnu.org>
3560         * chown.c (chown_cmd): Use size_trunc_len() to show the file
3561         size.  Eliminate c_fsize, which wasn't properly initialized.
3563 2002-02-22  Pavel Roskin  <proski@gnu.org>
3565         * man2hlp.c (string_len): Don't exclude characters with codes
3566         above 128 from the string length.
3568 2002-02-21  Andrew V. Samoilov  <kai@cmail.ru>
3570         * ext.c (exec_extension): Use "#! /bin/sh".
3572 2002-02-20  Pavel Roskin  <proski@gnu.org>
3574         * background.c (background_attention): Cast pointer to long
3575         instead of int because it's unsafe of 64-bit systems.
3576         * main.c (init_xterm_support): Likewise.
3578 2002-02-18  Pavel Roskin  <proski@gnu.org>
3580         * utilunix.c (canonicalize_pathname) [__QNX__]: Fix detection
3581         of Qnet names.  Disable support of Qnet names under QNX Neutrino.
3582         Reported by Maurizio Rossi <MRossi@system-group.it>
3584         * global.h: Include unix.h under "classical" QNX.
3585         * subshell.c: Don't include unix.h.
3586         * utilunix.c: Likewise.
3588 2002-02-07  Andrew V. Samoilov  <kai@cmail.ru>
3590         * main.c (update_one_panel_widget): Call ftpfs_flushdir().
3592 2002-02-05  Pavel Roskin  <proski@gnu.org>
3594         * key.c [USE_NCURSES] (get_key_code): Ignore KEY_RESIZE.
3595         * layout.c [USE_NCURSES] (flag_winch): Don't call
3596         low_level_change_screen_size() from signal handler.
3597         From Thomas Dickey <dickey@herndon4.his.com>
3599         * screen.c (format_file): Add a new parameter (size of the
3600         output buffer) to prevent buffer overflow on very wide
3601         terminals.
3602         From Thomas Dickey <dickey@herndon4.his.com>
3604 2002-02-04  Andrew V. Samoilov  <kai@cmail.ru>
3606         * util.c [!HAVE_TRUNCATE] (truncate): Close fd if my_ftruncate
3607         fails.
3609         * util.c [HAVE_CHARSET] (is_printable): Eliminate printable.
3610         * setup.c [HAVE_CHARSET] (load_setup): Don't use
3611         init_printable_table.
3613         * charsets.h: Don't declare init_printable_table ().
3614         * charset.c (printable): Removed.
3615         (init_printable_table): Removed.
3617 2002-01-30  Andrew V. Samoilov  <kai@cmail.ru>
3619         * file.c (recursive_erase): Use mc_closedir() if mc_lstat()
3620         fails.  Eliminate goto.
3621         (erase_dir): Eliminate goto.
3622         (erase_dir_iff_empty): Likewise.
3624 2002-01-29  Andrew V. Samoilov  <kai@cmail.ru>
3626         * dir.c (handle_dirent): Use MSG_ERROR.
3627         * charsets.c (translate_character): Use ICONV_CONST.
3629 2002-01-22  Pavel Roskin  <proski@gnu.org>
3631         * screen.c: Don't try to paint anything if width is 0 or less.
3632         Reported by Pawel Sakowski <pawel@sakowski.eu.org>
3634         * screen.c: Make functions static whenever possible.  Remove
3635         unused functions.
3636         * panel.h: Remove corresponding declarations.
3638 2002-01-21  Pavel Roskin  <proski@gnu.org>
3640         * util.c: Move replacements for permission bits ...
3641         * fs.h: ... here.  Add more replacements.
3642         * global.h: Include direct.h only with MSVC.
3644         * main.c: Include "drive.h", not <drive.h>, do it after panel.h.
3645         Use _OS_NT as the condition for including drive.h.
3646         * screen.c: Use _OS_NT as the condition for including drive.h.
3648         * global.h [_OS_NT]: Include io.h, direct.h and windows.h.
3649         Don't redefine struct timeval.
3651         * fs.h [_MSC_VER]: Use dirent provided by glib.
3653         * global.h [!HAVE_SYS_TIME_H]: Provide a replacement for struct
3654         timeval.
3656         * findme.c: Respect HAVE_UNISTD_H.
3657         * popt.c: Likewise.
3659         * global.h: Fallback to sys/utime.h if utime.h is missing.
3661         * global.h: Provide fallbacks for getuid(), getgid(), geteuid()
3662         and getegid().
3663         * fs.h: Fully trust HAVE_DIRENT_H.
3664         * complete.c: Don't include dirent.h directly, fs.h takes care
3665         of it.
3666         * file.c: Likewise.
3667         * filegui.c: Likewise.
3668         * main.c: Likewise.
3669         * treestore.c: Likewise.
3671         * global.h [!__GNUC__]: Define __attribute__ with one argument.
3673 2002-01-20  Pavel Roskin  <proski@gnu.org>
3675         * screen.c (string_file_size): Translate "UP--DIR".
3676         (string_file_size_brief): Translate "SUB-DIR" and "SYMLINK".
3678         * dir.c (add_dotdot_to_list): Don't use costly stat() - just put
3679         realistic (i.e. bogus) data to the list.
3681         * screen.c (string_file_size): Don't display size of ".." - it
3682         may take too much time to calculate it on VFS.  Show "UP--DIR"
3683         instead.
3684         (string_file_size_brief): Remove ".." handling - it's now done
3685         in string_file_size().  Show "SUB-DIR" for links to directories,
3686         "SYMLINK" for other links.
3688 2002-01-17  Pavel Roskin  <proski@gnu.org>
3690         * cmd.c: Remove OS/2 specific code.
3691         * file.c: Likewise.
3692         * main.c: Likewise.
3694         * main.h: Remove dead declarations.
3695         * setup.c: Remove defunct extension alignment support.
3696         * util.c: Likewise.
3697         * util.h: Likewise.
3699         * main.c: Remove unused toggle_* functions.
3701         * dir.c: Show backups by default.
3703 2002-01-15  Andrew V. Samoilov  <kai@cmail.ru>
3705         * file.c (copy_dir_dir): Check the destination is a directory
3706         if it exists. Reported by Thomas <metaf4@pseudonym.org>.
3708 2002-01-09  Andrew V. Samoilov  <kai@cmail.ru>
3710         * util.c (string_perm) [S_IFDOOR]: Support Solaris doors.
3711         * screen.c (string_file_type) [S_IFDOOR]: Likewise.
3713 2001-12-21  Pavel Roskin  <proski@gnu.org>
3715         * hotlist.c (hotlist_callback): Recognize "delete" key.
3717         * myslang.h [!HAVE_SYSTEM_SLANG]: Include slang/slang-mc.h to
3718         simplify includes.
3719         [HAVE_SYSTEM_SLANG]: Use angle brackets for slang.h.
3721         * myslang.h [!HAVE_SYSTEM_SLANG]: Include slang-mc.h directly
3722         to avoid relying on symlinks.
3724 2001-12-18  Pavel Roskin  <proski@gnu.org>
3726         * utilunix.c (init_groups): Don't return prematurely if the
3727         primary group cannot be found (it can happen on Cygwin).
3729 2001-12-10  Pavel Roskin  <proski@gnu.org>
3731         * dir.c (do_reload_dir): Hash-table added.
3732         From Björn Eriksson <mdeans@algonet.se>
3734 2001-12-03  Pavel Roskin  <proski@gnu.org>
3736         * dir.c (do_reload_dir): Optimize the logic - count the marks
3737         and only match new entries against old entries if at least one
3738         mark has not been transferred.
3739         From Björn Eriksson <mdeans@algonet.se>
3741 2001-11-29  Pavel Roskin  <proski@gnu.org>
3743         * main.c (midnight_callback): Implement "auto menus".
3745         * layout.c: Make more variables static.
3747         * cons.saver.c: Define LINUX_CONS_SAVER_C so that some parts
3748         of cons.saver.h can be omitted.
3749         * cons.saver.h: Declare nothing but constants if
3750         LINUX_CONS_SAVER_C is defined.
3752 2001-11-14  Pavel Roskin  <proski@gnu.org>
3754         Fully eliminate all references to HAVE_X and HAVE_GNOME.
3756         * dir.c (do_sort): Correctly handle the case when there is no
3757         ".." entry (i.e. panelized mode).
3759 2001-11-14  Andrew V. Samoilov  <kai@cmail.ru>
3761         * view.c (do_view_init): Make sure _file is not
3762         an empty string before mc_stat and mc_open.
3763         Memory leak fixed.
3765 2001-11-14  Pavel Roskin  <proski@gnu.org>
3767         * panelize.c (do_external_panelize): Re-sort the panel according
3768         to the current settings.
3770         * find.c (do_find): Re-sort the panel according to the current
3771         settings when doing panelizing.
3773         * dir.c (sort_type_to_name): Remove, it's unused in the text
3774         edition.
3775         (sort_name_to_type): Likewise.
3776         * dir.h: Adjust to match.
3778         * mouse.c: Add default cases to fix warnings with gcc-2.96.
3780 2001-11-12  Pavel Roskin  <proski@gnu.org>
3782         * main.c: Remove support for subshell debugging.  Firstly, it
3783         was broken.  Secondly, every developer should be able to add
3784         this code when needed.  Finally, there is no need to expose the
3785         option to the user and translate it into 30 languages.
3786         * subshell.h: Remove debug_subshell.
3787         * subshell.c: Likewise.
3789 2001-11-12  Andrew V. Samoilov  <kai@cmail.ru>
3791         * mad.h: Enable glib support.
3793         * mad.[ch] (mad_get_current_dir): New function to use instead
3794         of g_get_current_dir.
3795         (mad_tempnam): Add file and line parameters.
3796         (mad_alloc0): Make file parameter const.
3797         (mad_realloc): Likewise.
3798         (mad_strdup): Likewise.
3799         (mad_strndup): Likewise.
3800         (mad_free): Likewise.
3801         (mad_finalize): Likewise.
3803 2001-11-07  Andrew V. Samoilov  <kai@cmail.ru>
3805         * cmd.c (guess_message_value): Make val static const array.
3806         (smblink_cmd) [!WITH_SMBFS]: Eliminated.
3808         * dlg.c (add_widget): Check for what is not NULL
3809         before everything else.
3811         * slint.c (slang_reset_softkeys): Make display static const
3812         array.  Use sizeof (display) - 1 instead of strlen display.
3813         (color_terminals): Make static const array.
3814         (key_table): Make const.
3816         (dealloc_color_pairs) [HAVE_MAD]: New function.  Release
3817         memory allocated in try_alloc_color_pair.
3818         (slang_shutdown) [HAVE_MAD]: Call dealloc_color_pairs.
3819         (try_alloc_color_pair): Move struct c outside function.
3821 2001-10-29  Andrew V. Samoilov  <kai@cmail.ru>
3823         * charsets.c (load_codepages_list): Use glib memory allocation
3824         functions.
3825         (free_codepages_list) [HAVE_MAD]: New function to release
3826         memory allocated in load_codepages_list.
3827         * charsets.h: Declare free_codepages_list.
3829         * main.c [HAVE_CHARSET]: Include charsets.h.
3830         (main) [HAVE_MAD && HAVE_CHARSET]: Call free_codepages_list.
3831         (program_name): Commented out.
3833 2001-10-26  Andrew V. Samoilov  <kai@cmail.ru>
3835         * key.c (push_char): Fix buffer length calculation.
3836         By David Kaelbling <drk@sgi.com>.
3837         http://bugzilla.gnome.org/show_bug.cgi?id=60932
3839         (define_sequence): Likewise.
3840         (key_define_t): Add const declaration.
3842 2001-10-22  Pavel Roskin  <proski@gnu.org>
3844         * main.h: Declare view_one_file and edit_one_file.
3846 2001-10-22  Andrew V. Samoilov  <kai@cmail.ru>
3848         * dialog.h: Include global.h.
3849         (message): Specify __attribute__.
3851 2001-10-20  Pavel Roskin  <proski@gnu.org>
3853         * main.h (print_vfs_message): Specify __attribute__.
3855 2001-10-19  Pavel Roskin  <proski@gnu.org>
3857         * global.h: Define __attribute__ to an empty string for non-gcc
3858         compilers so that it's safe to use.
3860 2001-10-18  Pavel Roskin  <proski@gnu.org>
3862         * view.c (init_growing_view): Revert last change, it was wrong.
3863         (view_hook): Don't check that the file is regular - it's now
3864         done in do_view_init().  This fixes update problem in quick view
3865         when moving cursor from a regular file to a directory.
3867         * view.c (do_view_init): Only accept regular files.  Use stat(),
3868         not fstat() because open() would hang on pipes.  Avoid opening
3869         the file twice.
3870         (init_growing_view): Take file descriptor, not the filename.
3871         (load_view_file): Likewise.
3873 2001-10-01  Pavel Roskin  <proski@gnu.org>
3875         * boxes.c (tree): Rename to tree_box() to avoid confusion.
3876         Adjust all callers and headers.
3877         * main.c (tree_box): Rename to tree_box_cmd().
3879         * tree.c (set_navig_label): Get argument "tree".
3880         (set_navig_label): Likewise.  Adjust all callers.  Don't cast
3881         function tree() to (Widget *) - it's wrong and dangerous.
3883         * widget.h: Use type "buttonbarfn" more consistently.
3884         * widget.c: Likewise.
3886         * setup.c [!USE_VFS]: Warning fix.
3887         * hotlist.c [!USE_VFS]: Likewise.
3889         * tree.c (tree_navigation_flag): Should not be static.
3891         * screen.c (panel_format_modified): Use more portable cast.
3893         * fileopctx.h: Define new type mc_stat_fn.
3894         * filegui.c (file_mask_dialog): Cast mc_stat and mc_lstat to
3895         mc_stat_fn to prevent warnings without VFS support.
3896         * fileopctx.c (file_op_context_new): Likewise.
3898 2001-09-23  Andrew V. Samoilov  <kai@cmail.ru>
3900         * find.c: Include rx.h or regex.h
3901         (get_line_at): New function.  Returns malloc()ed null-terminated
3902         line from file file_fd.  Input is buffered in buf_size long
3903         buffer.
3904         (search_content): Don't use external egrep.
3905         Use get_line_at and regexp.
3907 2001-09-21  Pavel Roskin  <proski@gnu.org>
3909         * cmd.c: Change all "long" variables to "off_t" whenever they
3910         are used to store file sizes.
3911         * file.c: Likewise.
3912         * file.h: Likewise.
3913         * fileopctx.h: Likewise.
3914         * tree.c: Likewise.
3915         * filegui.c: Likewise.
3916         (show_bar): Take "double" arguments.  Normalize arguments of
3917         gauge_set_value() before converting them to "int".
3919 2001-09-17  Pavel Roskin  <proski@gnu.org>
3921         * mouse.h: Major cleanup and interface change.  init_mouse()
3922         should only be called once, disable_mouse() and enable_mouse()
3923         should be used later.  Distinguish between disabled and
3924         undetected mouse.  Remove debugging stuff.  Adjust all users.
3925         * mouse.c: Implementation of the above.
3926         * key.c: Don't use gpm_flag - check mouse_enabled instead.
3928 2001-09-15  Pavel Roskin  <proski@gnu.org>
3930         * view.c: Cleanup of preprocessor directives.
3931         * view.h: Likewise.
3932         * widget.c: Likewise.
3933         * widget.h: Likewise.
3935         * textconf.h: Get rid of all PORT_HAS_*.  Adjust all users.
3936         Continued eliminating GNOME code.
3938         * cmd.c: Clean up unused GNOME code and some ifdef's.
3939         * dlg.c: Likewise.
3940         * dlg.h: Likewise.
3941         * ext.c: Likewise.
3942         * setup.c: Likewise.
3944         * cmd.c (guess_message_value): Remove the argument.  Adjust all
3945         callers.
3947         * textconf.c (features): Remove "edition", minor fixes.
3948         (version): Don't report the current locale - it's meaningless,
3949         especially if ENABLE_NLS is not defined.
3951         * textconf.h: Remove status_using_ncurses - it's useless now.
3952         Adjust all users.  Call do_exit_ca_mode() and do_enter_ca_mode()
3953         even with ncurses.
3955         * main.c (init_xterm_support): Don't enable xterm_flag just
3956         because of "kmous" in terminfo.  Setting this flag means much
3957         more than just mouse support.  Recognize terminals beginning
3958         with "rxvt" and set xterm_flag for them.
3960         * cmd.c (view_other_cmd): Don't check use_mouse_p before calling
3961         init_mouse() and shut_mouse(), since those functions decide
3962         themselves what to do.
3963         * layout.c (done_screen): Likewise.
3964         * main.c (setup_mc): Likewise.
3965         * text.c (edition_post_exec): Likewise.
3966         (edition_pre_exec): Likewise.
3968         * user.h: Fix location of the home editor menu.
3969         Reported by David Martin <dmartina@excite.es>
3971         * mouse.h: Export xmouse_seq.
3972         * mouse.c (init_mouse): Use xmouse_seq instead of hardcoded
3973         xterm mouse sequence.
3974         * main.c (setup_post): Join with setup_mc().
3975         (init_xterm_support): New function.  Check mouse capability.
3976         (OS_Setup): Remove parts that are now in init_xterm_support().
3978 2001-09-14  Pavel Roskin  <proski@gnu.org>
3980         * key.c (get_event): Recognize KEY_MOUSE, not just MCKEY_MOUSE.
3981         * mouse.c: Don't use or emulate keyok(), since MC understands
3982         KEY_MOUSE now.
3984 2001-09-11  Pavel Roskin  <proski@gnu.org>
3986         * cmd.c (check_for_default): Make accessible from other files.
3987         * cmd.h: Declare check_for_default().
3989 2001-09-10  Pavel Roskin  <proski@gnu.org>
3991         * layout.c: Use HAVE_TERMIOS_H and HAVE_SYS_IOCTL_H more
3992         consistently.
3993         * mouse.c: Likewise.
3994         * subshell.c: Likewise.
3995         * win.c: Likewise.
3996         * util.c: Remove unused includes.
3998         * Makefile.am (mc_LDADD): Don't use LSLANG and LGPM, since they
3999         are now included into MCLIBS.
4001         * Makefile.am (mc_LDADD): Use INTLLIBS provided by gettext
4002         instead of LINTL.
4004 2001-09-09  Pavel Roskin  <proski@gnu.org>
4006         * hotlist.c (load_hotlist): If cannot open hotlist, don't assume
4007         that it needs to be migrated and don't warn the user.
4009 2001-09-08  Pavel Roskin  <proski@gnu.org>
4011         * Makefile.am: Fix definitions of CONFDIR and LOCALEDIR.
4013         * subshell.c: Move definitions of WEXITSTATUS and WIFEXITED
4014         below all includes so that they can be defined elsewhere.
4016 2001-09-07  Pavel Roskin  <proski@gnu.org>
4018         * myslang.h: Specify arguments to function-like macros or remove
4019         them if they are unused.
4021         * main.c: Remove old debugging code.  Remove external function
4022         declarations.
4023         (menu_bar_event): Remove, it's unused.
4024         * main.h: Declare get_mc_lib_dir() and force_ugly_line_drawing.
4025         * layout.c: Remove all external declarations.
4027         * main.c (main): Call save_stop_handler() - it was ifdef'd out
4028         by error.
4030         * main.c: Remove all GNOME code.
4032         * cmd.c: No need to define "MIDNIGHT" before including vfs.h.
4034         * user.h: Remove all dirty tricks with "MIDNIGHT" - they are not
4035         needed anymore.
4037         * global.h: Include io.h, pwd.h, grp.h and utime.h.  Adjust all
4038         sources not to include them and to include global.h at the right
4039         place.
4041         * global.h: Include all time-related system includes, since
4042         it's non-trivial (order, conflicts) and is better handled in one
4043         place.
4045 2001-09-06  Pavel Roskin  <proski@gnu.org>
4047         * fsusage.c: Include sys/param.h before sys/mount.h - it's
4048         required on some systems.
4049         * mountlist.c: Likewise.
4050         From Timur Bakeyev <mc@bat.ru>
4052 2001-09-04  Pavel Roskin  <proski@gnu.org>
4054         * Makefile.am: Don't use substituted values directly.  Define
4055         CHARSET_SRC unconditionally.  Join SRCS and HDRS.
4057 2001-09-03  Pavel Roskin  <proski@gnu.org>
4059         * widget.c (label_new): Don't calculate dimensions of multiline
4060         labels, since they cannot be changed and msglen() is already
4061         used when the dialog is created.
4063         * Makefile.in: Converted to ...
4064         * Makefile.am: ... this.
4066         * slint.c: Make more data and function static.
4067         * key.h: Remove declarations that are now static.
4068         * myslang.h: Likewise.
4070         * x.h: Remove.  Adjust all users.  Make sure that global.h is
4071         included instead.  Don't include sys/param.h unconditionally -
4072         rely on global.h taking care of it.
4073         * Makefile.in: Remove x.h.
4075         * color.c: Remove unused code.
4076         * color.h: Likewise.
4078 2001-09-02  Pavel Roskin  <proski@gnu.org>
4080         * key.c: Remove support for BUGGY_CURSES.
4082         * tty.h: Remove support for old curses and GNOME.
4083         * global.h: Likewise.
4085         * widget.c (label_new): Set initial width of the widget based on
4086         the initial text.
4088         * view.c (hex_search): Don't use sscanf() to search for quoted
4089         strings - use strchr instead.
4091 2001-08-31  23:14:21  Timur Bakeyev  <mc@bat.ru>
4093         * utilunix.c: init_groups(), destroy_groups(), get_user_permissions()
4094         rewritten to use GTree structure and functions. Add new static helper
4095         functions mc_gid_compare() and mc_gid_destroy().
4097         * util.h: Removed deprecated structure user_in_groups.
4099         * screen.c: Fixed typo in format report error string.
4101 2001-08-31  23:14:21  Timur Bakeyev  <mc@bat.ru>
4103         * utilunix.c: get_user_rights() renamed into get_user_permissions().
4104         delete_groups() renamed into destroy_groups().
4105         * util.h: Likewise.
4106         * screen.c: Likewise.
4107         * main.c: Likewise.
4109 2001-08-27  Pavel Roskin  <proski@gnu.org>
4111         * cmd.c (dirsizes_cmd): Don't cast st_size to long - use off_t
4112         instead, since off_t can be longer.
4113         Reported by Radovan Bukoci <rado@autoparts.sk>
4115 2001-08-30  David Martin  <dmartina@excite.es>
4117         * info.c (info_show_info): Use size_trunc_len() instead of
4118         print_bytesize().  Don't assume English word ordering.  Add
4119         singular message when single block.
4120         * win.c (print_bytesize): Remove.
4121         (sprint_bytesize): Remove.
4122         * win.h: Remove print_bytesize() and sprint_bytesize().
4124         * util.c (size_trunc_len): Add units parameter.  Change all
4125         callers.
4127         * util.c (size_trunc_len): Print size values with some (little)
4128         sense for tiny and even wee lengths (i.e. squeezed X terminals).
4130         * info.c (info_show_info): Move comment line just before
4131         translatable message so it's shown in .po files to alert
4132         translators.  The message (translated) is used to set the start
4133         column (so the available width) for some "truncatable" strings.
4135 2001-08-27  Pavel Roskin  <proski@gnu.org>
4137         * key.c (learn_key): Turn off keypad to disable interpreting keys
4138         by ncurses.
4139         Reported by Frederic L. W. Meunier <fredlwm@pervalidus.net>
4141 2001-08-26  Pavel Roskin  <proski@gnu.org>
4143         * xcurses.c: Remove.
4144         * Makefile.in: Remove all references to xcurses.c.
4146 2001-08-24  Pavel Roskin  <proski@gnu.org>
4148         * user.h: Include "../edit/edit-widget.h", not
4149         "../gtkedit/edit-widget.h".
4151         * subshell.c: Use standard Autoconf symbols to determine whether
4152         to include <stropts.h> and <grp.h>.
4154 2001-08-23  Pavel Roskin  <proski@gnu.org>
4156         * subshell.c (feed_subshell): Don't wait forever after the first
4157         select() call if fail_on_error is true.  This alleviates hang
4158         with zsh on QNX Neutrino.
4160 2001-08-21  Pavel Roskin  <proski@gnu.org>
4162         * view.h: Declare view_dlg.
4163         * main.h: Declare edit_dlg.
4164         * layout.c (change_screen_size): Remove external declarations
4165         inside the function.
4167 2001-08-20  Pavel Roskin  <proski@gnu.org>
4169         * view.c (load_view_file) [!HAVE_MMAP]: Warning fix.
4171 2001-08-19  Pavel Roskin  <proski@gnu.org>
4173         * main.c (mc_maybe_editor_or_viewer) [!USE_INTERNAL_EDIT]:
4174         Re-enable to make "mc -v" possible.
4175         (do_nc): Call mc_maybe_editor_or_viewer() even if the editor
4176         is not compiled in.
4177         (argument_table) [!USE_INTERNAL_EDIT]: Disable "-e".
4179 2001-08-19  Andrew V. Samoilov  <sav@bcs.zp.ua>
4181         * view.c (view_handle_key) [HAVE_CHARSET]: Remove unneeded
4182         statements.
4184 2001-08-19  Pavel Roskin  <proski@gnu.org>
4186         * screen.c [HAVE_X]: Disable unused code.
4188         * fs.h: Correctly include <sys/param.h>.
4189         * x.h: Include "global.h".  Move all contents ...
4190         * global.h: Here.
4192         * regex.c (regex_compile): Warning fix for ambiguous else.
4194 2001-08-18  Pavel Roskin  <proski@gnu.org>
4196         * key.c (xmouse_get_event): Filter out GPM_UP events that don't
4197         follow a GPM_DOWN event.  Filter out events with unknown button
4198         numbers, such as mouse wheel events.
4199         (get_event): Return EV_NONE if xmouse_get_event() decided to
4200         ignore the event.
4202         * main.c (init_sigchld): Disable subshell if SIGCHLD handler
4203         cannot be installed.
4205         * x.h: Instead of undefining MIX and MAX after <gnome.h> make
4206         sure that <sys/param.h> is included before <gnome.h>.
4208 2001-08-17  Pavel Roskin  <proski@gnu.org>
4210         * key.c (mc_bindings) [linux]: Remove old hack - recognizing
4211         "\e[2~" on all terminals.
4213 2001-08-16  Pavel Roskin  <proski@gnu.org>
4215         * charsets.c (load_codepages_list): Print a warning if
4216         mc.charset cannot be opened.
4217         * setup.c (load_setup) [HAVE_CHARSET]: Remove all popup messages
4218         because it's to early to use them - ncurses would crash.
4220 2001-08-15  Pavel Roskin  <proski@gnu.org>
4222         * util.c (strip_ctrl_codes): Rewrite using pointers.  Fix
4223         stripping sequences beginning with "\e[".  Check is_printable().
4225         * man2hlp.c: Remove HTML support.  Remove old link support.
4226         Warning fixes.
4227         (print_string): Handle backslashes in verbatim mode too.
4229         * main.c (setup_pre) [HAVE_CHARSET]: Fix compilation with
4230         ncurses.
4232         * textconf.c (features): Fix interpretation of
4233         HAVE_SYSTEM_SLANG.
4234         From David Martin <dmartina@excite.es>
4236 2001-08-14  Pavel Roskin  <proski@gnu.org>
4238         * key.h (define_sequence): Change declaration to return int.
4239         * key.c (define_sequence): Return 1 on success, 0 on error.
4240         * learn.c (learn_button): Don't accept sequence if
4241         define_sequence() has failed.
4243 2001-08-12  Pavel Roskin  <proski@gnu.org>
4245         * learn.c (learn_save): Fix memory leak.
4247         * dir.c (string_sortcomp) [HAVE_STRCOLL]: Make static.
4249         * cmd.c (guess_message_value): Typo - replace "LC_MESSAGE" with
4250         "LC_MESSAGES".
4252         * dir.c (string_sortcomp) [HAVE_STRCOLL]: Always use strcmp()
4253         for case sensitive sort.  For case insensitive sort use
4254         strcoll() if it's case insensitive for ASCII and g_strcasecmp()
4255         otherwise.
4257 2001-08-11  Pavel Roskin  <proski@gnu.org>
4259         * achown.c (chown_advanced_cmd): Remove dead code.
4260         * chown.c (chown_cmd): Likewise.
4261         * chmod.c (chmod_cmd): Likewise.
4263         * charsets.c (load_codepages_list): Use concat_dir_and_file().
4265         * mad.h: Disable glib support - it doesn't work properly.
4267 2001-08-07  Pavel Roskin  <proski@gnu.org>
4269         * view.c: Warning fixes. Include "cmd.h". Rename help_cmd()
4270         to view_help_cmd().
4271         (view_handle_key) [HAVE_X]: Disable '!' and Ctrl-O.
4273         * main.c (do_execute): Don't show prompt if the command is empty
4274         and the subshell is not running.
4275         * view.c (view_handle_key): Add support for Ctrl-O in the viewer.
4276         Suggested by Walery Studennikov <despair@sama.ru>
4278 2001-08-06  Pavel Roskin  <proski@gnu.org>
4280         * boxes.c (display_init): Associate correct help topic.
4281         (sort_box): Likewise.
4282         (set_panel_filter): Likewise.
4283         * option.c (init_configure): Likewise.
4284         * menu.c (menubar_handle_key): Show help dependent on the active
4285         menu.
4287 2001-08-06  Andrew V. Samoilov  <kai@cmail.ru>
4289         * mad.c (mad_strdup): Return NULL if NULL is passed.
4291         * view.c (block_search): Return the position where the block was
4292         found as declared in comment.
4293         (hex_search): Don't increase pos, block_search returns now right
4294         position.
4296 2001-08-03  Andrew V. Samoilov  <kai@cmail.ru>
4298         * mad.[ch] (mad_check): Declare file parameter const.
4299         (mad_alloc): Likewise. Don't truncate it.
4300         (mad_abort): Declare message and file parameters const.
4302 2001-08-03  Pavel Roskin  <proski@gnu.org>
4304         * file.c: Warning fix.  Include global.h before other local
4305         includes.
4306         * filegui.c: Likewise.
4307         (fmd_init_i18n) [!ENABLE_NLS]: Completely disable.
4308         * i18n.h [!ENABLE_NLS]: Warning fix.
4309         * learn.c (init_learn): Move do_refresh() call immediately
4310         before create_dlg().  Warning fix.
4312 2001-07-31  Pavel Roskin  <proski@gnu.org>
4314         * Makefile.in: "install" now depends on "all".
4315         Reported by Walery Studennikov <despair@sama.ru>
4317 2001-07-31  Andrew V. Samoilov  <kai@cmail.ru>
4319         * util.c [!HAVE_X] (is_printable): Don't duplicate declarations from
4320         main.h.
4321         (load_file): Use fopen and fstat to prevent race conditions.
4322         (size_trunc): Make suffix const array.
4323         (strip_password): Make prefixes const array.
4324         (file_date): Make fmt auto variable.
4325         * color.c (color_table): Make constant array.
4326         * widget.[ch] (label_new): Make text parameter const.
4327         * menu.c (create_menu): Don't localize name, it is always done.
4328         * find.c (find_parameters): Fix hotkeys duplication.
4329         * complete.c (command_completion_function): Don't stop $PATH
4330         processing on empty entry. Interpret it as current directory.
4332 2001-07-31  Pavel Roskin  <proski@gnu.org>
4334         * charsets.c: Warning fixes.
4335         * charsets.h: Likewise.
4336         * selcodepage.c: Likewise.
4337         * selcodepage.h: Likewise.
4339         * Makefile.in: Move most logic around gindex.pl into gindex.pl.
4340         Don't use maintainer-only rules since mc.hlp won't be removed
4341         now if perl is missing or gindex.pl fails.
4342         * gindex.pl: Run man2hlp internally.  Use files given as
4343         arguments instead of stdin and stdout.
4345 2001-07-30  Pavel Roskin  <proski@gnu.org>
4347         * mad.c: Don't use g_calloc - it's missing in glib 1.2.x.
4348         * mad.h: Likewise.  Use mad_alloc0() to emulate calloc().
4350         * view.h: Simplify, respect WANT_WIDGETS setting.
4352 2001-07-28  Pavel Roskin  <proski@gnu.org>
4354         * view.c (view_ok_to_quit): Make global - it's needed for GMC.
4355         * view.h: Declare view_ok_to_quit().
4357 2001-07-27  Pavel Roskin  <proski@gnu.org>
4359         * util.c [!USE_VFS] (get_current_wd): Resurrect, this time using
4360         g_get_current_dir().
4362         * background.h: Remove WITH_BACKGROUND, it's now in extraconf.h.
4363         * background.c: Use WITH_BACKGROUND instead of USE_NETCODE.
4365         * util.c (mc_mkstemps): Don't prepend $TMPDIR if prefix contains
4366         path separator.
4368 2001-07-26  Pavel Roskin  <proski@gnu.org>
4370         * cmd.c (do_link): Append filename to the default symlink
4371         target.  Don't add path separator if there is no listing on
4372         the other panel.  Avoid using fixed size buffers.
4373         From Max Schedriviy <max@tavrida.net>
4375         * main.c [HAVE_X]: Disable eight_bit_clean and full_eight_bits.
4376         * util.c (is_printable) [HAVE_X]: Simplify.
4378 2001-07-25  Pavel Roskin  <proski@gnu.org>
4380         * cmd.c (do_link): Simplify.  Don't silently exit if the source
4381         file is not regular - let user see the error if any.
4383 2001-07-24  Pavel Roskin  <proski@gnu.org>
4385         * achown.c (ch_perm): Make constant array.
4386         (chown_info_update): Use set_perm_by_flags(), not set_perm().
4387         (set_perm): Remove.
4389         * achown.c: Make all global variables static.  Fix help.
4390         * complete.c: Likewise.
4391         * chmod.c: Make all global variables static.
4392         * chown.c: Likewise.
4393         * chmod.h: Remove all variables.
4395 2001-07-23  Pavel Roskin  <proski@gnu.org>
4397         * user.c: Eliminate static variable s_editwidget.  Pass
4398         edit_widget as argument.  All callers changed.
4399         (expand_format): Fix expansion of %n and %b for the editor.
4400         * util.c: Remove dead code.
4402         * setup.c (load_keys_from_section): Give terminal-specific
4403         settings preference over settings from [terminal:general].
4405 2001-07-22  Pavel Roskin  <proski@gnu.org>
4407         * setup.c (load_keys_from_section): Give ~/.mc/ini preference
4408         over mc.lib.
4410 2001-07-20  Pavel Roskin  <proski@gnu.org>
4412         * dlg.c: Remove dependency on definitions in gconf.h.
4414         * widget.c (input_callback) [HAVE_X]: Disable Ctrl-q - it
4415         doesn't work.
4417         * file.c (panel_get_file): Use g_assert_not_reached().
4418         * key.c (xgetch_second): Make static.
4420 2001-07-19  Pavel Roskin  <proski@gnu.org>
4422         * user.c (check_format_view): Match "unform" instead of
4423         "unformated" because some users may spell this word correctly.
4425 2001-07-17  Pavel Roskin  <proski@gnu.org>
4427         * util.c (get_current_wd): Remove.  It's obsoleted by
4428         g_get_current_dir() from glib.
4430         * ext.c (exec_extension): Add the `rm' command to the end of
4431         temporary scripts so that they erase themselves.
4433         * util.c (mc_mkstemps): Always use "unsigned long" for entropy,
4434         since gcc-2.7.2.1 on SunOS doesn't understand __extension__ and
4435         checking for "long long" is not worth the trouble.
4436         Reported by David Martin <dmartina@excite.es>
4438 2001-07-16  Pavel Roskin  <proski@gnu.org>
4440         * utilunix.c (mc_doublepopen): Use _exit() instead of exit()
4441         and don't close any unrelated file descriptors.  Explicitly
4442         close inhandle.
4444 2001-07-15  Pavel Roskin  <proski@gnu.org>
4446         * mad.h: Include stdio.h to prevent redefining mad_tempnam().
4447         * main.c [HAVE_X && HAVE_MAD]: Don't call done_key().
4449         * dlg.h: Remove declarations of non-existent functions.
4450         [HAVE_X]: Disable color constants - they shouldn't be used.
4452         * boxes.c [WITH_SMBFS] (vfs_smb_get_authinfo): Copied from
4453         vfs/smbfs.c, function authinfo_get_authinfo_from_user().
4455         * cmd.c [HAVE_X]: Disable source routing dialog and panel
4456         comparison.
4457         * main.c (ctl_x_map): Simplify preprocessor directives.
4459 2001-07-14  Pavel Roskin  <proski@gnu.org>
4461         * screen.c (panel_keymap) [HAVE_X]: Disable Alt-H - it's not
4462         implemented properly for GNOME.
4463         * main.c (directory_history_list) [HAVE_X]: Disable.
4465         * panelize.c [HAVE_X]: Disable unused code.
4467         * main.c [HAVE_X]: Disable Ctrl-X sequences.
4469         * find.c: Remove code unused in the text edition.
4471         * main.c [HAVE_X]: Eliminate setup_post() and partly done_mc().
4473         * utilunix.c (uid_cache): Make static.
4474         (gid_cache): Likewise.
4475         (init_uid_gid_cache): Remove.
4476         * main.c (setup_post): Don't call init_uid_gid_cache().
4478         * main.c (default_map) [HAVE_X]: Disable Alt-T.
4479         * cmd.c [HAVE_X]: Eliminate set_basic_panel_listing_to() and
4480         toggle_listing_cmd().
4482 2001-07-13  Pavel Roskin  <proski@gnu.org>
4484         * utilunix.c (canonicalize_pathname): Don't handle PATH_SEP
4485         after backslash in a special way.
4487 2001-07-12  Pavel Roskin  <proski@gnu.org>
4489         * subshell.c (init_subshell): Run "set echo_style=both" at
4490         startup to ensure that echo in tcsh understands octal numbers.
4491         Reported by Francis Kwok <francis.kwok@alcatel.com>
4493         * Makefile.in (OURLIBS): Merge with ...
4494         (LIBS): ... this. Add @LIBICONV@.
4495         Reported by Libor Motyèka <l_motycka@ortex.cz>
4497         * subshell.c (subshell_name_quote): New function. Quote all
4498         characters as octals, use command substitution.
4499         (do_subshell_chdir): Use subshell_name_quote(). Don't change
4500         terminal settings when the quoted path is sent to the shell -
4501         it's now safe.
4503 2001-07-12  Andrew V. Samoilov  <kai@cmail.ru>
4505         * main.c: Eliminate iconify_on_exec.
4506         [!HAVE_GNOME]: Eliminate nowindows, nodesktop, twopanel,
4507         display_linksdir and cmdline_geometry.
4508         (sigchld_handler_no_subshell): Comment fixes.
4509         (midnight_callback): Likewise.
4510         (print_mc_usage): Use fputs, not fprintf.
4511         (print_color_usage): Likewise.
4512         (argument_table): Assign 'r' with force_subshell_execution and 'U'
4513         with use_subshell.
4514         (process_args): Don't deal with 'r', 'U' and 'X' options.
4515         (setup_mc) [HAVE_GNOME]: Eliminate more code.
4517         setup.c (options):  Eliminate iconify_on_exec.
4519 2001-07-10  Andrew V. Samoilov  <kai@cmail.ru>
4521         * view.c (hex_search): Release buffer after use.
4523 2001-07-09  Pavel Roskin  <proski@gnu.org>
4525         * view.c (hex_search): Reimplement parser using sscanf. Add
4526         support for decimal and octal numbers. Add error reporting.
4527         Allocate buffer dynamically.
4529         * hotlist.c: Add comments to avoid confusion between
4530         done_hotlist() and hotlist_done().
4531         (hotlist_done): Set l_hotlist to NULL.
4532         (add2hotlist): Load hotlist if it's neither loaded nor loading.
4533         This fixes Ctrl-x h. Fix compiler warning.
4535         * hotlist.c: Make more variables and functions static.
4537 2001-07-08  Pavel Roskin  <proski@gnu.org>
4539         * ext.c (exec_extension) [HAVE_X]: Free file_name. Add comment
4540         explaining why it cannot be unlinked there.
4542 2001-07-06  Pavel Roskin  <proski@gnu.org>
4544         * ext.c (exec_extension): Unlink temporary file earlier if it's
4545         not going to be used.
4546         [OLD_CODE]: Remove.
4548         * Makefile.in: Use additional quotes to preserve @prefix@ when
4549         Makefile is generated.
4551         * Makefile.in: Don't use SEDCMD2, use sed.
4553         * cons.saver.c: New variable console_minor. Eliminate variables
4554         len and vcs_name.
4555         (check_file): Set console_minor to the minor device number of
4556         the console. Disallow /dev/tty0.
4557         (detect_console): Don't parse tty_name, instead make sure that
4558         it corresponds to console_minor. Check console first. Fallback
4559         to /dev/vcc/a* if /dev/vcsa* cannot be opened.
4560         (save_console): Use console_minor.
4561         (restore_console): Likewise.
4563         * cons.saver.c (check_file): Eliminate using text messages to
4564         indicate errors. Improve debug messages.
4565         (detect_console): Likewise.
4566         (main): Adjust call to detect_console.
4568         * main.c (sigchld_handler_no_subshell): Don't restart cons.saver
4569         if it died.
4570         * subshell.c (sigchld_handler): Likewise.
4572 2001-07-05  Pavel Roskin  <proski@gnu.org>
4574         * main.c (midnight_callback): Don't handle any events except
4575         Ctrl-x combinations on DLG_KEY event if the menu is active.
4577         * main.c (load_prompt): Don't change prompt if midnight_dlg is
4578         not the current dialog.
4580 2001-06-28  Pavel Roskin  <proski@gnu.org>
4582         * util.c (size_trunc_len): New function - print file size to
4583         a buffer of limited length.
4584         * util.h: Declare size_trunc_len().
4585         * screen.c (string_file_size): Use size_trunc_len().
4587 2001-06-26  Pavel Roskin  <proski@gnu.org>
4589         * xslint.c: Remove.
4590         * Makefile.in (SRCS): Remove xslint.c.
4592 2001-06-25  Pavel Roskin  <proski@gnu.org>
4594         * key.c (ctrl_pressed): Don't limit functionality to Linux.
4595         * screen.c (prev_page_key): Don't require console_flag to be set
4596         to use ctrl_pressed(), only require that HAVE_X is undefined.
4597         (next_page_key): Likewise.
4598         * widget.c (key_left): Don't limit functionality to Linux.
4599         (key_right): Likewise.
4601         * main.h: Use "ifdef HAVE_GNOME", not "if HAVE_GNOME". Fix the
4602         order of conditionals and put comments on endifs.
4604 2001-06-25  Andrew V. Samoilov  <sav@bcs.zp.ua>
4606         * view.c [HAVE_CHARSET]: Include selcodepage.h.
4607         (view_new): Use g_new0.
4608         (ruler): Make static.
4610         * complete.c (filename_completion_function): Clean it up.
4611         (command_completion_function): Make words, bash_reserved and
4612         bash_builtins const, use concat_dir_and_file.
4613         (fetch_hosts): Fix typo, style fixes.
4615 2001-06-23  Pavel Roskin  <proski@gnu.org>
4617         * mem.h: Undefine bcopy(), bcmp() and bzero() before redefining
4618         them.
4620 2001-06-22  Pavel Roskin  <proski@gnu.org>
4622         * ext.c (exec_extension) [HAVE_X]: Disable console handling.
4624         * cons.handler.c: Reorganize includes. Fix warnings on BSD.
4625         * rxvt.c (rxvt_extensions): Make static.
4626         * main.c (sigchld_handler_no_subshell) [!__linux__]: Don't try
4627         to restart cons.saver.
4628         * subshell.c (sigchld_handler) [!__linux__]: Likewise.
4630         * fsusage.c: Use HAVE_INFOMOUNT.
4631         * mountlist.c: Likewise. Fix condition when mount_list is
4632         declared.
4633         (fstype_to_string): Rename mount_list to mlist to avoid
4634         confusion with the file-scoped static variable.
4636         * cmd.c [HAVE_X]: Disable more code. Reorder includes.
4638 2001-06-20  Pavel Roskin  <proski@gnu.org>
4640         * main.c: Remove MenuBarEmpty. From Andrew V. Samoilov.
4642         * wtools.c [HAVE_X]: Disable quick dialog routines.
4644         * setup.c (save_setup) [HAVE_X]: Don't save the [Dirs] section.
4645         (load_setup) [HAVE_X]: Don't load the [Dirs] section.
4646         * main.c [HAVE_X]: Disable other_dir and boot_current_is_left.
4647         Adjust all users.
4649 2001-06-19  Pavel Roskin  <proski@gnu.org>
4651         * background.h: Correct condition when WITH_BACKGROUND is
4652         defined.
4653         * fsusage.c: Rearrange the includes. Define HAVE_QNX_MOUNT
4654         for old QNX and use it instead of __QNX__.
4655         * mountlist.c: Likewise.
4656         * keyxdef.c: Define HAVE_QNX_KEYS for old QNX and use it instead
4657         of __QNX__.
4659 2001-06-18  Pavel Roskin  <proski@gnu.org>
4661         * main.c [HAVE_X]: Disable change_panel(),
4662         copy_current_readlink() and copy_other_readlink().
4663         Don't do anything with cmdline and command_prompt.
4664         * screen.c [HAVE_X]: Disable panel_event(), chdir_other_panel()
4665         and chdir_to_readlink(). Adjust all callers.
4666         (panel_key) [HAVE_X]: Don't use command_prompt - always
4667         start search on alphanumeric keys.
4668         * setup.c [HAVE_X]: Disable save_layout(), load_layout(), struct
4669         layout. Adjust all dependencies.
4671         * utilunix.c (init_my_statfs): Move this ...
4672         * util.c (my_statfs): ... and this ...
4673         * mountlist.c: ... here.
4674         * util.h: Move mountlist-related declarations ...
4675         * mountlist.h: ... here.
4676         * info.c: Include mountlist.h.
4678 2001-06-17  David Martin  <dmartina@excite.es>
4680         * hotlist.c (init_movelist): Don't assume English word ordering
4681         in the title.
4683 2001-06-16  Andrew V. Samoilov  <sav@bcs.zp.ua>
4685         * wtools.c (message): Possible buffer overflow fixed.
4686         (query_callback) [HAVE_X]: Disable more code.
4687         (listbox_refresh) [!HAVE_X]: Became a macro.
4688         * hotlist.c (init_i18n_stuff): Mark cancel_but for translation.
4690         * tree.c (tree_copy, tree_move): Possible memory leaking fixed.
4691         (tree_keymap): Constified.
4693 2001-06-15  Pavel Roskin  <proski@gnu.org>
4695         * panelize.c: Define DIR_H_INCLUDE_HANDLE_DIRENT earlier, since
4696         the GNOME edition includes dir.h from other headers.
4698         * background.c: Include "x.h".
4699         * panelize.c: Likewise.
4700         * treestore.c: Likewise.
4701         * user.c: Likewise.
4702         * util.c: Likewise.
4703         * command.c: Reorder includes. Include "x.h".
4704         * complete.c: Likewise.
4705         * find.c: Likewise.
4706         * user.h: Declare user_menu_cmd() unconditionally.
4707         * i18n.h [GAVE_GNOME]: Remove code that is now in x.h.
4709         * tty.h [HAVE_X]: Define beep() to gdk_beep().
4711 2001-06-14  Pavel Roskin  <proski@gnu.org>
4713         * xtty.h: Remove, move contents ...
4714         * tty.h: ... here.
4715         [HAVE_X]: Define attrset(), mc_refresh(), enable_interrupt_key()
4716         and disable_interrupt_key(). Don't declare mc_refresh().
4717         * view.c: Use braces around widget_move() since it's empty in
4718         the GNOME edition.
4719         * xslint.c: Eliminate attrset() and mc_refresh().
4720         * Makefile.in: Remove xtty.h.
4722         * cons.handler.c (handle_console): Remove useless default.
4723         * ext.c (regex_command): Initialize include_target_len.
4724         * find.c [HAVE_GNOME]: Eliminate untyped declarations.
4725         * fsusage.c: Remove untyped declaration of statfs().
4726         [_AIX && _I386]: Rename statfs to aix_statfs and move
4727         it before get_fs_usage(). Define statfs to aix_statfs.
4729         * achown.c: Eliminate untyped declarations.
4730         * boxes.c: Likewise.
4731         * cons.saver.c: Likewise.
4732         * hotlist.c: Likewise.
4733         * panelize.c: Likewise.
4734         * rxvt.c: Likewise.
4735         * main.c: Likewise. Make undeclared functions static.
4736         * treestore.c: Make undeclared functions static.
4737         * view.c: Likewise.
4738         * widget.c: Likewise.
4740         * main.h: Fix prototype of exec_shell.
4741         * tree.c: Make all functions static when possible.
4742         * tree.h: Changes for the above.
4744         * text.c [HAVE_X]: Remove useless #error.
4745         * cons.saver.c: Indent #error to hide it from old compilers.
4747 2001-06-13  Pavel Roskin  <proski@gnu.org>
4749         * screen.c (display_mini_info): Avoid nested i18n calls.
4750         (parse_panel_size): Warning fix.
4751         * user.c [HAVE_X]: Warning fix.
4752         (check_format_var): Avoid nested i18n calls. Improve messages.
4754         * screen.c (user_file_menu_cmd) [HAVE_X]: Disable.
4755         (panel_callback) [HAVE_X]: Don't define labels, they are unused.
4756         * user.c [HAVE_X]: Disable all user menu code.
4758         * color.c (color_table): Make static. Only use in text edition.
4759         * xtty.h: Remove unused definitions.
4761         * slint.c (slang_init): Check screen dimensions and exit if they
4762         are abnormal. This may happen due to a S-Lang bug when the TERM
4763         is set to a value not listed in termcap or terminfo.
4765 2001-06-12  Pavel Roskin  <proski@gnu.org>
4767         * boxes.c [HAVE_CHARSET]: Localize more strings. Lay out the
4768         encoding dialog using the translated title length. Remove
4769         useless preprocessor directives.
4770         From David Martin <dmartina@excite.es>
4772 2001-06-11  Andrew V. Samoilov  <sav@bcs.zp.ua>
4774         * dlg.[ch] (x_set_dialog_title): title constified.
4775         (create_dlg): Use g_new0 instead of g_new.
4777         * selcodepage.c (do_select_codepage): Fix compilation.
4779 2001-06-09  Pavel Roskin  <proski@gnu.org>
4781         * util.c (load_mc_home_file): New function. Load file from
4782         mc_home, but try localized version of that file first.
4783         * util.h: Declare load_mc_home_file().
4784         * help.c (interactive_display): Use load_mc_home_file(). If the
4785         first argument is NULL assume mc.hlp.
4786         * dlg.c (dialog_handle_key): Use interactive_display() without
4787         specifying the help file.
4788         * tree.c (tree_copy): Likewise.
4789         * cmd.c (help_cmd): Likewise.
4790         (get_random_hint): Use load_mc_home_file().
4791         From Andrew V. Samoilov.
4793 2001-06-07  Andrew V. Samoilov  <sav@bcs.zp.ua>
4795         * charsets.h: Define CHARSETS_INDEX without leading LIBDIR.
4797         * charsets.c (translate_character): Warning fix.
4798         (init_translation_table): Don't deal with printable.
4799         This one is initialized by init_printable_table ().
4800         (load_codepages_list): Use CHARSETS_INDEX.
4802         * selcodepage.c (do_select_codepage): Messages marked for i18n.
4803         * setup.c (load_setup): Eliminate errbuf. Fix error message.
4805 2001-06-07  Pavel Roskin  <proski@gnu.org>
4807         * setup.c (load_setup): Call init_printable_table() and
4808         init_translation_table() regardless of other failures.
4810         * charsets.c (get_codepage_index): Warning fix.
4811         (init_printable_table): New function.
4812         * charsets.h: Declare init_printable_table().
4813         * setup.c (load_setup): Uncomment init_printable_table().
4815         * cons.saver.c: Make all functions except main() static.
4816         * mfmt.c (omain): Remove, it's unused.
4818 2001-06-06  Pavel Roskin  <proski@gnu.org>
4820         * main.c (done_mc) [HAVE_X]: Don't use xterm_flag.
4821         (midnight_callback) [HAVE_X]: Don't handle any keys except
4822         Ctrl-x sequences.
4823         Remove useless preprocessor conditionals.
4824         * win.c [HAVE_X]: Disable unused functions.
4826         * file.c: Add comments after every endif.
4827         [HAVE_GNOME] [!WITH_BACKGROUND]: Fix compilation.
4829 2001-06-06  Andrew V. Samoilov  <sav@bcs.zp.ua>
4831         * main.c [HAVE_CHARSET]: Remove source_codepage and display_codepage.
4832         They are declared in selcodepage.c.
4833         * setup.c [USE_VFS]: Remove declarations for variables which are
4834         declared in vfs/ftpfs.c.
4835         (load_setup) [HAVE_CHARSET]: init_printable_table commented
4836         out to enable compilation. Error strings tagged for translation.
4837         (init_setup): Optimized.
4838         * boxes.c (sel_charset_button): Eliminate C++ comment.
4839         (new_display_codepage): Made static.
4840         (display_bits_box): Use "%s" for plain string in message.
4842 2001-06-05  Pavel Roskin  <proski@gnu.org>
4844         * boxes.c [HAVE_CHARSET]: New charset selection dialog.
4845         * main.c [HAVE_CHARSET]: Don't use eight_bit_clean and
4846         full_eight_bits. Use source_codepage and display_codepage to
4847         deduce the terminal 8-bitness.
4848         * main.h [HAVE_CHARSET]: Change to match main.c.
4849         * setup.c [HAVE_CHARSET]: Implement saving and loading charset
4850         settings.
4851         * util.c (is_printable) [HAVE_CHARSET]: Use charset settings.
4852         * view.c [HAVE_CHARSET]: Implement charset support.
4853         From Walery Studennikov <hqsoftware@mail.ru>.
4855         * selcodepage.c (do_select_codepage): New function.
4856         * selcodepage.h: Declare it.
4857         From Walery Studennikov <hqsoftware@mail.ru>.
4859         * mfmt.c (omain): Warning fix.
4861         * key.c [HAVE_TEXTMODE_X11_SUPPORT]: Rename `display' to
4862         `x11_display' and `w' to `x11_window'. Make them static.
4863         (init_textmode_x11_support): Include into init_key().
4864         (done_textmode_x11_support): Include into done_key().
4865         (k_dispose): Make static.
4866         (s_dispose): Likewise.
4867         * key.h: Remove init_textmode_x11_support() and
4868         done_textmode_x11_support().
4869         * main.c: Don't call init_textmode_x11_support() and
4870         done_textmode_x11_support().
4872         * achown.c: Make global variables static if possible. Remove now
4873         useless preprocessor directives, since this file is now used in
4874         the text edition only.
4875         * boxes.c: Remove useless ifdefs.
4876         [USE_VFS]: Don't undef USE_NETCODE - it's done in extraconf.h.
4877         * cmd.c [USE_VFS]: Don't undef USE_NETCODE.
4878         * chmod.c: Remove useless ifdefs.
4879         * filegui.c: Likewise.
4880         * hotlist.c: Likewise.
4881         * info.c: Likewise.
4882         * layout.c: Likewise.
4883         * listmode.c: Likewise.
4884         * option.c: Likewise.
4885         * subshell.c: Likewise.
4886         * help.c: Remove useless ifdefs. Make global variables static if
4887         possible.
4888         * key.c: Likewise.
4889         * learn.c: Likewise.
4891 2001-06-04  Andrew V. Samoilov  <sav@bcs.zp.ua>
4893         * charsets.c (load_codepages_list): Lines in mc.charset beginning
4894         with a # are comments. Use "default character_set_name" in mc.charset
4895         to set default codepage for your system.
4896         (xstrncpy): Eliminate.
4898 2001-06-04  Pavel Roskin  <proski@gnu.org>
4900         * cmd.c (edit_symlink_cmd) [!HAVE_GNOME]: Warn if the current
4901         selection is not a symbolic link.
4903 2001-06-02  Pavel Roskin  <proski@gnu.org>
4905         * cmd.c (free_vfs_now) [HAVE_GNOME]: Eliminate.
4906         (reselect_vfs) [HAVE_GNOME]: Likewise.
4907         * main.c (ctl_x_map) [HAVE_GNOME]: Disable add2hotlist_cmd.
4908         (done_mc) [HAVE_X]: Don't call save_hotlist().
4909         * setup.c (save_setup) [HAVE_X]: Likewise.
4910         (done_setup) [HAVE_X]: Don't call done_hotlist().
4912 2001-06-01  Pavel Roskin  <proski@gnu.org>
4914         * hotlist.c [HAVE_X]: Don't use ctrl_pressed().
4915         * widget.c [HAVE_X]: Likewise.
4916         * main.c [HAVE_X]: Likewise. Don't call init_key() and
4917         init_key_input_fd().
4918         * setup.c [HAVE_X]: Remove some variables that make no sense
4919         for the GNOME edition. Eliminate save_panel_types().
4920         * view.c [!PORT_WANTS_VIEW]: Eliminate view_mode_callback().
4922         * view.c [HAVE_X]: Define is_idle() to 1. Warning fix.
4924         * file.c (copy_file_file): Initialize src_uid, src_gid, src_mode
4925         and file_size to avoid a warning.
4927 2001-05-31  Pavel Roskin  <proski@gnu.org>
4929         * charsets.c: Include config.h before everything else.
4930         * selcodepage.c: Likewise.
4932         * textconf.c (features): Use longer strings to avoid enforcing
4933         English word ordering on the translations. Capitalize sentences.
4934         From Walery Studennikov: Indicate charset support.
4935         (version): Use fputs, not fprintf.
4937         * Makefile.in: Add charsets.c, charsets.h, selcodepage.c and
4938         selcodepage.h. Compile them if the charset support is enabled.
4939         Distribute them always.
4941 2001-05-30  Pavel Roskin  <proski@gnu.org>
4943         * charsets.c: New file for charset conversion support.
4944         From Walery Studennikov.
4945         * charsets.h: Likewise.
4946         * selcodepage.c: Likewise.
4947         * selcodepage.h: Likewise.
4949         * layout.c (init_curses) [!HAVE_SLANG]: Set ESCDELAY to 0 if
4950         possible to prevent ncurses from waiting after escape.
4952 2001-05-29  Pavel Roskin  <proski@gnu.org>
4954         * cmd.c (quick_cd_cmd) [HAVE_GNOME]: Disable.
4955         * main.c (sort_cmd) [HAVE_GNOME]: Likewise.
4956         (ctl_x_map) [HAVE_GNOME]: Disable "Ctrl-x j" - background jobs.
4958         * color.c (init_colors) [HAVE_SLANG]: Use "default" instead of
4959         NULL as color names - this works even if COLORFGBG is unset.
4960         Don't check HAS_DIRECT_COLOR_ACCESS - it's now meaningless.
4962         * color.h: Define DEFAULT_COLOR_INDEX and DEFAULT_COLOR in the
4963         same way regardless of HAVE_SLANG.
4964         * color.c (init_colors) [USE_NCURSES]: Initialize the default
4965         color pair.
4967         * subshell.c (pty_open_master) [!HAVE_SCO && HAVE_GRANTPT]:
4968         Don't try to close a file that wasn't opened.
4970         * xslint.c: Remove slang_init() and FIXME in the comment.
4971         * main.c (main) [!HAVE_SLANG]: Don't call slang_init().
4973 2001-05-28  Pavel Roskin  <proski@gnu.org>
4975         * myslang.h: Use HAVE_SLANG_SLANG_H instead of non-standard
4976         SLANG_H_INSIDE_SLANG_DIR.
4978         * xslint.c: Remove unused functions.
4980         * color.c (init_colors) [HAVE_SLANG]: Use SLtt_set_color() to
4981         associate the default colors with DEFAULT_COLOR_INDEX. The old
4982         code would unset alternative charset without making S-Lang aware
4983         of it.
4984         Thanks to John E. Davis <davis@space.mit.edu>
4985         * widget.c (update_input) [HAVE_SLANG]: Revert last change - it
4986         is not needed now.
4988 2001-05-28  Andrew V. Samoilov  <sav@bcs.zp.ua>
4990         * main.c: Correct some comments after #endif
4991         (shell): Remove comment and #ifdef around shell variable.
4992         (process_args) [HAVE_SUBSHELL_SUPPORT]: All related args enclosed
4993         between one #ifdef ... #endif pair.
4994         (process_args): smbfs_set_debug () takes a debug level as argument,
4995         commented out.
4997 2001-05-27  Pavel Roskin  <proski@gnu.org>
4999         * main.c (OS_Setup) [!HAVE_X]: Exit immediately if TERM
5000         environment variable is unset or empty.
5002 2001-05-25  Pavel Roskin  <proski@gnu.org>
5004         * cmd.c: Clean up useless preprocessor directives.
5005         (symlink_cmd): Warning fix.
5006         * dlg.c (dialog_handle_key) [HAVE_X]: Disable suspend on Ctrl-z.
5007         * main.c (do_suspend_cmd) [HAVE_GNOME]: Remove.
5008         (suspend_cmd) [HAVE_GNOME]: Likewise.
5010 2001-05-24  Pavel Roskin  <proski@gnu.org>
5012         * widget.c (update_input) [HAVE_SLANG]: Work around a bug in
5013         SLang 1.x - set charset to alternative when printing spaces.
5015 2001-05-22  Pavel Roskin  <proski@gnu.org>
5017         * ext.c (exec_extension): Use g_free() on the result of
5018         mc_mkstemps(). Don't free it if mc_mkstemps() fails - it's not
5019         needed anymore.
5020         * user.c (execute_menu_command): Likewise.
5021         * util.c (mc_mkstemps): Return NULL in the filename in the case
5022         of failure. Remove support for NULL as the first argument.
5023         From Andrew V. Samoilov.
5025 2001-05-21  Pavel Roskin  <proski@gnu.org>
5027         * ext.c (exec_extension): Use mc_mkstemps().
5028         * user.c (execute_menu_command): Use mc_mkstemps().
5029         * util.c (mc_mkstemps): New function - safely create and
5030         open temporary file. Return the handle and the name.
5031         * util.h: Declarations for init_tmpdir() and mc_mkstemps().
5032         Define TMPDIR_DEFAULT and SCRIPT_SUFFIX.
5034 2001-05-18  Pavel Roskin  <proski@gnu.org>
5036         * TODO: Remove Tk-related entries.
5037         * boxes.c [HAVE_TK]: Remove. Don't need INPUT_INDEX anymore.
5038         * screen.c [HAVE_TK]: Remove.
5039         (panel_event): Made static.
5040         * chmod.c [HAVE_TK]: Remove.
5041         * cmd.c [HAVE_TK]: Likewise.
5042         * help.c [HAVE_TK]: Likewise.
5043         * hotlist.c [HAVE_TK]: Likewise.
5044         * info.c [HAVE_TK]: Likewise.
5045         * view.c [HAVE_TK]: Likewise.
5046         * view.h [HAVE_TK]: Likewise.
5047         * widget.c [HAVE_TK]: Likewise.
5048         * wtools.c [HAVE_TK]: Likewise.
5050         * TODO: Remove XView-related entries.
5051         * menu.h [HAVE_XVIEW]: Remove all XView-related code.
5053 2001-05-17  Pavel Roskin  <proski@gnu.org>
5055         * subshell.c (pty_open_master) [HAVE_SCO]: Fix ambiguous `else'.
5056         [!HAVE_SCO && !HAVE_GRANTPT]: Likewise.
5058 2001-05-16  Pavel Roskin  <proski@gnu.org>
5060         * subshell.c: Define _GNU_SOURCE to enable prototypes for
5061         allocating pseudo-terminals on GNU systems.
5063         * subshell.c (init_subshell_child): New function to initialize
5064         child process and run subshell. Code moved from ...
5065         (init_subshell): ... here.
5067         * subshell.c (init_subshell): Don't close pty_slave if is wasn't
5068         open. Initialize it with -1.
5070 2001-05-14  Pavel Roskin  <proski@gnu.org>
5072         * main.c [HAVE_GNOME]: Disable more code.
5073         * cmd.c [HAVE_GNOME]: Likewise.
5075         * background.h: Omit definitions that require FileOpContext if
5076         fileopctx.h has not been included yet.
5078         * background.c (real_message_2s): Declare arguments "const" when
5079         possible.
5080         (real_message_3s): Likewise.
5081         * wtools.c (message): Likewise.
5082         * background.h: Change declarations to match.
5083         * dialog.h: Likewise.
5085         * boxes.c [HAVE_GNOME]: Disable unused code.
5086         * find.c [HAVE_GNOME]: Likewise.
5087         * complete.c [HAVE_GNOME]: Likewise.
5088         * main.c [HAVE_GNOME]: Likewise.
5090         * screen.c (adjust_top_file): Enable only if it's used, i.e.
5091         when PORT_HAS_PAINT_FRAME in undefined.
5092         * wtools.c (listbox_refresh): Disable for HAVE_X, define to
5093         an empty macro instead.
5094         (listbox_callback): Call listbox_refresh() regardless of HAVE_X.
5095         (create_listbox_window): Likewise.
5097         * fsusage.c: Include stdlib.h for abort().
5098         * tree.c (tree_mkdir_cmd): Disable tree_mkdir_cmd() since it's
5099         not used.
5100         * widget.c: Declare x_radio_toggle() with arguments.
5102         * util.h: Remove declarations of some functions defined in
5103         background.c.
5105 2001-05-14  Andrew V. Samoilov  <sav@bcs.zp.ua>
5107         * background.c (real_message_1s, message_1s): third parameter is
5108           used by message () as printf pattern, so "%s" has to be added
5109           if plain string must be shown but printf conversion
5110           specification(s) may be there.
5111         * view.c (do_view_init): ditto
5112         * user.c (debug_out): ditto
5113         * utilunux.c (close_error_pipe, check_error_pipe): ditto
5115         * background.[ch], vfs/util-alone.c (message_1s): third parameter
5116           constified
5118 2001-04-27  Andrew V. Samoilov  <sav@bcs.zp.ua>
5120         * find.c (search_content): Redo recent change without infinite loop ;-),
5121         egrep_path hardcoded to "egrep" as it is done in locate_egrep ()
5123         (locate_egrep): commented out
5125         (rotating_dash) [!HAVE_X]: moved into do_search to prevent warning
5127 2001-04-26  Pavel Roskin  <proski@gnu.org>
5129         * find.c (search_content): Undo a recent change that caused an
5130         infinite loop.
5132 2001-04-24  Andrew V. Samoilov  <sav@bcs.zp.ua>
5134         * view.c (get_line_at): previous newline is right condition
5135         for regexp '^' pattern also, fixed
5137         (search) [HAVE_GNOME]: gnome_message_box_new doesn't expand printf
5138         pattern, so g_strdup_printf used
5140         * find.c (find_parameters): don't use stat structure if mc_stat failed
5142 2001-04-17  Pavel Roskin  <proski@gnu.org>
5144         * subshell.c (init_raw_mode): New function, separated from ...
5145         (invoke_subshell): ... this.
5146         (init_subshell): Initialize raw_mode here instead of delaying it
5147         until invoke_subshell(). Otherwise the current mode may have
5148         been changed by edition_pre_exec(), which caused Ctrl-O to be
5149         ignored on FreeBSD if a command has been run before switching
5150         to the subshell.
5152 2001-04-06  Pavel Roskin  <proski@gnu.org>
5154         * chmod.c (stat_file): Allow chmod and chown on special files.
5156         * cons.handler.c: Include "global.h" for exit().
5158         * Makefile.in: Add dependencies between mc and static libraries
5159         in the source tree.
5161 2001-04-06  Andrew V. Samoilov  <sav@bcs.zp.ua>
5163         * find.c (find_parameters): Add a checkbox for case insensitive
5164         content search.
5165         (search_content): Pass `-i' to egrep for case insensitive
5166         search.
5168 2001-03-30  Andrew V. Samoilov  <sav@bcs.zp.ua>
5170         * panel.h, screen.c (panel_new): panel_name constified to do gcc
5171         some more happy when gmc is compiled
5173 2001-03-18  Miguel de Icaza  <miguel@ximian.com>
5175         * widget.c (forward_word, backward_word): Revert Timur's patch
5176         from last year which made the behavior for advancing words not
5177         match the one in Emacs.
5179 2001-03-02  Pavel Roskin  <proski@gnu.org>
5181         * key.c (mi_getch): Discard non-events (EV_NONE), but not
5182         keycode 0 (Ctrl-@).
5184 2001-02-26  Pavel Roskin  <proski@gnu.org>
5186         * cmd.c (edit_cmd) [HAVE_GNOME]: Use gmc_edit(). Don't use
5187         regex_command().
5188         (ext_cmd) [HAVE_GNOME]: Don't compile for GNOME.
5189         * ext.c (regex_command) [HAVE_GNOME]: Likewise.
5190         * ext.h [HAVE_GNOME]: Don't define MC_USER_EXT and MC_LIB_EXT.
5192         * main.c (main): Don't call edit_init_file() - the editor should
5193         care about its files itself.
5195 2001-02-09  Pavel Roskin  <proski@gnu.org>
5197         * main.c (main): Fix compilation error when configured without
5198         subshell support.
5200 2001-02-07  Andrew V. Samoilov  <sav@bcs.zp.ua>
5202         * main.c (main): Do not fork subshell for mcedit/mcview.
5204 2001-01-27  Pavel Roskin  <proski@gnu.org>
5206         * cons.handler.c (handle_console): Check the result of ttyname().
5208         * main.c (handle_args): Exit if no arguments are given to mcview.
5209         [HAVE_GNOME]: Don't examine argv[0] - it's done separately.
5211         * dir.c: Respect HAVE_STRCOLL. Added a comment about strcoll().
5213 2001-01-26  Pablo Saratxaga  <pablo@mandrakesoft.com>
5215         * file.c: moved a comment one line down so it becomes visible on the
5216         translators' po files. Also added gettext:no-c-format comments for
5217         a few strings with % in them that are not C format printf codes.
5219 2001-01-21  Andrew V. Samoilov  <sav@bcs.zp.ua>
5221         * subshell.c (do_subshell_chdir): temporary patch to prevent command
5222         execution for directory names containing 0x03 (intr) 0x14.
5223         See http://www.securityfocus.com/vdb/?id=2016 for details.
5224         Subshell still can't chdir to such directories :(
5226         * subshell.[ch] (do_subshell_chdir): directory constified
5228 2001-01-17  Pavel Roskin  <proski@gnu.org>
5230         * Makefile.in: Respect LDFLAGS when linking cons.saver.
5232 2000-11-20  Andrew V. Samoilov  <sav@bcs.zp.ua>
5234         * view.c: Fixed long existed bugs in internal viewer. When search is
5235         doing in binary file it ignore skipped zero(es), so cursor is before
5236         searched expression and next search find the same string. Also regexp
5237         search could return wrong results for '^ ?' expressions.
5239         (get_line_at): skipped: new parameter for number of skipped zero(es)
5241         (search): new features of get_line_at used.
5243 2000-11-16  Andrew V. Samoilov  <sav@bcs.zp.ua>
5245         * cons.saver.c (check_file): close fd on error. There was a bug, which
5246         allowed luser to write '\0' char to any symlinkable file in Linux
5247         system which don't ensure that fd's 0, 1, and 2 are open on startup
5248         of a SUID/SGID binary.
5249         Based on patch from bugtrack by Maurycy Prodeus <z33d@ETH-SECURITY.NET>.
5251 2000-11-14  Andrew V. Samoilov  <sav@bcs.zp.ua>
5253         * layout.c (print_vfs_message): format string vulnerability fixed
5255 2000-11-03  Andrew V. Samoilov  <sav@bcs.zp.ua>
5257         * main.c (CmdMenu): don't include edit_user_menu_cmd ()
5258         if USE_INTERNAL_EDIT is not defined
5259         (main): call edit_init_file () if USE_INTERNAL_EDIT is defined only
5260         (listmode_cmd): messages are localized
5262 2000-11-02  Pavel Roskin  <proski@gnu.org>
5264         * layout.c [PORT_NEEDS_CHANGE_SCREEN_SIZE]: Declare
5265         low_level_change_screen_size().
5266         (flag_winch) [PORT_NEEDS_CHANGE_SCREEN_SIZE]: Call
5267         low_level_change_screen_size(). From Andrew V. Samoilov.
5269 2000-10-04  Pavel Roskin  <proski@gnu.org>
5271         * user.c (expand_format): Fixed processing of "%s".
5273 2000-09-30  Pavel Roskin  <proski@gnu.org>
5275         * Makefile.in: Added an explicit rule for man2hlp.
5277 2000-09-26  Pavel Roskin  <proski@gnu.org>
5279         * listmode.c, listmode.h, main.c: Consistently using define
5280         LISTMODE_EDITOR to enable the experimental listmode editor.
5281         * main.c: Don't allow two adjacent separators in the Command
5282         menu.
5284 2000-09-22  Pavel Roskin  <proski@gnu.org>
5286         * fixhlp.c: Removed.
5287         * Makefile.in: Removed all references to fixhlp.c
5289 2000-09-14  Pavel Roskin  <proski@gnu.org>
5291         * features.h: Joined with textconf.h to avoid name clash with
5292         GNU Libc.
5293         * features.c: Renamed to ...
5294         * textconf.c: ... this
5295         * Makefile.in, cmd.c, main.c, text.c: necessary adjustments
5297         * Makefile.in: Don't make softlinks to the libraries
5299 2000-09-13  Pavel Roskin  <proski@gnu.org>
5301         * Makefile.in: Only rebuild mc.hlp in the maintainer mode.
5303 2000-09-01  Pavel Roskin  <proski@gnu.org>
5305         * fixhlp.c: fixed compile errors and warnings
5307 2000-08-30  Pavel Roskin  <proski@gnu.org>
5309         * dirhist.c, dirhist.h: removed
5311         * features.h, keys.h, textconf.h, x.h: added protection against
5312         multiple inclusion
5314 2000-08-23  Pavel Roskin  <proski@gnu.org>
5316         * features.c: include <sys/param.h> to avoid a warning
5318         * main.c [HAVE_X]: print_mc_usage() and print_color_usage()
5319         removed.
5320         version() moved to ...
5321         * features.inc: ... here, renamed to features.c
5322         * main.h: status_using_ncurses moved to ...
5323         * features.h: ... here
5324         * cmd.c, text.c: include "features.h"
5325         * cmd.h: include "panel.h"
5326         * Makefile.in: changed to use features.h and features.c
5328 2000-08-22  Pavel Roskin  <proski@gnu.org>
5330         * main.c [HAVE_GNOME]: disable chmod and chown - they were
5331         broken and obsoleted by the "Properties" dialog
5333         * cmd.c [HAVE_X]: Removed dependency on status_using_ncurses
5335         * man2hlp.c: Removed undocumented feature - when converting
5336         to HTML some output would go to index.html instead of stdout
5338 2000-08-16  Pavel Roskin  <proski@gnu.org>
5340         * gindex.pl: Enable warnings. Existing warnings fixed.
5342         * Makefile.in: mc.hlp now depends on man2hlp.c instead of
5343         man2hlp - this avoids some rebuilds of mc.hlp
5345 2000-08-15  Pavel Roskin  <proski@gnu.org>
5347         * mc.hlp: removed. It's a derived file
5348         * Makefile.in: Fixed dependencies for $(srcdir)/mc.hlp
5349         Build $(srcdir)/mc.hlp but allow a failure (e.g. no perl)
5351 2000-08-11  Frederic L. W. Meunier  <fredlwm@pervalidus.net>
5353         * Makefile.in: Don't compile mfmt, compile mcmfmt directly.
5355 2000-08-08  Andrew V. Samoilov  <sav@bcs.zp.ua>
5357         * hotlist.c (done_hotlist): static tkn_buf, tkn_buf_length and
5358         tkn_length nullified after tkn_buf is freed to prevent crashes.
5360         (new_hotlist): became a macro
5362         * background.c (real_message_[123]s): title is really prepended
5363         by "Background process:" string now if mode == Background
5365         (background_attention): resstr NULLified to prevent warning
5367 2000-06-26  Andrew V. Samoilov  <sav@bcs.zp.ua>
5369         * screen.c (display_mini_info): two different patterns are
5370         used now: for one file and for other cases
5372 2000-06-16  Pavel Machek  <pavel@artax.karlin.mff.cuni.cz>
5374         * cons_saver: support linux with devfs, patch by pavenis@lanet.lv
5376 2000-06-14  Andrew V. Samoilov  <sav@bcs.zp.ua>
5378         * panel.h, util.[ch] (struct WPanel, size_trunc, size_trunc_sep): size
5379         parameters and WPanel.total field became double, thus, total size
5380         of selected files/directories is shown in the mini status correctly
5381         when it exceeds 2 GB.
5383 2000-05-25  Andrew V. Samoilov  <sav@bcs.zp.ua>
5385         * slint.c (init_pair): segfault fixed when mcedit -b called
5387         * user.c (check_format_var): error messages are localized
5389         (expand_format, user_menu_cmd): memory leaking for %e and %k macro
5390         fixed; segfault fixed when %m macro is used outside user_menu_cmd ()
5392         * ext.c (regex_command): memory leaking fixed when user extension
5393         file is absent
5395         (exec_extension): error message for changed mc.ext file format
5396         are localized -- does we really must be worry about mc 3.0 ?
5398         * widget.c (history_put): counter is initialized again
5400 2000-05-11  Valery Kornienkov  <vlk@dimavb.st.simbirsk.su>
5402         * src/user.c: fix segfault when Shift-F4, Shift-F1, so when menu
5403         content condition y, macro %y
5405 2000-05-04  Valery Kornienkov  <vlk@dimavb.st.simbirsk.su>
5407         * src/user.c: Add macro %k it is block file name
5408         Add macro %e it is error file name
5409         Add macro %i it is cursor column indent of spaces, only for edit
5410         Add macro %y, it is syntax of current file in editor, only for edit
5411         Add condition y, it is syntax pattern of current file in edit
5412         Add macro %x it is extension of current file
5413         Add macro %m it is current menu filename
5415 2000-05-04  Valery Kornienkov  <vlk@dimavb.st.simbirsk.su>
5417         * gtkedit/editcmd.c: Modify External Formatter (was C indent formatter) .
5418         Autocreate a scripts in home, from templates /usr/lib/mc/edit.indent.rc,
5419         edit.ispell.rc, etc. Remove leading and trailing spaces into _(""),
5420         (the message of David H. Martin <dmartina@usa.net>)
5422 2000-05-05  Valery Kornienkov  <vlk@dimavb.st.simbirsk.su>
5424         * src/user.c:   Add condition (x filename) into mc.menu .
5425                         for "Open next a free console" and like.
5427 2000-05-04  Valery Kornienkov  <vlk@dimavb.st.simbirsk.su>
5429         * src/user.c: fix segfault in chunk_alloc of glibc, when into condition
5430         of .mnu we have quoted space. (~.mc/menu: + f \.\ test$).
5432 2000-05-04  Valery Kornienkov  <vlk@dimavb.st.simbirsk.su>
5434         * gtkedit/edit.c:
5435         Add ability user edit menus: system: /usr/lib/mc/cedit.menu,
5436         * gtkedit/editmenu.c: home: ~/.cedit.menu, local: .cedit.menu
5437         Marked block is access now from an user edit menu
5438         Access ~/.cedit/cooledit.block for insert to cursor place from
5439         user edit menu.
5440         Created system cedit.menu
5442 2000-05-04  Valery Kornienkov  <vlk@dimavb.st.simbirsk.su>
5444         * gtkedit/editdraw.c:
5445         Improved a status string of cool editor for best understand,
5446         and to add char,hex view.
5448 2000-04-17  Andrew V. Samoilov  <sav@bcs.zp.ua>
5450         * widget.c: (history_put): profile is free()d if chmod failed,
5451           (input_map): added const qualifier
5452         * utilunix.c, util.h: (tilde_expand): added const qualifier
5453         * cmd.c: (nice_cd): i18n update,
5454           (source_routing): typo fixed, source is free()d after use
5455         * screen.c: i18n changes, (panel_keymap): added const qualifier
5456         * view.[ch]: (view, view_init, do_view_init): added const qualifier
5458 2000-04-15  Timur Bakeyev  <mc@bat.ru>
5460         * dir.c (string_sortcomp): strcmp() replaced with strcoll() to make
5461         directory listing LOCALE sensitive. I assume, strcoll exists everywhere,
5462         as it is in POSIX.
5464 2000-04-15  Timur Bakeyev  <mc@bat.ru>
5466         * dlg.c: Committed at last patch, that fixes screwed up right panel in
5467         a long format. Occasionally, all my colors problems also gone. All thanks
5468         to Norbert Warmuth <nwarmuth@privat.circular.de>, who tracked down the
5469         problem, blames to me and Federico :)
5471 2000-04-12  Timur Bakeyev  <mc@bat.ru>
5473         * widget.c ([forward|backward]_word): Changed one more time -
5474         now it skips alnums and THEN spaces+punct. That gives almost the
5475         same results, but twice quicker. Hope, this will be accepted.
5477 2000-04-06  Timur Bakeyev  <mc@bat.ru>
5479         * widget.c ([forward|backward]_word): Changed logic of moving - now,
5480         it skips only spaces+punct OR alnum. Reason to do it so - deleting lines
5481         like "lynx http://www.gnome.org", where "lynx http:" part was erased
5482         in one operation. That's nasty, IMHO. Made this a separate commit, so,
5483         if it seriously breaks compatibility it's easy to revert it. Still hope
5484         that nobody will do that.
5486 2000-04-06  Timur Bakeyev  <mc@bat.ru>
5488         * file.c, widget.[ch]: Fixed long existing problems with filenames
5489         and input widgets, then char is greater than 128. They were processed
5490         incorrectly. As usual, char != unsigned char problem.
5492 2000-03-03  Björn Eriksson  <mdeans@algonet.se>
5494         * Similar patches came from Andrew V. Samoilov <sav@bcs.zp.ua>.
5496         * mad.[ch]: Some functions wrongly by-passed mad_alloc*() (causing
5497         problems when later g_free()ed.
5499         * Added mad_strndup().
5501         * Repeated code collected in mad_fatal_error().
5503         * The gcc-extension/C99-standard variable argument macros (adding
5504         __FILE__, __LINE__ before ', ...') would be nice.
5506         * Alloc_idx_hint and code added, the mad code was way too slow for my
5507         poor computer. A hash-table would be nice.
5509         * (mad_strconcat, mad_strdup_vprintf): g_malloc and g_new are
5510         undefined at the top of mad.c, so mad_alloc must be used.
5512 2000-02-23  Norbert Warmuth  <nwarmuth@privat.circular.de>
5514         * main.c (parse_control_file): add missing right parentheses
5516         * boxes.c: fix incorrect initialization of array of structure (gcc
5517         version 2.96 20000131 chokes on it).
5519 2000-02-18  Paul Sheer  <psheer@obsidian.co.za>
5521         * gtkedit/*.[ch], edit.c et al: updates to reflect
5522         cooledit-3.13.0. See CVS commits and cooledit ChangeLog
5523         for details.
5525 2000-02-10  Pavel Machek  <pavel@artax.karlin.mff.cuni.cz>
5527         * setup.c (load_setup): remove duplicate loading of anonymous
5528         passwd by do_load_string(), it is doing by
5529         ftpfs_init_passwd. (Patch by sav@bcs.zp.ua)
5531 2000-02-04  "David H.Martin"  <dmartina@usa.net>
5533         * src/widget.c (input_new): Change NULL to empty strings and avoid
5534           crashing when string functions are called.
5535         * src/boxes.c (configure_vfs): Remove local change to empty string.
5536         * src/setup.c (load setup): Load anonymous password
5538 2000-02-03  Andrew V. Samoilov  <sav@bcs.zp.ua>
5540         * setup.c (load_setup): call ftpfs_init_passwd to avoid segfault
5542 2000-01-24  Andrew V. Samoilov  <sav@bcs.zp.ua>
5544         * main.c (parse_control_file): add extra security checks for
5545          control file. It cannot be group/world writable;
5546         (ctl_x_map, default_map, argument_table): added const qualifier.
5548         * fixed segfault in print_mc_usage
5550 2000-01-24  Pavel Machek  <pavel@artax.karlin.mff.cuni.cz>
5552         * cmd.c (nice_cd): disabled ability to go to home.
5554 2000-01-02  viro@math.psu.edu
5556         * src/subshell.c: Reason: in feed_subshell() we are trying to read
5557         from shell pty, check for retval==-1 && errno != EIO. In that case
5558         we flame and exit. Otherwise we are trying to write what we've
5559         read. Good luck doing it if we got errno==EIO, which is _normal_
5560         for situation when shell just died. Resulting write(1,foo,~0U) is
5561         somewhat excessively, erm, verbose.
5563 1999-12-21  Pavel Roskin  <pavel_roskin@geocities.com>
5565         * src/main.c, src/view.c: #warning's replaced with FIXME's.
5566         They were not for users, but for developers
5568 1999-11-11  Pavel Machek  <pavel@artax.karlin.mff.cuni.cz>
5570         * main.c, cmd.c: add possibility to free VFS now
5572 1999-11-03  Pavel Machek  <pavel@artax.karlin.mff.cuni.cz>
5574         * layout.c: always display status line. It contains vital
5575         information for ftpfs
5577 1999-03-19  Pavel Machek  <pavel@artax.karlin.mff.cuni.cz>
5579         * profile.c (str_translate_newline_dup): someone likes to pass
5580         NULL's around. Warn instead of segfault.
5582 1999-11-02  Miguel de Icaza  <miguel@gnu.org>
5584         * main.c (OS_Setup): Do not warn if TERM is not set for the GNOME edition.
5586 1999-09-21  Federico Mena Quintero  <federico@redhat.com>
5588         * dlg.c (dlg_broadcast_msg_to): Sigh.  Put in a GrossHack(tm) to
5589         unfocus what will be a WInput when a panel is initialized.
5591 1999-09-21  Federico Mena Quintero  <federico@redhat.com>
5593         * dlg.c (init_dlg): Walk the list of widgets only if it exists.
5594         (dlg_broadcast_msg_to): Use safer list-walking code for if someone
5595         inserts a widget inside the message broadcast.
5597 1999-09-20  Federico Mena Quintero  <federico@redhat.com>
5599         The following is a patch from Volker Braun
5600         <volker.braun@physik.hu-berlin.de> to fix column resizing in the
5601         file panels.
5603         * setup.c (options): Declare the column width option values.
5604         (save_configure): Save the default user format.
5605         (load_setup): Load the default user format.
5607         * panel.h (WPanel): Added a field for the column widths.
5609 1999-09-19  Andrew V. Samoilov  <sav@bcs.zp.ua>
5611         * user.c (check_patterns): char* is used instead of char [] in sizeof
5613         * util.c (string_perm): prefix named pipes by 'p' and not by `s'
5615 1999-09-19  Norbert Warmuth  <nwarmuth@privat.circular.de>
5617         * mad.c, mad.h, util.c, util.h: Move mad-functions from util.[ch]
5618         to mad.[ch]
5620         * option.c: Include files reordered in order to make it compile with
5621         --with-debug
5623         * mad.c (mad_init): New function. Initialize debug FILE pointer to
5624         stderr (moved to a function because not on every system stderr is
5625         a constant).
5626         (mad_set_debug): added const qualifier
5628         * main.c (main): call mad_init
5630 1999-09-14  Norbert Warmuth  <nwarmuth@privat.circular.de>
5632         * widget.[ch] (input_new): added const qualifier
5634         * util.c (wipe_password): Check for NULL.
5636 1999-09-13  Federico Mena Quintero  <federico@redhat.com>
5638         * treestore.c: Removed tree_store_destroy(), renamed
5639         tree_store_init() to tree_store_get().
5641         * tree.c (tree_destroy): Do not destroy the tree store.
5642         (tree_new): Get the tree store, do not initialize it.
5644         * treestore.c (tree_store_init): Do not set the linked list
5645         pointers to NULL.
5647         * panel.h (WPanel): Added a new field that indicates whether the
5648         user is dragging something over the tree.
5650 1999-08-31  Federico Mena Quintero  <federico@redhat.com>
5652         * main.c: In the GNOME version, we want cd_symlinks to be FALSE.
5653         The VFS should never have to look at this variable, but alas, it
5654         does.  BUGFIX:  Red Hat Bugzilla #2344.
5656         * setup.c: Disable cd_symlinks in the GNOME version.
5658 1999-08-30  Norbert Warmuth  <nwarmuth@privat.circular.de>
5660         * main.c (print_mc_usage): Print the bug reporting address.
5661         (main): Put prompt in a new line at termination.
5663 1999-08-27  Federico Mena Quintero  <federico@redhat.com>
5665         * ext.c (quote_block): How did this ever work?  People, if you
5666         realloc() things, don't keep pointers to stuff inside the original
5667         block.
5669         * screen.c (do_enter_on_file_entry): Pass in the full name to
5670         if_link_is_exe().
5672         * dir.[ch] (if_link_is_exe): Take in the full name, not the directory
5673         and the file entry.
5675 1999-08-15  Norbert Warmuth  <nwarmuth@privat.circular.de>
5677         * cmd.c (guess_message_value): New function. Determine locale used
5678         for messages
5680         (get_random_hint): use guess_message_value
5682 1999-08-15  David Martin  <dmartina@usa.net>
5684         * boxes.c: (symlink_dialog): Move dialog misaligned elements
5686         * cmd.c (get_random_hint): Look for localized hint files
5688 1999-08-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>
5690         * ext.c: Added missing include file.
5692 1999-08-08  David Martin  <dmartina@usa.net>
5694         * menu.c: (create_menu): Adjust "#ifdef ENABLE_NLS" so that menus
5695         get the right size even when NLS is disabled.
5697 1999-08-06  Norbert Warmuth  <nwarmuth@privat.circular.de>
5699         * screen.c (string_file_[amc]time): These three functions use
5700         file_date which returns a pointer to a static buffer. In the
5701         Gnome edition this buffer has to be copied to a static buffer
5702         which isn't used in the other two functions (Fix Bug #1766).
5704         * util.c, util.h: Moved some constants to util.h
5706 1999-08-04  Norbert Warmuth  <nwarmuth@privat.circular.de>
5708         * widget.c (push_history): Add SMB Link to the list of input dialogs
5709         where URLs are input without vfs prefix.
5711         Translate the titles of these input dialogs only once.
5713         Removed Gnome specific code because the Gnome edition doesn't use
5714         the input history any more.
5716         * util.c (strip_password): Add /#smb: to the list of URLs which might
5717         be input with password.
5719 1999-08-03  Norbert Warmuth  <nwarmuth@privat.circular.de>
5721         * poptalloca.h: New file with definitions for alloca. Note: alloca
5722         is defined as malloc on systems which fail to support alloca. Don't
5723         include this file if you frequently use alloca.
5725         * findme.c, popt*.c: include poptalloca.h
5727         * Makefile.in: added poptalloca.h
5729         * menu.c (create_menu): set minimum menu width to 20 characters as
5730         it used to be (this was part of David's patches but I haven't
5731         applied it yet).
5733 1999-08-01  David Martin  <dmartina@usa.net>
5735         * menu.c (create_menu, menubar_drop_compute, menubar_paint_idx):
5736         Discount '&' for hotkeys when checking menu widths to avoid the
5737         extra blank space.
5738         Moved this accounting from the drawing to the creating function.
5740         * widget.c: Translate History box tittle.
5742 1999-07-21  Norbert Warmuth  <nwarmuth@privat.circular.de>
5744         * popt.c, popt.h, poptconfig.c, popthelp.c, poptparse.c: updated
5745         to the version found in the popt module
5747         * features.inc: added report information for smbfs
5749 1999-06-01  Robert Brady  <rwb197@ecs.soton.ac.uk>
5751         * file.c (move_dir_dir): Give an error when an attempt is made to
5752         move an empty directory into itself.
5754 1999-06-24  smil@linuxfan.com
5756         * view.c (view_update_bytes_per_line, display): show correctly the
5757         offset of the file (full 8 digit), display offset in bold color
5759         (view_labels): use goto_addr instead of goto_line in hex mode
5761         (goto_addr): New function. Goto offset address in hex mode.
5763         * view.h: use unsigned long for hexedit cursor position in file
5765 1999-06-24  Norbert Warmuth  <nwarmuth@privat.circular.de>
5767         * menu.c (menubar_execute): Now needs an additional do_refresh in order
5768         to make layout changes visible.
5770 1999-06-01  Robert Brady  <rwb197@ecs.soton.ac.uk>
5772         * file.c (move_dir_dir): Give an error when an attempt is made to
5773         move an empty directory into itself.
5775 1999-06-22  Norbert Warmuth  <nwarmuth@privat.circular.de>
5777         * cmd.c (quick_view_cmd): Change panel when the file we want to
5778         view isn't in the current panel (prevents a "file not found"
5779         error).
5781         * menu.c (menubar_execute): De-activate the menubar previous to
5782         invoking the callback. This is needed to make change_panel in
5783         quick_view_cmd work (the activated menubar doesn't allow unfocus,
5784         i.e. dlg_one_down|up don't change anything).
5786         * view.c (do_view_init): improved error handling w.r.t quick view
5787         (mc used to dump core when the file to view couldn't be opened).
5789 1999-06-22  David Martin  <dmartina@usa.net>
5791         * view.c (display): added view_gotoxy's in order to make the gnome
5792         edition operational in hex mode.
5794 Fri Jun 18 11:29:56 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
5796         * user.c (user_menu_cmd): Allow national characters as hotkeys.
5797         Don't dump core when the menu file contains only empty lines
5799         * view.c (search, block_search): Use the correct column for the
5800         percent display while searching.
5802 1999-06-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
5804         * complete.c (complete_engine): Put an #ifndef HAVE_GNOME around
5805         the completion/query engine.  Make the Gnome version just beep
5806         instead.  We do not have the completion/query engine for Gtk.
5808 1999-06-09  Pavel Machek  <pavel@artax.karlin.mff.cuni.cz>
5810         * cmd.c (configure_panel_listing): no more code duplication
5812         * screen.c (panel_new): no more code duplication
5813         (set_panel_formats): warn user when he gives bogus format, move
5814         checks into set_panel_formats
5816 1999-06-01  Akira Higuchi  <a-higuti@math.sci.hokudai.ac.jp>
5818         * util.c (is_printable): in GNOME all characters are printable.
5820 1999-05-31  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5822         * main.c (handle_args): Handle --desktop-linksdir without using X
5824 1999-05-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5826         * treestore.c (should_skip_directory): Add fix from Wayne Roberts
5827         to actually acknowledge the settings of mc.global.
5829 1999-05-24  Brandon S. Allbery  <allbery@ece.cmu.edu>
5831         * subshell.c (pty_open_master): Added missing comma.p
5833 Mon May 17 07:37:12 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
5835         * subshell.c (pty_open_master): use getpt () if available to open
5836         the master side of the pty. getpt () is a glibc extension and is
5837         needed when glibc 2.1.x is used with a (linux) kernel without unix98
5838         style ptys (if there is no /dev/ptmx getpt falls back to bsd style
5839         ptys).
5841         * filegui.c (check_progress_buttons): Don't update the Gpm mouse
5842         cursor when we check for events. It causes a flickering cursor on a
5843         different virtual console.
5845 1999-05-12  Pavel Machek  <pavel@artax.karlin.mff.cuni.cz>
5847         * cons.saver.c (main): change cons.saver so it can be run without
5848         root privileges. It is well possible to run cons.saver with
5849         privileges only to /dev/vcsa: create new user and make vcsa's
5850         owned by that user instead of root.
5852         Distribution maintainers please take this text as idea of what you
5853         should do to make your system more secure.
5855 1999-05-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5857         * cmd.c (view_file_at_line): gmc_view never fails, so we handle
5858         that now.
5860 1999-04-29  Federico Mena Quintero  <federico@nuclecu.unam.mx>
5862         * chmod.c (chmod_cmd): Missing _ in _().
5863         (chmod_cmd): Added braces around nested if/else.
5865         * widget.c (is_in_input_map): Added braces around nested if/else.
5866         (listbox_remove_current): Likewise.
5868         * subshell.c (read_subshell_prompt): Likewise.
5870         * view.c (view_status): Likewise.
5872 Tue Apr 27 20:31:13 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
5874         * util.c (strip_home_and_password): Don't split the path in the
5875         middle of a directory, e.g. "/home/bofh" will not be translated to
5876         "~h" (fixes the bug reported by Alex Fortuna <alex@rdc.ru>)
5878 1999-04-25  Sergei Ivanov  <svivanov@pdmi.ras.ru>
5880         * find.c: The origin of the bug is in the function do_search (file
5881         find.c).  It limits the number of subdirectories to scan by the
5882         number stat.st_nlink-2, or infinite if st_nlink<2. On tar vfs,
5883         st_nlink is always 1, so it should be the second case.
5885         But before doing stat, do_search does opendir. And opendir on tar
5886         vfs (vfs_s_opendir in vfs/direntry.c) increases the st_nlink value
5887         in the stat data! So mc_stat called after mc_opendir on tar vfs
5888         returns st_nlink==2 instead of 1. This is interpreted as if the
5889         directory had no subdirs, thus subdirs are not searched in.
5891         Changing the order of calls to mc_stat and mc_opendir fixes the
5892         problem.
5894 1999-03-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5896         * setup.c (save_setup): Only save this if there is a current panel
5898 Wed Apr 21 21:47:15 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
5900         * ext.c (exec_extension): Use tempnam instead of tmpnam (AIX doesn't
5901         like the latter when compiled with -mthreads).
5903         * user.c (execute_menu_command): ditto.
5905 Wed Apr 21 20:40:38 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
5907         * Makefile.in: use MCCFLAGS and MCLIBS
5909 Wed Apr 21 20:19:45 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
5911         * key.c (get_modifier): Query the state of the modifier keys when
5912         running inside a terminal emulation under X11.
5914         * key.c (init_textmode_x11_support, done_textmode_x11_support): new
5915         functions, only used in the text edition. Connect to and disconnect
5916         from the X Server when DISPLAY is set.
5918         * key.h: added prototypes for the new functions
5920         * main.c (main): call (init|done)_textmode_x11_support
5922 Sat Apr 17 13:04:19 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
5924         * view.c (do_view_init): Enable viewing of files with negative
5925         st_size (This reverts parts of a patch I committed recently. Miguel
5926         provided a better fix for this issue).
5928 1999-04-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5930         * view.c (regexp_search): Use unsigned longs for all of the
5931         offsets here.  Fixes crash reported on bugtraq.
5933 1999-04-16  Federico Mena Quintero  <federico@nuclecu.unam.mx>
5935         * treestore.c (tree_store_save_to): Moved the functionality from
5936         tree_store_save() to here.
5937         (tree_store_save): Save the tree in the default location in an
5938         atomic fashion.
5939         (tree_store_load_from): Moved the functionality from
5940         tree_store_load() to here.
5941         (tree_store_load): Load the tree from the default location.
5943         * treestore.h (MC_TREE_TMP): Added a #define for the temporary
5944         name we'll use when saving the tree.  Moved the #defines from
5945         tree.h over to here.
5947         * main.c (main): Use tree_store_load() and tree_store_save().
5948         Removed the mc_tree_store_load/save() versions.
5950         * tree.c (load_tree): Use tree_store_load().
5951         (save_tree): Use tree_store_save().
5953 Fri Apr 16 07:51:42 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
5955         * wtools.c (message): Use g_vsnprintf instead of vsprintf.
5957 Fri Apr 16 07:50:59 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
5959         * view.c (do_view_init): Don't view files with negative file size.
5960         Added some error checking (I'm not sure whether this is needed).
5962 1999-04-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>
5964         * panel.h (WPanel): Added a drag_tree_row field to the WPanel
5965         structure.  This is used to keep track of the highlighted row in
5966         the tree for drag and drop.  Also, added drag_tree_timeout_id to
5967         hold the node expand timeout.  Also, added drag_tree_fe to hold
5968         the file_entry for the currently highlighted row in the tree.
5970 1999-04-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5972         * utilunix.c (my_system): Set up default signal handlers for
5973         children.
5975 Tue Apr 13 07:14:10 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
5977         * slint.c (getch): Quit MC when SLang_getkey returns an error. Looking
5978         at the code that's only the case when we read EOF from stdin.
5980         This fixes the problem where MC consumes a lot of cpu time while
5981         reading EOF from stdin in a tight loop. This situation arises when the
5982         terminal line/connection drops without MC being sent SIGHUP.
5984 Tue Apr 13 07:13:10 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
5986         * slint.c (SLang_input_pending2): don't store SLANG_GETKEY_ERROR (int)
5987         in the input buffer (char).
5989 1999-04-12  Andrew T. Veliath  <andrewtv@usa.net>
5991         * main.c (_do_panel_cd): If we are using GNOME, and the panel is a
5992         desktop panel, open up a new panel for the contents.
5994 1999-04-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>
5996         * tree.c (tree_start_search): Renamed from start_search() to avoid
5997         collisions with screen.c:start_search().
5999         * panel.h: Added prototype for start_search().
6001 1999-04-09  Rosanna Yuen  <rwsy@mit.edu>
6003         * screen.c (do_enter_on_file_entry): split GNOME version and
6004         non-gnome version.
6005         (parse_display_format): listen to the warning.
6007 1999-04-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6009         * treestore.c (tree_store_load): Do not load non-local file
6010         systems
6011         (tree_store_save): Do not save non-local file systems
6013 1999-04-07  Jonathan Blandford  <jrb@redhat.com>
6015         * screen.c (do_enter_on_file_entry): added a consistent behavior
6016         for GNOME stuff.
6018 1999-04-06  David Martin  <dmartina@usa.net>
6020         * info.c (text out of box and locale layout).
6022         * util.c: If gmc uses strftime() why mc doesn't?
6024         * view.c: a) Tune status line so it does fit in a Quick View Panel
6025         b) Let Hex View resize cleanly. I think it's fixed for panel
6026         re-split and SIGWINCH signal in xterm. gmc still fails. There was
6027         a tiny risk of division by zero when pressing F4 in a very small
6028         box. True hard work... Must try and check it.
6030 1999-04-05  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6032         * main.c (main): Call mc_tree_store_save() when the program
6033         terminates.
6035 1999-04-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6037         * find.c (setup_gui): Do not scroll horizontally.  Why does the
6038         CList behave like this?
6040         * setup.c: Save desktop information.
6042 1999-04-05  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6044         * cons.saver.c (main): dup2() may be interrupted; take this into
6045         account.  Do we need to fcntl() stderr, or is it enough to close()
6046         it before recreating it?
6048 1999-03-30  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6050         * dlg.c (dlg_run_done): Do not call the callback of a NULL current
6051         widget.
6053         * setup.h: Added missing prototype for setup_init().
6055         * filegui.c (check_progress_buttons): Added a missing return
6056         value.
6058         * dlg.c (remove_widget): Added a missing return value.
6060         * main.c: Removed the global directory_list variable.
6061         Removed the main_corba_register_server() function.
6063         * main.h: Removed the global run_desktop variable.
6065         * panel.h: Now the panel structure has a unique numerical ID used
6066         for session management.
6068         * screen.c (panel_new): Maintain a unique ID for each panel.
6070         * main.c (maybe_display_linksdir): Handle display of the desktop
6071         init dir here.
6072         (main): Call gnome_check_super_user().
6073         (init_corba_with_args): Call corba_init_server().
6075         * main.c (init_corba_with_args): Do CORBA initialization here.  Also
6076         removed the global force_activation option.
6078 1999-03-29  Jonathan Blandford  <jrb@redhat.com>
6080         * main.c (main): updated message.
6082 Sun Mar 28 23:52:08 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
6084         * util.c (is_printable): Character 155 is non printable even when
6085         full eight bit output is enabled (on the linux console 155 is
6086         interpreted as "ESC [").
6088 1999-03-26  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6090         Patch courtesy of John Bley (jbb6@acpub.duke.edu):
6092         * background.c (do_background): Use pid_t instead of int.
6094         * subshell.c (sigchld_handler): Likewise.
6096 1999-03-24  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6098         * Makefile.in: Use mcsrclibdir where appropriate.
6100 1999-03-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6102         * treestore.c (process_special_dirs): Free memory here.
6104         Fix test: Skip only "." and "..", before it could skip "?.".
6106 1999-03-22  David Martin  <dmartina@mailexcite.com>
6108         * wtools.c (real_input_dialog_help): Do a strncmp with the length
6109         of th same translated "Password:" string.
6111 Mon Mar 22 02:05:28 1999  Timur Bakeyev  <mc@bat.ru>
6113         * screen.c (file_entry_color): Dropped. Code went to file_compute_color.
6115         * screen (format_file): Add check, that avoids reported error, when
6116         long file list -> quick view -> brief file list gives core dump.
6118 1999-03-19  Jonathan Blandford  <jrb@redhat.com>
6120         * main.c (main): We don't want to restart if we hit cancel.
6122         * file.c (panel_operate): Ugly hack for GNOME.  We only treat the
6123         copy as if it were many files, and skip the only_one branch.
6125 1999-03-18  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6127         * utilunix.c (close_error_pipe): Inform parent of the return value
6128         of any command here.  This allows the desktop to launch a terminal
6129         only if it succeeded in mounting the directory.
6131 Thu Mar 18 16:09:09 1999  Timur Bakeyev  <mc@bat.ru>
6133         * panel.h, screen.c: Add an ability to center justify fields in the
6134         panel, in addition to left and right justification. Just for fun.
6135         Try =name in user format.
6137         * util.c (name_quote): Quote "~@^|;:". Hope, that's all :)
6139 1999-03-17  Jonathan Blandford  <jrb@redhat.com>
6141         * main.c (main): Put in a warning when run as root.
6143 1999-03-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6145         * boxes.c (symlink_dialog): Put this inside an "#ifndef
6146         HAVE_GNOME" since we now provide a nicer version of the dialog.
6148         * wtools.c (real_input_dialog_help): Removed unneeded #ifdef.
6150         * cmd.c (edit_symlink_cmd): Generate the title of the dialog after
6151         we have computed the source filename.
6152         (edit_symlink_cmd): Use g_strdup_printf() instead of g_strconcat()
6153         for better internationalization.
6155         * wtools.c: Removed unused function input_dialog_help_2().
6156         (real_input_dialog_help): Put this inside an "#ifndef HAVE_GNOME",
6157         because now the Gnome version implements its own pretty dialog.
6159 1999-03-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6161         * dlg.c (dlg_select_nth_widget): Handle the case where h->current
6162         points to NULL.
6164 1999-03-12  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6166         * file.c (erase_file): Here we need to mc_lstat(), not mc_stat().
6167         Since we use the resulting buf.st_size to update the progress, we
6168         need the size of unresolved links.  This also makes it consistent
6169         with screen.c:do_file_mark().
6171         * screen.c (select_item): Return immediately if this is a desktop
6172         panel.
6174 1999-03-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6176         * subshell.c (pty_open_slave): Glibc-2.1-based Linux kernels have
6177         grantpt() but they do lack SysV streams.  Handle this.  Noticed by
6178         Jakub Jelinek
6180 1999-03-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6182         * util.h: Added prototype for g_readlink().  Miggie boy should add
6183         prototypes when he adds public functions.
6185 1999-03-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6187         * utilunix.c (g_readlink): Fixed two bugs spotted by Morten
6188         Wellinder.  Boy, Morten has such a good eye!
6190 1999-03-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6192         * file.c (erase_dir): Erase metadata for directories as well.
6193         (erase_dir_iff_empty): Likewise.
6194         (copy_file_file): Delete/copy the metadata even for
6195         char/block/sock/fifo files.  Same thing for when copying symlinks.
6196         (copy_dir_dir): Delete/copy the metadata.
6197         (move_dir_dir): Delete/move the metadata.
6198         (recursive_erase): Delete the metadata.
6200 1999-03-08  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6202         * file.c (real_query_recursive): Removed an unused variable.
6204 1999-03-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6206         * utilunix.c (g_readlink): New function.  Wraps all the nonsense
6207         of readlink into a nice routine.
6209         * filegui.c: Support ui->ctx to be NULL, as file.c will set this
6210         to NULL for background operations.
6212         * background.c (do_background): Handle EINTR in dup2.
6214 Wed Mar 10 22:21:19 1999  David Martin  <dmartina@usa.net>
6216         * util.c (my_putenv): char* was used to store the length of a string
6218         * info.c (info_show_info): cast st_dev and st_ino when passing
6219         to printw.
6221 1999-03-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6223         * file.c (panel_operate): Always create the ctx->ui.  Federico,
6224         can you see if this change is correct from your point of view?
6226         * cmd.c (edit_symlink_cmd): Small fix to improve the messages
6227         printed.
6229 Tue Mar  2 22:54:50 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
6231         * util.c (name_quote): Quote '<' and '>'.
6233 Tue Mar  2 22:28:39 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
6235         * main.c (panel_clean_dir): New function: reset all counters of a
6236         WPanel and clean directory list.
6238         * various places: Use panel_clean_dir instead of clean_dir whenever
6239         a WPanel is available. This solves the problem reported by Enrico
6240         Scholz (screen refresh while panel reload with an old/now invalid
6241         panel->count).
6243 Mon Mar  1 00:18:48 1999  Timur Bakeyev  <mc@bat.ru>
6245         * mad.c: Tempnam() returns malloced buffer, so, free() it, not g_free().
6247 1999-02-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6249         * view.c (view_percent, view_update): Take an extra argument:
6250         update_gui, which controls whether we want to update the displayed
6251         region in the GUI version.
6253 1999-02-25  Jonathan Blandford  <jrb@redhat.com>
6255         * cmd.c (symlink_cmd): little change to handle the case when a
6256         desktop panel is passed in.
6258 1999-02-25  Owen Taylor  <otaylor@redhat.com>
6260         * fileopctx.h file.c: Moved recursive delete query
6261         dialog into gdialogs.c for GNOME.
6263 1999-02-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6265         * file.c: Moved FileCopyMode here (thanks to Wolfgang Scherer for
6266         pointing this out) and made it a typedef.
6268         * treestore.c (process_special_dirs): New function.
6269         (should_skip_directory): Load the settings from the global
6270         special.dirs file and from the
6272         * util.c: Test for glibc/linux and if so, do not use getwd, but
6273         getcwd as on this system it is better than popen ("pwd").
6275 1999-02-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6277         * setup.c: Declare extern int tree_panel_visible for the GNOME
6278         version.
6280 1999-02-17  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6282         * dir.c (if_link_is_exe): Made this function take in a directory
6283         argument as well -- the sought file may not be in the cwd, and
6284         file entries do not carry the directory the file refers to.
6286         * screen.c (do_enter_on_file_entry): Pass in the cpanel->cwd to
6287         if_link_is_exe().
6289 1999-02-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6291         * treestore.c (tree_store_rescan): Add code to skip scanning
6292         specially slow directories (/afs, /coda, /...).  It is of course,
6293         configurable.
6295         * setup.c: Export the profile_name setup routine.
6297 Tue Feb 16 21:21:32 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
6299         * popt.c: Compilation fix: on systems without setreuid use setuid.
6301 Tue Feb 16 21:18:08 1999  David Martin  <dmartina@usa.net>
6303         * achown.c: Make buttons fit in the (new) translated
6304         Advanced Chown dialog.
6306 1999-02-16  Alexander Savelyev  <fano@ham.kiev.ua>
6308         * subshell.c (exit_subshell): Use the size of the buffer, not
6309         sizeof of the pointer to the buffer.
6311 Sun Feb 14 02:59:09 1999  Timur Bakeyev  <mc@bat.ru>
6313         * utilunix.c (my_system): Fix the order of preferences, as setuid
6314         more desirable on BSD systems. Terminate execl[p]() with NULL, as
6315         this is formally correct.
6317 1999-02-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6319         * dir.c (do_load_dir): Added missing calls to tree_store_end_check.
6321         * find.c (add_to_list): Pass the data pointer as well.
6323 Fri Feb 12 06:36:58 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
6325         * utilunix.c (my_system): Compilation fix: on systems without
6326         setreuid use setuid.
6328 1999-02-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6330         * panel.h (WPanel): Removed unused field "corbadat".
6332 1999-02-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6334         * screen.c: Make delete key delete files.
6336         * dir.c (do_reload_dir): Add a couple of missing calls to tree_store_end_check.
6338 1999-02-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6340         * main.h: Added prototype for main_corba_register_server().
6342 1999-02-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6344         * view.c (search): Provide GNOME specific code for the search progress
6346         * treestore.c: Add a new hook system to hint a tree freeze/thaw.
6348         * setup.c: In the GNOME version, we do not show the dot files by default.
6350 1999-02-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6352         * file.c (copy_file_file): Add support for the GNOME metadata here.
6353         (move_file_file): Add support for the GNOME metadata here.
6355 1999-02-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6357         * treestore.c   (tree_store_add_entry): Use g_new0 to allocate the tree_entry.
6359         (tree_store_notify_add): Close, but no cigar.  The
6360         bug was deeper:  This list keeps names, not tree_entries.
6362 1999-02-07  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6364         * treestore.c (tree_store_notify_add): A tree_store_add_fn wants a
6365         string, not a tree_entry, so pass a string to it.
6367 1999-02-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6369         * treestore.c: Revert all of the stack changes.  Now the treestore
6370         is again non-re-entrant.  Being re-entrant was only covering up for
6371         bugs in other places.
6373         Now we postpone notifications for additions at
6374         tree_store_end_check, not before.
6376 1999-02-06  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6378         * treestore.c (tree_store_remove_entry): Removed unused code for
6379         base_sublevel computation.
6381 Sun Feb  7 06:11:48 1999  Timur Bakeyev  <mc@bat.ru>
6383         * Makefile.in: Change calls to xmkdir to mkinstalldirs - this is more
6384         GNU-like :)
6386         * xmkdir removed - we have mkinstalldirs.
6388 1999-02-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6390         * cmd.c (view_other_cmd): Do not use \r in translatable strings.
6392 1999-02-04  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6394         * widget.c (push_history): Only do check the history headings if
6395         the widget has a history entry bound to it.
6397 1999-02-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6399         * treestore.c (tree_store_start_check, tree_store_mark_checked,
6400         tree_store_end_check): Use a stack for check_name.  There are far
6401         too many instances that might call the end_check.
6403 Wed Feb  3 23:55:54 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
6405         * widget.c (history_put): set the access rights correctly when
6406         the history file is created initially. Don't save the history
6407         if we can't set the access rights.
6409 1999-02-01  Jonathan Blandford  <jrb@redhat.com>
6411         * setup.c: save we_can_afford_the_speed
6413 Wed Feb  3 22:27:04 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
6415         * util.c (strip_password): Extended to find the URL in the first
6416         parameter. The second parameter tells whether it should search the
6417         URL (indicated by known prefixes) in the first parameter or whether
6418         the first parameter is a URL without a prefix ("ftp://", "/#ftp:",
6419         "/#mc:").
6421         * main.c (directory_history_add): Strip the password (if any) from
6422         the freshly added value.
6424         * widget.c (push_history): ditto. There's a ugly special casing
6425         necessary for the network and ftp link dialogs (URLs are entered
6426         with out prefix).
6428         * widget.c (history_put): Restrict read and write access to the
6429         history file to the owner (Just in case I forgot to strip passwords
6430         somewhere).
6432 Mon Feb  1 00:43:15 1999  Timur Bakeyev  <mc@bat.ru>
6434         * screen.c (to_buffer): Code of the function rewritten, as a side
6435         effect added J_CENTER (who needs this?). Also, justification flags
6436         got twins with _FIT suffix, which tries to fit name in the field with-
6437         out truncation (uses name_trunc()). This unifies behavior of CList
6438         variants and text-bases widgets.
6440         * screen.c: Remove HAVE_GNOME wrappers around string_file_[name|owner|
6441         group]() - not necessary, to_buffer() doing this work.
6443 Sun Jan 31 19:49:00 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>
6445         * hotlist.c (add_new_entry_input, add_new_group_input): Make the
6446         quick_widget arrays static and various changes needed because they
6447         are now static. add_widgets_i18n recalculates button positions
6448         which get lost when the quick_widget arrays are non static.
6450         * screen.c (to_buffer): NULL terminate string when using strncpy
6452         * setup.c: Save and restore new option ftpfs_first_cd_then_ls.
6454 1999-01-31  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6456         * file.c (panel_operate_generate_prompt): Removed the cmd_buf
6457         argument, since it is a global variable anyway (this function is
6458         only called once from file.c, and the global cmd_buf was being
6459         passed in).
6460         (panel_operate): Do not pass cmd_buf to
6461         panel_operate_generate_prompt().
6462         Thanks to Alexander Savelyev <fano@vcom.kiev.ua> for noticing this.
6464 1999-01-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6466         * achown.c (XTRACT): Add missing call to _().
6468 1999-01-26  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6470         * panel.h: Fixup #includes.
6472 1999-01-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6474         * cons.saver.c: Removed glib from the suid app
6476 Wed Jan 27 03:17:44 1999  Timur Bakeyev  <mc@bat.ru>
6478         * Converted memory management to Glib. Now we use g_new()/g_malloc()/
6479         g_strdup()/g_free() routings. Also, copy_strings() replaced by
6480         g_strconcat(), strcasecmp() -> g_strcasecmp(),and sprintf() by
6481         g_snprintf().
6483         * Some sequences of malloc()/sprintf() changed to g_strdup_printf().
6485         * mad.[ch]: Modified, to work with new GLib's memory management. Fixed
6486         a missing #undef for tempnam, which caused dead loop. Add several new
6487         functions to emulate GLib memory management.
6489         *main.c, mad.[ch]: Add a new switch  "-M", which allows to redirect MAD
6490         messages to the file.
6492         * util.[ch], utilunix.c: Modified, deleted our variants of strcasecmp()
6493         and strdup() - we have g_ equivalences. Remove get_full_name() - it is
6494         similar to concat_dir_and_file(). Some other tricks with g_* functions.
6496         * global.h: Modified, extended. Now it is main memory management include -
6497         i.e. all inclusions of <stdlib.h>, <malloc.h>, <glib.h>, "fs.h", "mem.h",
6498         "util.h" and "mad.h" done there. This eliminates problem with proper or-
6499         der of #include's.
6501         * All around the source - changed order of #include's, most of them gone
6502         to global.h (see above), minor changes, like "0" -> NULL in string func-
6503         tions.
6505 1999-01-25  Alexander Savelyev  <fano@vcom.kiev.ua>
6507         * ext.c (exec_extension): Always use /bin/sh.  Not the user
6508         shell.
6510 1999-01-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6512         * treestore.c (tree_store_remove_entry_remove_hook): Missing
6513         function.  To remove a notification hook.
6514         (tree_store_notify_add, tree_store_add_entry_add_hook,
6515         tree_store_remove_entry_add_hook): New functions to notify of
6516         additions to the treestore.
6518         * tree.c (tree_destroy): Remove the callback hook when we go
6519         away.
6521 1999-01-21  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6523         * option.c (init_configure): One line patch from Alexander
6524         Savelyev to translate all strings.
6526 1999-01-18  Pavel Machek  <pavel@artax.karlin.mff.cuni.cz>
6528         * file.c: Killed operation_names: they seemed same to op_names to
6529         me, and compilation failed on them (initializer element is not a
6530         constant). Maybe Miguel tagged too many strings for localization?
6531         :-).
6533         * ext.c: we use /tmp in "creative" way: creating there file and
6534         then executing it. I do not see how it is needed. Marked with FIXME.
6536 Thu Jan 21 01:11:24 1999  Timur Bakeyev  <mc@bat.ru>
6538         * mad.[ch], util.[ch]: commit changes, that allow coexist (temporary)
6539         GLib'ed VFS and not still converted MC itself.
6541 1999-01-20  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6543         * treestore.c (tree_store_start_check): Use mc_stat(), not stat().
6544         (tree_store_rescan): Use mc_lstat(), not lstat().
6546 Tue Jan 19 05:28:04 1999  Timur Bakeyev  <mc@bat.ru>
6548         * ext.c, filenot.c, main.c, screen.c, treestore.c: add missed #include's
6549         and moved glib.h so, it follows "fs.h", but precedes "util.h" and "mad.h".
6550         There were conflicts during compilation with MAD and GLibed vfs.
6552 Mon Jan 18 21:23:29 1999 Paul Sheer  <psheer@obsidian.co.za>
6554         * cmd.c: update_panels (UP_OPTIMIZE, UP_KEEPSEL); instead
6555         of reread after editing a file.
6557 1999-01-18  Arturo Espinosa  <arturo@nuclecu.unam.mx>
6559         * file.c: Use N_ instead of _ for some of Miguel's last tags.
6561 1999-01-18  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6563         * file.c: Tag some more strings for localization.
6565 1999-01-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6567         * cmd.c (mkdir_cmd): Please, check your pointer usage.
6569 Thu Jan 14 13:18:58 1999  Timur Bakeyev  <mc@bat.ru>
6571         * screen.c (string_file_[owner|group]): Workaround the fact, that some
6572         systems have user and group names greater than 8 symbols. Now we trun-
6573         cate them.
6575 1999-01-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6577         * treestore.c (tree_store_load): Use g_return_val_if_fail(), not
6578         g_return_if_fail().
6579         (tree_store_rescan): Added parentheses to clarify || and &&.
6581         * tree.c (tree_add_entry): Removed unused variable.
6583         * treestore.h: Added prototype for tree_store_start_check_cwd().
6585 1999-01-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6587         * view.c (search): Missing condition.
6589         * treestore.c (tree_store_opendir): Simplistic fix.  This is not
6590         quite correct.
6592 1999-01-12  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6594         * panelize.h: Added prototype for do_external_panelize().
6596         * screen.c (move_selection): Unused variable fixes for HAVE_X.
6598         * boxes.c (configure_vfs): Removed an unused variable.
6600 1999-01-12  Jonathan Blandford  <jrb@redhat.com>
6602         * cmd.c (mkdir_cmd): now mkdir_cmd will accept relative, and
6603         absolute directories.
6605 Tue Jan 12 13:40:46 1999  Timur Bakeyev  <mc@bat.ru>
6607         * gtkedit(syntax.c): Fixed a typo in Pascal syntax.
6609 1999-01-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6611         * treestore.c (tree_store_save): Add signature for version 2.0 of
6612         the file format.
6614 1999-01-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6616         * file.c (do_file_error): Made static.
6617         (query_recursive): Have cases for background/foreground operation.
6618         (do_file_error): Likewise.
6620         * background.c: Removed the bg_ctx global, since now all the
6621         contexts are carried around by the functions that actually need
6622         them.
6624         * fileopctx.h (FileOpContext): Moved the op_preserve field to here.
6626         * filegui.c (file_mask_dialog): Removed the ui assertion, since
6627         now the op_preserve field is kept in the main context structure.
6629 1999-01-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6631         * util.c: Provide workarounds for Linux kernel bug.
6633 Sun Jan 10 02:18:33 1999  Timur Bakeyev  <mc@bat.ru>
6635         * screen.c(string_file_size): Fixed (incorrect?) printing of device num-
6636         bers. Major should never be greater 255.
6638 1999-01-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6640         * dir.c (handle_dirent): Use the tree_store now.
6641         (handle_path): ditto.
6642         (do_load_dir): ditto.
6643         (do_load_dir): ditto.
6644         (do_reload_dir): ditto.
6645         (do_reload_dir): ditto.
6647         * treestore.c (tree_store_save): New file
6648         (encode): New routine used to encode pathnames in a safe way that
6649         are saved to the mc/.tree file.
6650         (decode): New routine, used to decode the pathnames we encoded in
6651         the step above.  Ain't love grand?
6653         * tree.c (load_tree): Kill dead code.
6655         Moved all of the tree store information into a new file:
6656         treestore.  To be reused by the Gnome code.
6658 1999-01-08  Ilya Zakharevich  <ilya@math.ohio-state.edu>
6660         * popt.c: OS/2 and Windows NT portability fix.
6662 1999-01-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6664         * file.c (panel_operate_flags): Only show this dialog box if it is
6665         a copy or move operation
6667 1999-01-06  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6669         * background.c (do_background): Make it a bit saner.  Now we store
6670         a per-child-process FileOpContext structure.
6672         * fileopctx.h: New file with declarations for the file operation
6673         context structure.
6675         * fileopctx.c (file_op_context_new): New function to create a file
6676         operation context with the default file mask values.
6677         (file_op_context_destroy): New function to destroy a file
6678         operation context and its associated UI, if appropriate.
6680         * filegui.h: Use complete prototype for fmd_init_i18n().
6682         * filegui.c (FileOpContextUI): New structure that describes the UI
6683         and internal data for file operation contexts in the text mode
6684         version.
6685         (file_op_context_create_ui): Renamed from create_op_win() and
6686         made it use a context instead of global variables.
6687         (file_op_context_destroy_ui): Likewise, renamed from
6688         destroy_op_win().
6689         (fmd_widgets): Removed an #ifdef HAVE_XVIEW bit and moved the
6690         initialization of the result pointers to file_mask_dialog(), as we
6691         need to use the pointers to the fields inside the file op context now.
6692         Made all the functions use a file operation context.
6693         (file_mask_dialog): Always call fmd_init_i18n(); it will take care
6694         of idempotence by itself.
6695         (fmd_init_i18n): Now the code that makes sure this function is
6696         only called once is here.
6698         * cmd.c (check_for_default): Make it use a file operation context.
6699         * tree.c (tree_copy): Likewise.
6700         (tree_move): Likewise.
6701         (tree_rmdir_cmd): Likewise.
6703         * file.c: Removed file_progress_replace_progress and
6704         file_progress_replace_filename -- they are only used in filegui.c
6705         as part of the UI for the file operation context.
6706         (panel_operate_generate_prompt): Made static.
6707         (panel_operate_generate_prompt): Always call fmd_init_i18n(); it
6708         will take care of idempotence by itself.
6709         (panel_operate): Removed the panel_operate_def() function, and
6710         made panel_operate() take an extra "ask_user" argument.
6711         (query_recursive): Made static.
6713         * background.c (background_attention): Made static.
6714         (register_task_running): Made static.
6715         (do_background): Now takes a file operation context as an
6716         argument.  It stores the pid of the child there.
6718         * Makefile.in: Added fileopctx.[ch].
6720 1999-01-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6722         * widget.c (listbox_new): Assign l->height.
6724 1999-01-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6726         * main.c (update_one_panel_widget): GNOME version does the panel
6727         update here (this is an optimization, as we do not want do_refresh
6728         to do anything.
6730         * dialog.c (do_refresh): Remove this optimization as it was
6731         disabling the repainting of the screen contents.
6733         * hotlist.c (done_hotlist): The hotlist might not be loaded
6734         anymore.
6736 1999-01-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6738         * widget.c (listbox_new): Under GNOME, height of the listbox might
6739         be less than zero (due to LINES/COLS being set to zero there).  So
6740         for bow, set the height to 1.  This needs to be properly computed
6741         in x_create_listbox.
6743         * main.c (main): Do not load the hotlist here anymore.   We
6744         auto-load it on the setup(?).
6746 1998-12-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6748         * main.c (main): Removed old, unused code.
6749         (setup_panels_and_run_mc): Register the corba server here, not
6750         before, as the program is not ready to accept any commands yet.
6752         * screen.c (panel_set_sort_order): New routine to set the sorting
6753         mode.
6754         (panel_re_sort): New routine to force a resort on a panel.
6756         * main.c (sort_cmd): Use the new routines.
6758 1998-12-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6760         * cmd.c (check_for_default): Make this compile.
6762 Tue Dec 29 22:25:34 1998  Timur Bakeyev  <mc@bat.ru>
6764         * mountlist.c: Compress all xBSD systems to one line and add check
6765         for MOUNT_UFS - it seems, that 4.4BSD and 4.4BSD2 systems different-
6766         ly handles FS names. (currently affects BSDI and FreeBSD)
6768 Tue Dec 29 16:34:02 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
6770         * file.c (progress_update_one): Ignore files in subdirectories
6771         when panel totals haven't been computed.
6773         (erase_dir, erase_file): update progress bar (i.e. make it work
6774         for OP_DELETE).
6776         (panel_operate_flags): Don't compute panel totals for OP_MOVE.
6777         When moving files on the same filesystem computing totals might
6778         last much longer than the actual move operation.
6780         (various places): Adaptations for the above changes.
6782 Mon Dec 28 22:15:43 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
6784         * slint.c (try_alloc_color_pair): Changed hardcoded values into
6785         defines.
6787 Mon Dec 28 20:22:59 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
6789         * color.c, text.c: Added color "stalledlink" which is used for
6790         stalled symbolic links. Formerly "viewunderline" was used for
6791         this (IMO bad because function and name didn't match).
6792         According to the man page the color keyword for executable files
6793         is `executable' and not `execute' -- changed.
6795         * color.c, color.h: When using SLang some color indexes are not
6796         freely choosable (DEFAULT_COLOR clashed with A_BOLD_REVERSE).
6797         Solved by adding holes in color_map.
6799         * find.c (do_search): fixed possible memory leak
6801 Sat Dec 26 09:53:39 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
6803         * layout.c: include sys/ioctl.h to get definition of TIOCGWINSZ
6804         (fixes problem with screen resize).
6806 Fri Dec 25 20:19:57 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
6808         * file.c (panel_operate_flags): Don't change file progress count and
6809         size twice for every file.
6811         (panel_compute_totals): Initialize return values to zero before
6812         calculating anything.
6814         (panel_operate_def, panel_operate): return a value
6816 Thu Dec 24 19:00:05 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
6818         * screen.c (recalculate_panel_summary): new function which recalculates
6819         the summary information for the mini-status.
6821         * screen.c (panel_reload): use recalculate_panel_summary
6823         * screen.c (do_file_mark): Honor that dirsizes computed is now a
6824         per entry flag.
6826 Thu Dec 24 18:53:16 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
6828         * option.c: Added Compute Totals to the configuration dialog.
6830         * file.c (compute_dir_size): made non static
6832         (panel_operate_flags): Don't compute directory sizes if verbose
6833         operation are off.
6835 Thu Dec 24 18:42:52 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
6837         * cmd.c (dirsizes_cmd): Rewritten to use compute_dir_size as suggested
6838         by Miguel, i.e. get rid of du. Now the dirsizes_cmd honors a
6839         selection and computes sizes only for marked directories. Possible
6840         improvement: add a dialog (or C-C?) to abort computation.
6842         * dir.h (file_entry), panel.h (WPanel): Made the dirsizes computed
6843         flag a per file flag.
6845         * dir.c, find.c, panelize.c, screen.c: Adapted to new file_entry and
6846         WPanel structure.
6848         * features.inc: Deleted DUSUM information
6850         * mc.hlp: remade because of changes in doc/mc.1.in
6852 1998-12-22  Jonathan Blandford  <jrb@redhat.com>
6854         * file.c: add a HAVE_GNOME only function
6856 Mon Dec 21 22:39:35 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
6858         * mountlist.c: Define xBSD on FreeBSD.
6860         * main.c (parse_an_arg): New function, popt callback. Option
6861         parsing in gmc was broken. The gnome*_init_with_popt_table free
6862         the option tables and gmc tried to use the option tables later.
6864         * main.c (handle_args): In the Gnome edition don't parse the
6865         options a second time.
6867         * boxes.c (configure_vfs), setup.c: Deleted obsolete options.
6868         tar.gz files are now always unzipped to a temporary file on disk.
6870 Mon Dec 21 14:28:55 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
6872         * filenot.c (my_mkdir_rec): Someone broke this completely by deleting
6873         a line. Funny things happen if you use an already freed pointer.
6874         Improved error handling: try to make directories recursively until
6875         mkdir succeeds or fails with errno != ENOENT. Now you will get the
6876         correct error message when you don't have permission to create a
6877         directory.
6879         * mountlist.c: Deleted function prototypes for strdup and strstr,
6880         they might conflict with definitions in the system header files.
6882 Wed Dec 16 14:41:15 1998  Paul Sheer  <psheer@obsidian.co.za>
6884         * gtkedit.c, editwidget.c: gnome selection now works with the
6885         editor.
6887 Wed Dec 16 06:27:00 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
6889         * screen.c (Xtry_to_select): Don't select a similar file when
6890         "name" can't be found in the panel (when deleting files the
6891         selection jumped from the deleted "file" to a directory which
6892         started with the same character as "file", annoying).
6893         Strip known vfs suffixes from "name" before trying to select
6894         (I think Timur made this suggestion a few months ago). Know the
6895         vfs is mature enough to do this.
6897 1998-12-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6899         * dir.c (link_isdir): Remove unused variable.
6901 Sun Dec 13 18:35:05 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
6903         * screen.c (panel_reload): Don't set panel->selected to zero here,
6904         keep it's value if possible or set it to panel->count - 1 (I disliked
6905         the jumping cursor when deleting files).
6907 1998-12-11  Michael Fulbright  <msf@majestic.labs.redhat.com>
6909         * file.c (panel_operate_generate_prompt): Changes the text
6910         for GNOME dialogs.  --jrb
6912 1998-12-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6914         * main.c (try_to_select): We do not need to select the item
6915         manually in this case, as the X code will do this for us.
6917 Fri Dec 11 00:05:50 1998 Paul Sheer  <psheer@obsidian.co.za>
6919         * syntax.c, slint.c, color.c, color.h: editor now has its
6920         own color configuration so you can set editor background
6921         colors with MC_COLOR_TABLE.
6923 1998-12-10  Paul Sheer  <psheer@obsidian.co.za>
6925         * syntax.c: perl syntax highlighting. syntax highlighting
6926         bug fixes for python and sh.
6928         * edit.c: new method of finding line offsets from line
6929         number (for cooledit for python stuff).
6931 Mon Nov 30 21:10:30 1998  Pavel Machek  <pavel@bug.ucw.cz>
6933         * file.c (copy_file_file): minor code beatifying: replace goto's
6934         with while loops (it is both shorter and nicer :-)
6935         (panel_operate): hopefully done WANT_STALE_DATA right. We really
6936         should kill ftpfs_hint_reread hack soon.
6938         * cmd.c (dirsizes_cmd): report error if you are on non-local
6939         filesystem. (As opposed to silently failing.)
6941 1998-12-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6943         * screen.c (panel_reload): Set panel->selected to zero here, this
6944         will at least guarantee that we do not try to fetch anything
6945         outside of bounds.
6947         * main.c: The bar2 is gone as well.
6949 Tue Dec  8 19:19:39 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
6951         * cmd.c (dirsizes_cmd): Fixed possible buffer overflow
6953 1998-12-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6955         * screen.c (do_enter): Return the value from this.
6957 1998-12-06  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6959         * dir.c (link_isdir): Fetch the information from
6960         file->f.link_to_dir, since we already have it.
6962         * dir.h (file_entry): Removed the `cache' field in this structure,
6963         as it was only used for the deprecated Xview version.
6964         Also, removed the `exists' field, as it was not being used anywhere.
6966         * dir.c: Removed all occurrences of file_entry->cache.
6968         * find.c: Removed all occurrences of file_entry->cache.
6970         * panelize.c: Removed all occurrences of file_entry->cache.
6972         * screen.c (do_enter_on_file_entry): New public function that
6973         implements the functionality in do_enter(), but based on a file
6974         entry rather than on a panel.
6975         (do_enter): Use do_enter_on_file_entry() with the selection of the
6976         panel as an argument.
6978 1998-12-04  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6980         * cmd.c, tree.c: Updated to the new file.c api.
6982         * file.c: (copy_file_file, copy_dir_dir, move_file_file,
6983         move_dir_dir): Updated to work with the new updating stuff.
6985         * setup.c: New configuration option to compute the totals to be
6986         transfered.
6988         * file.c (compute_dir_size, panel_compute_totals): New routines to
6989         compute the total amount of information that is going to be
6990         transfered.
6992 1998-12-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6994         * ext.h: GNOME edition uses a different set of .ext files.
6996         * lib/mc-gnome.ext.in: New file with GNOME-specific bindings.
6998 1998-12-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7000         * GNORBA integration.  We now produce two binaries: gmc and
7001         corba-gmc (that way, I don't interfere with other's work).
7003         * Added prototypes, made private functions static, clean up
7004         various silly warnings.
7006         * main.c (main): Removed crufty init_sigfatal code.
7008         * cmd.c (do_link): More slang dependencies are fixed for the X
7009         ports.
7011         * keys.h (enum): Moved key definitions here.
7013         * tty.h: Move towards slang freedom for the GNOME port.
7015 1998-12-01  Jonathan Blandford  <jrb@redhat.com>
7017         * file.c (panel_operate_generate_prompt): moved from filegui.c
7019 1998-11-30  Federico Mena Quintero  <federico@nuclecu.unam.mx>
7021         * panel.h (WPanel): Added the missing tree/pane/view_table fields
7022         to the Gnome part of the structure.
7024 1998-11-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7026         * cons.saver.c (main): Make sure stderr is always valid.
7027         (main): Also check that stderr_fd is not -1.
7029 Wed Nov 25 22:16:19 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
7031         * cmd.c (dirsizes_cmd): Quote characters with a special meaning
7032         when passing it to du.
7034 1998-11-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>
7036         * dlg.c (dlg_try_hotkey): Removed unused declaration of input_event.
7037         (dlg_key_event): Return 1 if handled the tab key.
7039         * filegui.h: Added prototypes for file_progress_show_{source,target,deleting}().
7041 Sun Nov 22 22:30:50 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
7043         * autogen.sh: replaced "cat *.m4" with a call to aclocal. Concatenate
7044         mc-aclocal.m4 and gettext.m4 to acinclude.m4. The other way round
7045         would have been to add three more m4 files to the replaced cat line
7046         (including cond.m4 from automake-1.3b).
7048         Fixed OBJ_DIR handling.
7050 Sun Nov 15 00:37:58 1998  Pavel Machek  <pavel@bug.ucw.cz>
7052         * mad.c (mad_tempnam): needed wrapper for tempnam added
7054 1998-11-17  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7056         * dlg.c (destroy_dlg): Do not refresh.
7058         * filegui.c: New file.  We keep all of the user interface code for
7059         the text edition in this file now.  This should be a per-GUI port
7060         file.
7062 1998-11-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
7064         * panel.h (WPanel): Instead of the "#ifdef GNOME" mess in the
7065         WPanel structure, we now have a single opaque pointer to UI data,
7066         called port_ui.  GUI stuff specific to each port should be here.
7067         This is a work in progress.
7069 1998-11-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>
7071         * setup.c: Removed the icons_snap_to_grid and
7072         want_transparent_{icons,text} options.
7074 Thu Nov  5 12:10:10 1998  Pavel Machek  <pavel@atrey.karlin.mff.cuni.cz>
7076         * file.c (panel_operate): check for null pointer before passing it
7077         to mc_setctl
7079 Wed Nov  4 17:51:43 1998  Pavel Roskin  <pavel_roskin@geocities.com>
7081         * src/findme.h: added from popt-1.2 by RedHat
7083         * src/Makefile.in: appropriate changes to use new popt
7085 Sun Nov  1 20:59:05 1998  Pavel Machek  <pavel@bug.ucw.cz>
7087         * file.c (erase_file): translated goto into while loop (it is both
7088         shorter AND cleaner)
7090         * subshell.c (feed_subshell): do NOT print anything if we get
7091         errors/eofs from read(subshell) - this fixes (or at least hides)
7092         nasty bug where typing "exit" on mc prompt prints lots of garbage
7093         and falls into infinite loop. Someone with better knowledge should
7094         read feed_subshell(), and make it handle errors properly. (Why do
7095         we ignore EIO for example?)
7097 Sun Oct 18 22:56:17 1998  Pavel Machek  <pavel@bug.ucw.cz>
7099         * view.c: we now rely on sfs to do file decompressing for us. That
7100         has advantage of displaying #ugz at first line, so user knows what
7101         we are doing behind his back
7103         * view.c: fix indentation, fallback to read whole file if mmap fails.
7105 1998-11-01  Federico Mena Quintero  <federico@nuclecu.unam.mx>
7107         * setup.c: #ifdef'ed out stuff in the menus that will get changed
7108         as I rewrite the desktop part.
7110 1998-10-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7112         * layout.c (print_vfs_message): Use g_snprintf instead of
7113         vnsprintf.
7116 1998-10-30  Sung-Hyun Nam  <namsh@lgic.co.kr>
7118         * color.c, slint.c: support transparent background if user use
7119         'default' keyword for background color.
7121 Mon Oct 26 00:31:53 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
7123         * configure.in, Make.common.in: Split CPPFLAGS into CPPFLAGS and
7124         MCCPPFLAGS. The last one contains references to variables which are
7125         not available in every Makefile.in (namely intl/Makefile.in). Without
7126         the split `-I ' was passed to the compiler (the compiler on DU 4.0
7127         interprets -I as "don't search include files in /usr/include").
7129 Thu Oct 22 20:41:50 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
7131         *  configure.in (subshell): Don't define inline to be empty
7132         when compiling with non-gcc compiler. AC_C_INLINE (invoked in
7133         AM_GETTEXT_GNU) already defines inline if necessary.
7135 Thu Oct 22 20:41:16 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
7137         * panelize.c (do_external_panelize): Not zeroing some fields
7138         in cpanel led sometimes to segfaults.
7140 Thu Oct 22 20:31:17 1998  Pavel Roskin  <pavel_roskin@geocities.com>
7142         * lib/mc.ext.in: *.jar and *.JAR treated like *.zip and *.ZIP
7144 Fri Oct 16 12:10:56 1998  Pavel Machek  <pavel@atrey.karlin.mff.cuni.cz>
7146         * cmd.c (quick_chdir_cmd): you must check for return code of
7147         do_cd(). (Fixed error for here, but more such bugs are present in
7148         src/ tree. Or maybe move error checking into do_cd?)
7150         * command.c: warn user if he is pressing enter while on non-local
7151         filesystem. (Prev. behavior was fail silently to do anything,
7152         which is _bad_.)
7154 Mon Oct 12 22:47:53 1998  Pavel Machek  <pavel@bug.ucw.cz>
7156         * file.c (copy_file_file): MCCTL_SETREMOTECOPY is no longer used
7158         * file.c (copy_file_file): do_reget is now correctly done using
7159         open()/lseek() pair
7161 Wed Oct  7 22:20:37 1998  Pavel Machek  <pavel@bug.ucw.cz>
7163         * file.c: Ask user if (s)he wants to delete incomplete file
7165 Sun Oct 11 20:21:20 1998  Peter Kleiweg  <kleiweg@let.rug.nl>
7167         * mfmt.c (main): When there are an even number of empty lines
7168         between messages, all goes well, but when the number of empty
7169         lines between messages is odd, the program fails.
7171 Sun Oct 11 20:11:16 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
7173         * setup.c: Option ftpfs_use_unix_list_options was saved from
7174         and restored to the wrong variable (ftpfs_use_passive_connections).
7176 Mon Oct  5 21:33:14 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
7178         * screen.c (parse_display_format): Don't dereference NULL pointer
7179         when format string is an empty string.
7181 Mon Oct  5 19:59:56 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
7183         * main.c (translate_url_to_new_syntax): Translate ftp:// to an
7184         absolute path instead of a relative path (fix to "hotlist" bug
7185         reported by Andrej). This means we drop the "return to last dir"
7186         feature for ftpfs (when leaving ftpfs with ".." returns to the
7187         directory visited before entering the ftpfs).
7189 Sat Oct  3 00:54:23 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
7191         * gtkedit/Makefile.in (EDITOBJS): removed one wrong \\ (line
7192         continuation)
7194 Thu Oct  1 18:43:34 1998  Pavel Roskin  <pavel_roskin@geocities.com>
7196         * file.c: Commented out search for egrep because execvp() does
7197         it itself
7199         * utilunix.c: vfs_uid should not be used if VFS is disabled
7201 Tue Sep 29 17:53:56 1998  Pavel Machek  <pavel@atrey.karlin.mff.cuni.cz>
7203         * main.c: removed stupid reference to {sfs,extfs}_which
7205         * screen.c: fixed highlighting to go for longest match if it does
7206         not find exact match. This is so that it works well with vfs (and
7207         needs _NO_ knowledge about vfs layer).
7209 Tue Sep 29 14:02:56 1998  Pavel Machek  <pavel@atrey.karlin.mff.cuni.cz>
7211         * layout.c (print_vfs_message): fixed buffer overrun by
7212         vsnprintf. Unfortunately I have no clue how to do this portably.
7214 Tue Sep 29 11:42:32 1998  Pavel Roskin  <pavel_roskin@geocities.com>
7216         * setup.c: Corrected code which prevents using icon view by
7217         ports which don't support it
7219 Mon Sep 28 21:55:13 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>
7221         * find.c: Changed hotkey of the continue-button (both Chdir and
7222         Continue used `C').
7224         * Makefile.in: search config.status in builddir and not in rootdir,
7225         i.e. make it compile for builddir != srcdir
7227 Wed Sep 23 14:06:44 1998  Pavel Machek  <pavel@atrey.karlin.mff.cuni.cz>
7229         * src/file.c: Made file.c use new O_LINEAR mode (so copying from
7230         ftp works nicely, again)
7232 Fri Sep 18 14:15:43 1998  Pavel Roskin  <pavel_roskin@geocities.com>
7234         * src/mad.c: All messages are sent to stderr and terminate with \r\n
7236         * src/hotlist.c: Harmless memory leak fixed
7238         * xv/Makefile.in, xv/xvmain.c, xv/xvscreen.c: Minor fixes to
7239         make compilation of the XV port possible (currently without
7240         viewer).
7242 Thu Sep 17 07:32:23 1998  Norbert Warmuth  <k3190@fh-sw.de>
7244         * Makefile.in: After creating symlinks invoke another instance of
7245         make to build libvfs.a. Otherwise make will not know how to build
7246         the object files if symlinks have been created.
7247         Added target cleansourcelinks (invoked with make distclean).
7249 Tue Sep 15 22:41:24 1998  Paul Sheer  <psheer@obsidian.co.za>
7251         * edit.c, editwidget.c, gtkedit.c: fixed segfault when trying to
7252         edit a non-file under gmc.
7254 Tue Sep 15 21:52:00 1998  Norbert Warmuth  <k3190@fh-sw.de>
7256         * mc.hlp, doc/mc.1.in, doc/mc.sgml: updated my EMail address
7258 Tue Sep 15 20:51:42 1998  Norbert Warmuth  <k3190@fh-sw.de>
7260         * setup.c: save and restore new global variable/option
7261         ftp_use_unix_list_options
7263 Tue Sep 15 01:02:34 1998   Paul Sheer  <psheer@obsidian.co.za>
7265         * gtkedit: Directory added. This directory contains all the editor
7266         code modified to work with gnome. Mcedit now works properly under
7267         gnome with a slightly reduced set of features.
7269         * gscreen.c gscreen.h screen.c: Modified to respond to F4 on a file
7270         and start the new gtkedit internal editor.
7272 1998-09-14  Norbert Warmuth  <k3190@fh-sw.de>
7274         * file.c (move_dir_dir): Fixed severe bug reported by Andrew Pechenov
7275         <zx80@demo.ru> (losing files when moving directories cross filesystem
7276         boundaries): make sure erase_list is emptied always not only when we
7277         deleted files.
7279 Sat Sep 12 02:59:43 1998  Timur Bakeyev  <mc@bat.ru>
7281         * screen.c: Xtry_to_select() Remove extfs hack to the main.c. Change
7282         for() cycle to the x_basename() call (Thanks to Pavel Roskin).
7283         Add (key_callback) do_enter() to prevent warnings.
7285         * main.c: Rename cd_try_to_select() to the get_parent_dir_name(). Now
7286         it process VFS postfixes too. Reduced number of loops against prev hack.
7288 Fri Sep 11 15:27:59 1998  Pavel Machek  <pavel@ucw.cz>
7290         * screen.c: make cd .. from extfs file highlight it
7292 Tue Sep  8 13:10:32 1998  Pavel Roskin  <pavel_roskin@geocities.com>
7294         * autogen.sh: Don't destroy aclocal.m4 if "macros" directory
7295         is missing
7297         * layout.c: Use stdout instead of stderr in set_hintbar()
7299 Mon Aug 31 12:40:29 1998  Pavel Machek  <pavel@ucw.cz>
7301         * cmd.c: added view_file_cmd which asks user which file to view -
7302         _very_ useful with vfs (now you can browse web with mc: try
7303         /#url:http:||atrey.karlin.mff.cuni.cz|~pavel#uhtml)
7305 Thu Aug 27 19:52:45 1998  Pavel Roskin  <pavel_roskin@geocities.com>
7307         * Make.common.in: Don't define VERSION anymore
7309         * configure.in: this is the right place for VERSION definition
7311         * acconfig.h: does not include file "VERSION" anymore
7313         * config.h.in: rebuilt by autoheader
7315         * VERSION: removed from CVS and added to .cvsignore since it
7316         is rebuilt every time as configure is run
7318 1998-08-20  Raja R Harinath  <harinath@cs.umn.edu>
7320         * mad.h: Include stdlib.h/malloc.h first, to prevent prototypes
7321         from being clobbered by the subsequent macro defines.
7323 Wed Aug 12 15:56:46 1998  Pavel Roskin  <pavel_roskin@geocities.com>
7325         * edit.h: added "../" before some includes to avoid unnecessary
7326         "-I" options for the PC port makefiles.
7328 Sun Aug  9 22:39:12 1998  Janne Kukonlehto  <jtklehto@paju.oulu.fi>
7330         * mad.h (calloc): Added parentheses around the arguments as
7331         suggested by Steef Boerrigter <sxmboer@sci.kun.nl>.
7333 Fri Jul 31 09:04:35 1998  Pavel Roskin  <pavel_roskin@geocities.com>
7335         * syntax.c: makefile* will be highlighted as Makefile*
7337 1998-07-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7339         * main.c (translated_mc_chdir): Quick hack to make the old
7340         url-like pathnames to be used on the command line.
7342 1998-06-22  T.E.Dickey  <dickey@clark.net>
7344         * keyxdef.c: Fix for compiling with ncurses.
7346 Fri Jul 24 00:44:37 1998  Tom Tromey  <tromey@cygnus.com>
7348         * mc-local.m4 (AC_STRUCT_LINGER): Moved into macros/linger.m4.
7349         * autogen.sh: Include linger.m4 in aclocal.m4.
7350         * Makefile.in (GNOME_M4_FILES): Include linger.m4.
7352 Thu Jul 23 22:44:16 1998  Tom Tromey  <tromey@cygnus.com>
7354         * Makefile.in (aclocal.m4): Depend on all source files.  Include
7355         gnome-vfs.m4 and gnome-undelfs.m4.
7356         (GNOME_M4_FILES): New macro.
7357         * autogen.sh: Include gnome-vfs.m4 and gnome-undelfs.m4 in
7358         aclocal.m4.
7359         * configure.in: Use GNOME_VFS_CHECKS and GNOME_UNDELFS_CHECKS
7360         macros instead of in-line checks.  Create vfs/Makefile from
7361         vfs/Make-mc.in.
7363 Thu Jul 23 19:49:12 1998  Pavel Roskin  <pavel_roskin@geocities.com>
7365         * hotlist.c: corrected layout of the warning which appears
7366         if ~/.mc doesn't exist. Appropriate changes in translations.
7368 Wed Jul 15 00:41:01 1998    Paul Sheer  <psheer@obsidian.co.za>
7370         * edit.c, editwidget.c,            * syntax.c: Syntax
7371         editdraw.c, editmenu, editcmd.c:   highlighting for Pascal
7372         Added column text highlighting     added.
7373         and block movements.
7375 1998-07-04  Carsten Schaar  <nhadcasc@fs-maphy.uni-hannover.de>
7377         * main.c (main): 'session_management_setup' will be called after
7378         'gnome_init'.
7380 Wed Jun 18   Pavel Machek  <pavel@ucw.cz>
7382         * i18n.h: we do not want i18n in case of compiling standalone
7383         libvfs.so.
7385 Fri Jun  5 23:34:20 1998  Timur I. Bakeyev  <timur@comtat.kazan.ru>
7387         * screen.c (file_entry_color): take care about BSD core dumps
7388         which have names program.core instead of core
7390 Mon Jun  1 15:41:20 1998  Norbert Warmuth  <k3190@fh-sw.de>
7392         * main.c (translate_url_to_new_syntax): translate the common
7393         ftp url syntax to the syntax used by the new vfs code.
7395         (_do_panel_cd): First translate the path if necessary. This makes
7396         it possible to enter ftp://host on the command line and in the
7397         directory hotlist. We might need to move the translation code
7398         to the vfs layer if there are other places where we want to enter
7399         ftp://host.
7401 Mon Jun  1 12:33:08 1998  Alexander V. Lukyanov  <lav@yars.free.net>
7403         * configure.in: allowed to use `configure --with-included-gettext'
7404         on systems (like solaris) that have their own libintl
7406 1998-05-31  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7408         * complete.c (filename_completion_function): Use the vfs routines
7409         for name completion.
7411 1998-05-31  Jakub Jelinek  <jj@ultra.linux.cz>
7413         * complete.c (complete_engine): Fix completions.
7415 Sun May 31 10:23:01 1998  Norbert Warmuth  <k3190@fh-sw.de>
7417         * key.c (define_sequence): If a sequence clashes the last
7418         definition made will be used. This makes it possible to override
7419         wrong definitions in terminfo/termcap database with learn keys (or
7420         the appropriate entries in mc.lib and ~/.mc/ini).
7422         * widget.c (show_hist): Don't display the listbox partly
7423         off screen (the left panel's history started in column - 2).
7425         * keyxdef.c: include tty.h instead of myslang.h as suggested by
7426         Tamasi Gyorgy <gt_cosy@usa.net>
7428 Fri May 29 15:41:19 1998  Alexander V. Lukyanov  <lav@yars.free.net>
7430         * widget.c (update_input): this patch allows entering 8-bit
7431         characters in input fields without screwing attributes. (the
7432         same old sign extension...)
7434 Wed May 27 22:23:48 1998  Ed Cogburn  <ecogburn@greene.xtn.net>
7436         * lib/xterm.ti: The 'xterm-color' definition needs 'sgr0'. The tic
7437         program from ncurses 4.2 doesn't like the xterm.ti file that comes
7438         with mc.
7440 Wed May 27 15:29:01 1998  Alexander V. Lukyanov  <lav@yars.free.net>
7442         * key.c (get_key_code): characters with high bit set were input
7443         as 0x80 char when use_8th_bit_as_meta was set
7445 1998-05-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7447         * ext.h (MC_USER_EXT): New name for the per-user extension file
7448         (this needs redoing to concatenate this + the system stuff instead
7449         of the overwrite stuff we have now).  Now it is called the ~/.mc/ext-n
7451 Mon May 25 23:32:35 1998  Norbert Warmuth  <k3190@fh-sw.de>
7453         * editdraw.c (print_to_widget): Ifdef'd SLang specific code in order
7454         to make it compile with ncurses. Syntax highlighting in the
7455         internal editor is already disabled when SLang isn't used.
7457 1998-05-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7459         * widget.c (port_region_marked_for_delete): New per-port
7460         piece of code:  Provides a way for good selection killing.
7462 Sun May 24 02:45:03 1998  Norbert Warmuth  <k3190@fh-sw.de>
7464         * utilunix.c, util.h (errno_dir_not_empty): deleted
7466 Sat May 23 22:29:57 1998  Norbert Warmuth  <k3190@fh-sw.de>
7468         * file.c (check_dir_is_empty): New function which takes a path and
7469         returns -1 on error, 1 if there are no entries besides "." and
7470         ".."  in the directory path points to, 0 else. This function
7471         actually opens and reads the directory and doesn't do tricks we
7472         used to do with rmdir.
7474         * file.c (erase_dir, erase_dir_iff_empty): Use check_dir_is_empty
7475         to detect non empty directories. The old code tried to remove the
7476         directory and decided on errno whether the failure of rmdir was
7477         caused by a non empty directory or whether there was a different
7478         error.
7479         Unfortunately not every filesystem sets errno to EDIRNOTEMPTY if
7480         you try to delete a non empty directory. Namely the linux user
7481         space nfs server sets errno to EIO, Suns nfs server sets it to
7482         EEXIST and the AIX nfs server sets it to ??? (Steve reported
7483         problems on AIX so I guess AIX sets errno to a value we currently
7484         don't check).
7486 1998-05-18  Tamasi Gyorgy (gt_cosy@usa.net)
7488         * lib/mc.menu: 'Z' on 'tar.Z' and 'tar.z' files: '%f' -> '$1'.
7490         * lib/mc.ext.in.qnx.diff, lib/mc.menu.qnx.diff (QNX): modified
7491         'mc.ext.in' (tar -t: output to stderr); modified 'mc.menu' (tar is
7492         not GNU tar: doesn't know '-z'); support for '*.tar.F':
7493         'freeze'-compressed tar files [No automatic configure/install
7494         implemented: patches must be applied before running 'configure'
7495         (mc.ext.in.qnx.diff: this patch can be not only QNX-specific...)]
7497         * lib/Makefile.in: 'mc.ext.in.qnx.diff' and 'mc.menu.qnx.diff' added
7498         to DISTLIB.
7500         * slang/sldisply.c:
7502           SLTT_TRANSP_ACS_PATCH dependent code:
7504           The problem: some terminals (QNX/qansi*, SCO OS5/ansi [?]) map the
7505           whole upper half of the ASCII table to the lower half, when
7506           alt-char-set is activated with the smacs/as string-sequence. This
7507           means, that if 0 <= ch < 128 written to the terminal, it will be
7508           translated to (ch+128) automatically by the terminal: so not only
7509           the line-drawing characters can be written, when the alt-char-set
7510           is activated. It implicitly means, that space, NL, CR, etc.
7511           characters (exactly: anything besides the "standard" line drawing
7512           characters) can not be written directly to the terminal, when the
7513           alt-char-set is activated, because writing these characters
7514           doesn't cause an implicit/temporary switching-back to the standard
7515           char-set!
7517           The original code in SLang assumes that space, NL, CR, etc. can be
7518           printed when alt-char-set is activated. If SLTT_TRANSP_ACS_PATCH
7519           is defined, the modified code will not use this assumption.
7520           [Remark: the patch-code is not the most exact solution, but
7521           works...]
7523           QNX_QANSI_SLANG_COMPAT_ACS_PATCH dependent code:
7525           A more OS/terminal-specific solution for the problem mentioned
7526           above (->SLTT_TRANSP_ACS_PATCH).
7528           If QNX_QANSI_SLANG_COMPAT_ACS is defined, the default smacs/sa,
7529           rmacs/ae, acsc/ac [and sgr/sa, if it would be used!] command
7530           sequences will be replaced internally with the "old style"
7531           (pre-QNX 4.23) sequences in case of QNX/qansi terminals. Using
7532           these optional command sequences the terminal remains compatible
7533           with the original SLang code (without using the workaround-code
7534           enabled by defining SLTT_TRANSP_ACS_PATCH).
7536           Remark:
7538           Currently SLTT_TRANSP_ACS_PATCH is not auto-configured by
7539           'configure'. (Must be manually defined...)
7541           There is some (QNX-specific) auto-configuration hand-coded in the
7542           source:
7544             #ifdef SLTT_TRANSP_ACS_PATCH
7545             # if defined(__QNX__) && defined(QNX_QANSI_SLANG_COMPAT_ACS)
7546             #  undef SLTT_TRANSP_ACS_PATCH
7547             # endif
7548             #else
7549             # if defined(__QNX__) && !defined(QNX_QANSI_SLANG_COMPAT_ACS)
7550             #  define QNX_QANSI_SLANG_COMPAT_ACS 1
7551             # endif
7552             #endif
7554         * slang/slutty.c: "newtty.c_iflag &= ~(ECHO | INLCR | ICRNL);"
7555         ECHO(0x08) is a c_lflag bit, it means PARMRK(0x08) in c_iflag. (!?!)
7557         * src/file.c: 'do_reget' can be extern if (USE_VFS && USE_NETCODE),
7558         not if (USE_VFS).
7560         * src/find.c (search_content()): Variable 'i' "must be" 'int', not
7561         'char'. ["i == -1": (buggy?) WCC 10.6 doesn't convert automatically
7562         (int)(-1) to (char)(-1) (GCC does), so "comparison result always 0"
7563         warning produced. It is cleaner to define 'i' as 'int', than cast
7564         '-1' to 'char', because 'read()' returns 'int'.]
7566         * src/key.c (init_key()): Call load_xtra_key_defines() and clear
7567         'use_8th_bit_as_meta' by default under QNX, if a 'qnx*' terminal
7568         detected. (A saved config file (mc.ini) can override it later...)
7570         * src/key.h: Declare load_xtra_key_defines().
7572         * src/keyxdef.c: Provides a method to define some platform-specific
7573         additional key mappings. (e.g. QNX terminals can handle most of
7574         META-? combinations as ALT-?...) ('keyxdef.c' currently not listed
7575         in doc/FILES...)
7577         * src/layout.c: TIOCGWINSZ must be available (so <sys/ioctl.h> (?)
7578         included), because window-resizing code doesn't work, if not defined.
7580         * src/main.c: 'print_usage()' is reserved name in the QNX run-time
7581         library, so 'print_usage()' renamed to 'print_mc_usage()'
7583         * src/mouse.c (QNX): ncurses 1.9.8a ported to QNX doesn't provide the
7584         'SP' pointer as a global symbol in the library, so the keyok()
7585         emulation currently can not be used under QNX (4.24 & Watcom C 10.6
7586         release version).
7588         * src/slint.c (QNX): 'qansi*' terminals added to the color_terminals[]
7589         list.
7591         * src/subshell.c, src/utilunix.c (QNX): include <unix.h> to get
7592         prototype for exec*()!!! [See README.QNX/Section 1.4 about the
7593         dangerous "No prototype for <function>" warnings emitted by Watcom C,
7594         if <function> is a 'printf()'-style function having variable number
7595         of arguments and you compile your source with the default register
7596         calling convention!!!]
7598         * Makefile.in: 'keyxdef' module added to SRCS and OBJS.
7600         * <mc-root>/README.QNX: QNX-specific notes.
7602         * <mc-root>/configure (line 3369), <mc-root>/configure.in (line 88):
7603         'test x$CCOPTS = x;' modified to 'test "x$CCOPTS" = x;'
7605         * <mc-root>/Makefile.in: README.QNX added to DISTMAIN.
7607 Thu May 21 00:09:45 1998  Norbert Warmuth  <k3190@fh-sw.de>
7609         * menu.c (menubar_event): Don't set menubar->selected to the
7610         invalid value -1. Fix for the bug reported by root@liepa.soften.ktu.lt
7612         * menu.c (menubar_drop_compute): removed the check for inrange
7613         items which isn't necessary any longer.
7615 Wed May 20 16:27:56 1998  Norbert Warmuth  <k3190@fh-sw.de>
7617         * widget.c (history_put): input line history was defunct because
7618         there was an #ifndef where an #ifdef should be.
7619         Btw. PORT_WIDGET_WANTS_HISTORY seems incomplete because a lot of
7620         history code is included even when this define is undefined.
7622 1998-05-19  Tamasi Gyorgy  <gt_cosy@usa.net>
7624         * src/*: Until I get a better ChangeLog:  Tamasi's port of the
7625         code to QNX.
7627 1998-05-19  Alexander Lukyanov  <lav@yars.free.net>
7629         * Makefile.in: Distribution fix so that people are not forced to
7630         install gettext.
7632 1998-05-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7634         * ext.c: Memory leak fixed.
7636 Mon May 18 22:24:09 1998  Norbert Warmuth  <k3190@fh-sw.de>
7637         * lib/mc.ini.in: s/reges/regex/
7639         * main.c (process_args): return void, the return value was only
7640         used once but wrong (-h displayed help twice).
7641         (handle_args): -h: don't display help twice
7642         (print_usage): Don't print program name and version, that's
7643         already done by version(0).
7645         * menu.c (menubar_paint_idx): Highlight Hotkeys also on slow
7646         terminals (hotkeys were not displayed at all).
7648 1998-05-18  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7650         * menu.c (menubar_drop_compute): Check for inrange items.
7652 1998-05-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7654         * color.c (init_colors): Provide X-only version of color
7655         initialization.
7657 Thu May 14 01:56:11 1998  Norbert Warmuth  <k3190@fh-sw.de>
7659         * configure.in: Don't add -lintl to LIBS when included gettext is
7660         used (further checks for libraries would fail because libintl.a
7661         isn't build, yet). Instead use and substitute LINTL.
7663         * Makefile.in (OURLIBS): add @LINTL@
7665 Tue May 12 17:45:49 1998  <psheer@obsidian.co.za>
7667         * syntax.c: yet more minor modifications.
7669 1998-05-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7671         * main.c: New default: auto-save setup.
7673         * screen.c (move_right, move_left): Add support for icon-view movement.
7675 1998-05-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7677         * setup.c (panel_load_setup): On non-icon editions, fall back to
7678         list_full
7680 Sun May 10 13:27:50 1998  Norbert Warmuth  <k3190@fh-sw.de>
7682         * widget.c (handle_char): Don't try to to delete default text in
7683         input widget more than once. Right after MC's start copy_filename
7684         (ESC Enter) failed because a flag wasn't cleared while characters
7685         were stuffed into the command line (Andrej reported this bug).
7687         * main.c (copy_readlink): usr mc_readlink instead of readlink
7689         * file.c: Changed default for the copy/move option "dive into
7690         subdir if exists" to off (note: this was only possible after the
7691         change in setup.c).
7693         (copy_dir_dir): Activated the previously uncommented code which
7694         implements "Dive into subdirs". Even when there's no case where we
7695         actually would like that behavior it is a documented feature.
7696         Though I didn't want to change the default behavior. Hence the
7697         option change.
7699         (file_mask_defaults): set dive_into_subdirs
7701         (file_mask_dialog): Fix for debian Bug #20727: Move operation with
7702         "[ ] Dive into subdir if exists" and destination filename not
7703         wildcarded. If destination is an existing directory then files
7704         will be moved into this directory. If destination is not an
7705         existing directory then src file will be renamed (one file
7706         selected) or an error will be displayed (more than one file
7707         selected).
7709         (file_mask_dialog): made the option "Using shell patterns" local
7710         to the current copy/move operation, i.e. this option is always
7711         initialized with the global option's value. Previously it affected
7712         the global Options/Configuration/shell Patterns.
7713         Another possibility would be to make the global option a default
7714         option on startup and keep changes in the copy/move dialog
7715         (without saving these changes with save setup).
7717         * setup.c: Don't save and load options which can be changed
7718         outside the options menu. For example I don't like that
7719         preserve_uid_gid and dive_into_subdirs from the copy/move dialog
7720         are saved and restored (strange, what about the other options from
7721         this dialog?).
7722         It would be much cleaner to make these option read-only. This way
7723         one could edit ~/.mc/ini to provide default option setting on
7724         startup and "Save setup" wouldn't have side effects outside the
7725         option's menu.
7727 Sun May 10 13:24:20 1998  Norbert Warmuth  <k3190@fh-sw.de>
7729         * doc/mc.1.in, doc/mc.sgml, mc.hlp: Updated to reflect new default
7730         for dive into subdirs.
7732 Sun May 10 13:21:45 1998  Norbert Warmuth  <k3190@fh-sw.de>
7734         * edit/syntax.c: Disable debug messages on stderr.
7736         * edit/edit.h: Added missing _()
7738 1998-05-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7740         * layout.c (flag_winch): Propagate the window change to the slave
7741         pty even when not running our event loop.  The resize_subshell
7742         routine is thread safe.
7744         * dlg.c (update_cursor, dlg_broadcast_msg_to): Do not send
7745         messages if no widgets are on the Dlg_head, this happens now with
7746         the gmc code, as we can have all of the windows shut down.
7748 Wed May  6 13:46:37 1998 Paul Sheer  <psheer@obsidian.co.za>
7750         * syntax.c: more bug fixes.
7752 1998-05-04  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7754         * view.c (view_quit_cmd): Use dlg_stop.
7756         * main.c (ctl_x_cmd): Implement ctl-x handling as a state of the
7757         key press events.  Drop the usage of mi_getch to accomplish this
7758         task.
7759         (midnight_callback): Deal with the current map depending on the
7760         c-x state.
7762 Mon May  4 10:21:31 1998  Norbert Warmuth  <k3190@fh-sw.de>
7764         * background.c (message_1s1d): the unprocessed string with %d was
7765         passed to message_1s; fixed small memory leak
7767         * widget.c (button_callback): WIDGET_CURSOR: make cursor position
7768         dependent on button type (fixes the off by one bug in advanced
7769         changeown).
7771         * file.c (copy_file_file): Schedule deletion of short target file
7772         only when we created or truncated the target file and not already
7773         when we decided to overwrite an existing file.
7775 1998-05-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7777         * boxes.c (task_cb): Use kill, not INT, as we are catching INT in
7778         the program.
7780 Sat May  2 14:07:05 1998 Paul Sheer  <psheer@obsidian.co.za>
7782         * setup.c: ALT('H') now shows a directory history - that
7783         ESC SHIFT-h   or   ALT-SHIFT-h
7785 Fri May  1 17:45:58 1998 Paul Sheer  <psheer@obsidian.co.za>
7787         * syntax.c: initial support for LaTeX 2.09 files added,
7789         * syntax.c: some minor bug fixes. and reorganization
7790         of context and keyword priorities.
7792 Fri May  1 11:24:21 1998  Paul Sheer  <psheer@obsidian.co.za>
7794         * syntax.c: syntax highlighting segfaults when editing a binary
7795         file - now fixed.
7797 Thu Apr 30 12:23:50 1998 Alex Tkachenko  <alex@bcs.zp.ua>
7799         * src/file.c: lot of i18n of file Copy/Move/Delete operations. Maintainers
7800         of message catalogs please notice introduced op_names1 and formats for
7801         file operations.
7803         * src/boxes.c: i18n of background jobs control and quick cd
7804         dialog boxes.
7806         * src/menu.c (menubar_arrange): resizing of menubar upon changes of
7807         window size is now controlled by preprocessor symbol RESIZABLE_MENUBAR
7808         (now it's off by default, as requested in mailing list). If it is off,
7809         menubar items are separated with fixed number of spaces (3).
7811         * src/layout.c, edit/editwidget.c: calls to menubar_arrange ifdef'ed
7814 1998-04-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7816         * main.c (parse_an_arg): GNOME edition keeps track of various
7817         --geometry and various directories passed.
7819 1998-04-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7821         * main.c (update_panels): Great API simplification.  update_panels
7822         only cares about the contents of the current panel, every other
7823         panel keeps the current selection (this was the behavior
7824         anyways).
7826         update_panels can be provided in a per-port fashion as well.
7828 Wed Apr 29 03:06:09 1998  Paul Sheer  <psheer@obsidian.co.za>
7830         * syntax.c: some optimizations, as well as support for
7831         syntax highlighting of Makefiles and ChangeLog files.
7832         Fixed some syntax highlighting bugs. All C and C++
7833         keywords added.
7835 Tue Apr 28 06:11:08 1998  Norbert Warmuth  <k3190@fh-sw.de>
7837         * view.c (toggle_wrap_mode, toggle_hex_mode): Force recalculation
7838         of bottom_first (we mustn't use an already calculated and cached
7839         value because it is invalid for the new mode and the End key would
7840         not move to the end of the file).
7842         * configure.in: Renamed the option `--with-our-slang' to
7843         `--with-included-slang' (this one looks better because we also
7844         have an `--with-included-gettext').
7845         Make the option `--with-ext2undel' recognize a given path.
7847         * cmd.c (view_file_at_line): In plain view (F13) set the default
7848         magic flag to zero in order to view the file content unprocessed
7849         (esp. don't uncompress files if they are compressed). The
7850         view_simple_cmd got broken when the default magic flag in view.c
7851         was changed from 0 to 1.
7853         * view.c (do_view_init, goto_line): Set wrap mode temporary off
7854         to make goto line number work, i.e. `line number' now always means
7855         line number in file and not line number on screen (in wrap mode
7856         one long line wrapped once is displayed in two lines on the screen).
7857         That's important when the viewer is invoked from the find file
7858         dialog to display even in wrap mode approximately the part of the
7859         file where we found the content we searched for.
7861         (move_forward2): In wrap mode lines were sometimes counted wrong
7862         causing cursor up to move more than one line.
7864         (move_backward2): Fixed the movement in wrap mode.
7866         (change_viewer): Always re-init viewer when we have a filename,
7867         i. e. if the viewer is invoked with simple_view_cmd then we can switch
7868         with the F8 key between unprocessed file content and uncompressed
7869         file content.
7870         (view_init): re-init view also when magic flag was altered
7872 1998-04-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7874         * screen.c (is_a_panel): Added a routine to determine if a widget
7875         is a panel.
7877 1998-04-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7879         * screen.c (file_entry_color): Check if fe->fname has something.
7881 Sun Apr 26 00:21:12 1998  Norbert Warmuth  <k3190@fh-sw.de>
7883         * slint.c: Applied the patch from Bill Nottingham <wen1@cec.wustl.edu>
7884         to make it link against SLang >=1.0.
7885         I reviewed the diffs to the part of SLang we use and there are no
7886         further changes to MC necessary (one function's return value
7887         changed it's meaning but we don't use this return value).
7889         * configure.in: Undone the change which prevented linkage against
7890         SLang >=1.0
7892 Sat Apr 25 13:41:43 1998  Paul Sheer  <psheer@obsidian.co.za>
7894         * edit.h, syntax.h: some optimizations to improve syntax
7895         highlighting speed.
7897 1998-04-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7899         * color.h: Move the CTYPE definition
7901 Fri Apr 24 16:43:25 1998  Paul Sheer  <psheer@obsidian.co.za>
7903         * main.h, setup.c: editor_syntax_highlighting option added
7904         for ini file.
7906 Fri Apr 24 14:54:06 1998  Paul Sheer  <psheer@obsidian.co.za>
7908         * syntax.c: added. this files reads ~/.cedit/mcsyntax and
7909         processes generic rules for syntax highlighting of different
7910         file types. Syntax highlighting does not store an attribute byte
7911         for each byte of the edit buffer. Rather, it calculates colors
7912         on the fly, with an optimized algorithm, as the text is being
7913         rendered.
7915         * edit.c, edit.h, editwidget.c, editdraw.c: changes to facilitate
7916         syntax highlighting.
7918         * editoptions.c: dialog box updated with a syntax highlighting
7919         checkbox.
7921         * slint.c: new function alloc_color_pair(). This allocates a new
7922         color index. init_pair() itself now records the last color index
7923         so that colors can be added on to the end of the color list
7924         with alloc_color_pair().
7926         * slint.c: new function try_alloc_color_pair() returns a new index
7927         for a color with named fg and bg. Checks if that named color
7928         already exists before setting a new index.
7930 1998-04-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7932         * user.c (execute_menu_command): Create temporary file exclusively
7933         as well.
7935         * main.c (do_execute), utilunix.c (my_system), gutil.c, ext.c:
7936         Changed the way we execute programs.  Now a new set of flags exist
7937         that indicates how the execution is done.  In ports that execute
7938         by sending the process to background, when executing temporary
7939         files, we have to remove the files after the child process has
7940         finished executing the code not after the calling do_execute.
7942         * ext.c (exec_extension): Create temporary file exclusively.
7944 Mon Apr 20 01:32:20 1998  Norbert Warmuth  <k3190@fh-sw.de>
7946         * configure.in: Don't try to link MC against SLang >= 1.0. I will
7947         remove this restriction when I'm sure that it's save to use the new
7948         version (the documentation to SLang mentions some changes of
7949         return values).
7951 1998-04-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7953         * file.h: Added prototype for copy_dir_dir.
7955         * file.c (real_do_file_error): use the proper flags, this is not a
7956         D_INSERT dialog box, for what it is worth.  Important bug fix.
7958         * utilunix.c (get_owner): Declare.
7960         * widget.h: Added various missing prototypes for the X edition.
7961         * view.h: Added various missing prototypes for the X edition.
7962         * widget.c (x_radio_toggle): New per-port variable: PORT_HAS_RADIO_TOGGLE
7964 1998-04-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>
7966         * screen.c (GT): Assign two spaces for the minimum size of the
7967         "type" field for the GNOME edition.  This gives some extra space
7968         for the icon that gets displayed.
7970         * dlg.c (remove_widget): New function:  used to remove a widget
7971         from an existing Dlg_head;
7972         (destroy_widget): Destroy a specific Widget.
7973         (add_widgetl): Extended to deal with the fact that a running
7974         Dlg_head can become empty.
7976         * panelize.c (l_call): Update the input line every time the user
7977         selects the entry with the mouse (pretty common in the gnome
7978         edition).
7980         * hotlist.c (add_new_group_input): Removed an extra field that was
7981         causing problems.
7983         * find.c (find_parameters): Tree button is gone for gnome until we
7984         get the tree function working on gnome.
7986         * cmd.c (save_setup_cmd): Per Elliot's suggestion, do not pop up a
7987         dialog box to inform the user about the saved setup.
7989 1998-04-15  Pavel Machek  <pavel@elf.ucw.cz>
7991         * cmd.c: Report failed chdir attempts.
7993 Wed Apr 15 10:48:41 1998 Alex Tkachenko  <alex@bcs.zp.ua>
7995         * src/hotlist.c: changes to hotlist boxes i18n.
7997         * src/panelize.c: changes to panelize boxes i18n.
7999         * src/wtools.c (query_dialog): Take care about possible '&' in
8000         button names while calculating window sizes and button positions.
8002 1998-04-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8004         * screen.c (string_file_nlinks): The buffer was too small and we
8005         were overwriting parts of it.
8007         * subshell.c (do_subshell_chdir): Memory leak fix.
8009         * find.c (do_search): Do not use undefined order of evaluation.
8011         * user.c: Do not use undefined order of evaluation.
8013         * dlg.c (init_dlg): Do init the default return value.
8015 Sun Apr 12 03:09:17 1998  Norbert Warmuth  <k3190@fh-sw.de>
8017         * cmd.c (view_other_cmd): #ifdef'd application_keypad_mode and
8018         numeric_keypad_mode (don't include it in non text editions)
8020 Sun Apr 12 02:48:26 1998  Norbert Warmuth  <k3190@fh-sw.de>
8022         * xv/xvscreen.c: removed duplicate (conflicting) definition
8023         of do_enter()
8025 Sun Apr 12 02:24:57 1998  Norbert Warmuth  <k3190@fh-sw.de>
8027         * text.c (edition_post_exec), cmd.c (view_other_cmd): Don't change
8028         the keypad mode when we don't use the alternate plus minus. Pavel
8029         forgot an if-clause when he replaced the escape sequences (or
8030         another point of view: I forgot one if-clause at different place).
8032 Fri Apr 10 17:35:23 1998  Philippe De Muyter  <phdm@macqel.be>
8034         * configure.in (AC_NCURSES): When checking for library location,
8035         put -L option before -l option, not after.
8037 Fri Apr 10 10:35:06 1998  Norbert Warmuth  <k3190@fh-sw.de>
8039         * file.c (file_mask_dialog): When the shell patterns option was
8040         off source_mask was freed twice.
8042 1998-04-10  Marc Ewing  <marc@redhat.com>
8044         * panel.h: added up_b
8046 1998-04-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8048         * widget.c (update_input): Set the used flag early in update_input
8049         to allow X widget to catch the right value
8051         * screen.c (do_enter): Return the status for the operation.
8053         * main.c (main): Sigh.  This was hard. I added support for argp.
8054         Right now we support both argp for the GNOME edition and popt for
8055         the other editions.  I will remove popt support in the future and
8056         only keep argp.
8058         * dlg.c (add_widgetl): Adding widgets to an already running dialog
8059         had some flaws.  Fix this.
8061 Wed Apr  8 11:15:29 1998 Alex Tkachenko  <alex@bcs.zp.ua>
8063         * src/find.c: changes to find_parameters/find_file i18n.
8065         * src/widget.c: new function introduced, button_scan_hotkey();
8066         button_new() and button_set_text() fixed to use mentioned function.
8068         * src/key.[ch], src/dlg.c: changes to make recognition of ESC char as
8069         ALT(c) possible for 8-bit chars. (By replacing 'A'/'Z' comparisons with
8070         call to isalpha() in the way proposed by Norbert).
8072         * src/boxes.c: changes to display box i18n
8074         * src/learn.c: changes to learn key dialog i18n
8076 1998-04-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8078         * main.c (update_one_panel_widget): New routine: Updates a panel
8079         based on the widget, not the index.  Used by the GUI versions.
8081         * find.c (find_file): Cancel idle tasks before we destroy the find
8082         dialog.
8084         * dlg.c (destroy_dlg): Call x_destroy_dlg_start, a new hook that
8085         is invoked to allow the frontend code to prepare for dialog
8086         destruction.  Only the Gnome edition is using this: it uses this
8087         to hide the dialog and avoid flickering.
8089         * main.c: dtterm also has mouse support.
8091 1998-04-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8093         * wtools.c (quick_callback): Process DLG_KEY events on X.
8095         * utilunix.c (max_open_files): new routine;  Used to figure out
8096         the number of available file descriptors.
8098 Sat Apr  4 00:16:49 1998 Alex Tkachenko  <alex@bcs.zp.ua>
8100         * src/layout.c: changes to layout dialog box i18n
8102         * src/option.c: changes to configure box i18n
8104         * src/cmd.c: added N_() macro for machine_str
8106         * src/wtools.c (real_input_dialog_help): ok/cancel buttons are places
8107         symmetrically spaced relatively to center of the box. It produces
8108         nicer appearance with i18n (IMO :)
8110         * src/boxes.c (confirm_box): i18n stuff added.
8112 Mon Apr  6 07:48:22 1998  Pavel Roskin  <pavel_roskin@geocities.com>
8114         * Makefile.in: "make dist" works with bash 1.x again
8116 Fri Apr  3 05:23:20 1998 Alex Tkachenko  <alex@bcs.zp.ua>
8118         * configure.in: ALL_LINGUAS test added, to allow specify list
8119         of languages to be installed by setting env variable before
8120         configure. If it is empty, it defaults to full list.
8122         * src/menu.h menu_entry.{hot_pos, is_dupped} dropped
8124         * src/menu.c: consistency fixes: pull-down menu items are now
8125         accessible either with arrow keys or with hotkeys, denoted with &
8126         (and highlighted). (key combinations, placed to the right of items
8127         intended to be used from outside the menus). Freeing menu entries
8128         removed as it no longer needed
8130         * src/main.c, edit/editmenu.c: menubar init code is changed to conform
8131         above fixes.
8133         * edit/edit.h: use of "Cancel" in error_dialogs replaced with
8134         "Dismiss", to avoid collisions in translation of "Cancel" in other
8135         places with this case.
8137         * src/boxes.c: select_format() and it's support removed, as it is
8138         obsoleted by input line history feature. display_init()/display_callback
8139         fixed to suite i18n changes. sort_box() - alike.
8141         * src/option.c: pause_options added &'s and gettext calls to expand
8142         statically assigned values.
8144         * src/widget.c: (radio_callback) hotkey recognition is changed to
8145         &-notation, rather than simple uppercase.
8147         * src/dlg.c: (dlg_try_hotkey) plain symbol comparison replaced with
8148         call to isalpha(), this fixes erroneous exit from input line, when
8149         button hotkey is 8-bit NLS char.
8151 Fri Apr  3 12:23:28 1998  Norbert Warmuth  <k3190@fh-sw.de>
8153         * TODO: Removed obsolete entries: Similar entries in tree view
8154         are displayed correct; user specific files has been moved
8155         to ~/.mc/
8156         Added: Check what to do with menubar_arrange/destroy_menu stubs
8157         in tk/tkmenu.c; the internal editor (not ported yet) adds entries
8158         to the wrong menubar
8160 Wed Apr  1 00:15:30 1998  Norbert Warmuth  <k3190@fh-sw.de>
8162         * key.c, key.h (numeric_keypad_mode, application_keypad_mode): New
8163         functions which encapsulate two hardcoded escape sequences from main.c.
8165         * main.c (main): Use the two new functions from key.c
8167         * main.c, screen.c: Moved all file selection keys from the default
8168         keymap to the keymap for panels in listing mode.
8169         Changed *_selection_cmd to *_selection_cmd_panel in panel_keymap
8170         (functions in panel_keymap get a WPanel * as first parameter,
8171         i.e. the indirection with cpanel isn't necessary).
8173         * main.c (midnight_callback): Keys '*' and '-' were not treated
8174         when only_leading_plus_minus==0;
8175         Optimized the if-clauses a little bit (i.e. removed duplicate
8176         checks). More optimization is possible but it would make the whole
8177         stuff completely unreadable.
8179         * key.c (correct_key_code): KP_ADD, KP_SUBTRACT and KP_MULTIPLY
8180         will be translated to +, - and * only if the option
8181         alternate_plus_minus is turned off.
8183         * learn.c (learn_keys): Turn alternate_plus_minus temporarily on
8184         to avoid translation of KP_ADD, KP_SUBTRACT and KP_MULTIPLY in
8185         correct_key_code/make sure keypad is in application mode (makes it
8186         possible to learn this keys).
8188         * cmd.c (reverse_selection_cmd_panel): New function (renamed from
8189         reverse_selection_cmd, takes a WPanel * as parameter, references to
8190         cpanel changed to panel/the passed parameter).
8191         reverse_selection_cmd now simply calls this function with cpanel.
8192         This pair was missing among the *_selection_cmd* functions.
8194         * cmd.h: Added function prototypes.
8196 1998-03-31  Paul Sheer  <psheer@obsidian.co.za>
8198         * cmd.c (nice_cd): Forgot to invoke the history registration in
8199         one spot.
8201 1998-03-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8203         * menu.c (destroy_menu): Implement destroy_menu for all of the
8204         ports as a routine that frees the menu entries if
8205         internationalization has been enabled.
8207         * wtools.c (quick_dialog_skip): Do not i18n any string that is empty.
8209 Sun Mar 29 23:02:09 1998 Alex Tkachenko  <alex@bcs.zp.ua>
8211         * src/menu.[ch]: new member to menu_entry (hot_pos) introduced to make
8212         internationalized version of menu use externally defined hotkeys
8213         (denoted with preceding &). create_menu() fixed to load intl text of
8214         the entries. Some fixes around menu.c to enable usage of reloaded
8215         hotkeys.
8217         * main.c, editmenu.c: menu initialization code fixed to conform new
8218         menu structure. editmenu init code includes N_(..) now.
8220         * menu.c, layout.c, editwidget.c: bar menu items displacement is made
8221         dynamically upon initialization and window size changes. Mouse event
8222         processing is fixed accordingly.
8224 Sat Mar 28 13:18:36 1998 Alex Tkachenko  <alex@bcs.zp.ua>
8226         * src/screen.c: (repaint_file) last patches to format_file() in the
8227         same file broke appearance of panels in brief mode -- fixed.
8229 Mon Mar 30 20:02:49 1998  Paul Sheer  <psheer@obsidian.co.za>
8231         * main.c, screen.c, dirhist.c, dirhist.h, main.h, widget.c,
8232         main.h and others?: Directory history added. The previous
8233         directory history code was removed. The directory history now
8234         loads and saves using the same routines as the input widget. The
8235         keys meta-y, and meta-u are used to go backward and forward
8236         through the history. The buttons to the right and left of the
8237         current directory display on the panel can be used as well. The
8238         v button brings up a history, but no key is assigned to this.
8239         Discussion as to correct color and shape of these buttons is
8240         open. show_hist() in widget.c is made generic to be called for
8241         any widget. Help pages still needed to be added for the
8242         directory history.
8244 Wed Mar 25 19:05:31 1998  Norbert Warmuth  <k3190@fh-sw.de>
8246         * view.c (view_done): Set monitor off before deleting the view
8247         file dialog.
8249         * subshell.c (init_subshell): Added ':q' to $cwd in the precmd for
8250         tcsh. It prevents command and filename substitution (e.g. for
8251         a directory named "[word] words")
8253 Mon Mar 23 18:06:10 1998  Norbert Warmuth  <k3190@fh-sw.de>
8255         * main.c: Deleted some old and unused code
8257 1998-03-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8259         * All over the src/ directory: Internationalization changes.
8261         * background.c: Avoid buffer over-runs and reduce number of
8262         internationalization strings.
8264 Mon Mar 23 14:04:07 1998  Philippe De Muyter  <phdm@macqel.be>
8266         * configure.in (nlink_t): Check it using AC_CHECK_TYPE.
8267         * acconfig.h (nlink_t): New define slot.
8269 Mon Mar 23 08:17:55 1998  Pavel Roskin  <pavel_roskin@geocities.com>
8271         * src/main.c: mcedit can be named mce or mcedit.exe - only
8272         3 first letters are significant. The same for mcview.
8273         Console is always saved in do_execute() if it was saved there.
8275         * src/util.h: STRNOMP introduced (strncmp on unix and strnicmp
8276         on OS2_NT)
8278         * slang/slgetkey.c: SLang_getkey() and SLang_input_pending()
8279         enabled for OS2_NT
8281         * myslang.h: using fast one_vline() and one_hline() for OS2_NT
8283 Mon Mar 23 00:47:51 1998  Norbert Warmuth  <k3190@fh-sw.de>
8285         * autogen.sh: added support for builddir != srcdir
8287         * doc/Makefile.in: The manual pages are generated files and
8288         located in the builddir and not in the srcdir.
8290         * find.c (find_file): Use the same hotkey for the panelize button
8291         as we use with the external panelize command.
8293 Fri Mar 20 17:51:01 1998  Norbert Warmuth  <k3190@fh-sw.de>
8295         * myslang.h: --with-ncurses didn't compile: renamed
8296         KEY_BACKTAB to KEY_BTAB (the name ncurses uses)
8298         * dlg.c (dlg_key_event): likewise
8300 1998-03-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8302         * screen.c: Remove KEY_DC forever.  This should have never been
8303         here.
8305 Wed Mar 18 22:08:34 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8307         * achown.c (do_enter_key): call endgrent, endpwent.
8309         * chown.c (init_chown): call endgrent, endpwent.
8311 Tue Mar 17 23:58:40 1998  Pavel Machek  <pavel@elf.ucw.cz>
8313         * src/file.c: Fix for the case where the disk gets full.
8315 Tue Mar 16 18:35:53 1998 Stas Maximov  <stmax@u213.srcc.msu.su>
8317         * src/hotlist.c default values for dialogs which add entries to hotlist
8318         are now set to the current directory.
8320 Tue Mar 10 14:42:01 1998 Stas Maximov  <stmax@u213.srcc.msu.su>
8322         * vfs/extfs.c, lib/mc.ext, vfs/extfs/extfs.ini, vfs/extfs/cpio.in
8323         Added support for cpio extfs including compressed and gzipped
8324         cpio archives. compress and gzip handled separately because I saw
8325         a lot of systems which have compress, but don't have gzip.
8327 Sat Feb 21 16:46:49 1998 Stas Maximov  <stmax@u213.srcc.msu.su>
8329         * src/subshell.c: failed to grantpt on SVR4 due to zero-initialized
8330         subshell_pid. sigaction handler for SIGCHLD does waitpid(subshell_pid,
8331         ...) and when subshell_pid == 0 it steals the zombie from grantpt(3)
8332         which does fork/exec/waitpid for suid program to set the permissions on
8333         pty. It's enough to initialize it to 1 or -2.
8335 1998-03-16  Federico Mena Quintero  <federico@nuclecu.unam.mx>
8337         * util.c (convert_pattern): Now the internal buffer is malloc()ed
8338         instead of being static.  This is required for long patterns.
8339         (regexp_match): Free the pattern after calling convert_pattern().
8341         * file.c (file_mask_dialog): Free the source_mask after calling
8342         convert_pattern().
8344 Mon Mar 16 13:03:45 1998  Pavel Roskin  <pavel_roskin@geocities.com>
8346         * cmd.c: Internal edit is used by default. vi may be
8347         confusing for some users.
8349         * tree.c: tree_rmdir_cmd() should not return any value,
8350         because it is not analyzed for errors.
8352         * main.c: NT code: use O_BINARY instead of _O_BINARY
8354         * util.c: DO not test for arguments that do not make sense under
8355         Windows NT.
8357         * file.c: utime.h always included for Windows NT port.
8359         * view.c: Events are flushed only if the ports supports it.
8361 Mon Mar 16 12:30:39 1998  Stas Maximov  <stmax@u213.srcc.msu.su>
8363         * hotlist.c: Defaults on the hotlist add-current and new-entry is
8364         the current directory.
8366 Sat Mar 14 17:30:21 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8368         * file.c (panel_operate): Why was the flags in query_dialog set to
8369         D_INSERT is a big mystery.  Should be fixed now.
8371 Fri Mar 13 18:10:58 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8373         * dlg.c (dlg_stop): New routine used to finish dialog boxes.
8375         * cmd.c (set_panel_filter_to): Implementation split.  To be used
8376         by GNOME.
8378         * widget.c (input_new): GNOME-entry widget is inspired in the
8379         WInput + the history patches from Paul.  Use the GNOME-entry
8380         history, as this makes it easier to deal with the filter button on
8381         the panel.
8383         * setup.c (save_panel_types): Do not use if running on the gnome
8384         edition.   This need a lot of fixing for making this work with
8385         gnome and session management.
8387         * main.c (do_nc): DO not call setup_panels_and_run_mc as
8388         create_panels in gnome edition does all this.
8390         (setup_mc):  Skip part of the setup.
8392         (do_execute): Do not Execute any of the pause code after
8393         run for gnome.
8395 Wed Mar 12 17:46:09 1998  Norbert Warmuth  <k3190@fh-sw.de>
8397         * screen.c (chdir_other_panel, chdir_to_readlink): Use passed
8398         panel instead of cpanel (removed mixed use of panel and cpanel).
8400         * main.c, screen.c: Deleted F13 from the default keymap, added F13
8401         and F14 to the panel's keymap (the keymap for panels in listing
8402         mode). These two keys are only useful for panels in listing mode.
8403         It seems there are even more candidates for such a move. Especially
8404         select_cmd and unselect_cmd which appeared recently for the GNOME
8405         edition in screen.c act unexpected for panels in tree-mode.
8407         * cmd.c (view_simple_cmd): Added WPanel* to the parameter list.
8409         (edit_cmd_new): No need to get a panel because it is not used.
8411         * panelize.c: Changed hotkey of the Panelize button (Alt-p is
8412         already used by the input line history). I wonder if I should
8413         change it in the find dialog, too (just to have a unique hotkey
8414         for the panelize button).
8416 Wed Mar 11 19:02:48 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8418         * view.c: Lots of changes:  Split the X11 code from the main view
8419         program.  This is needed to cleanly support the addition of the
8420         Gnome version of the file viewer;
8422         New names for old functions (just a view_ prefix):
8423         view_add_character, view_add_string, view_gotoyx, view_set_color,
8424         view_display_clean.  Now all of them take a WView argument (which
8425         is ignored in the macro for the text edition).  This is to support
8426         multiple open views at once.
8428         * boxes.c (symlink_dialog): Enable ok/cancel buttons for the Gnome edition.
8430         * cmd.c (link_cmd, symlink_cmd): Provide the filename to operate
8431         on.
8433 Tue Mar 10 20:41:45 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8435         * cmd.c (unselect_cmd_panel, select_cmd_panel): To avoid races on
8436         the X11 version, these routines now take a panel argument at
8437         invocation time.
8439         * widget.c (radio_callback): Call x_radio_focus for FOCUS/UNFOCUS
8440         events.
8441         (button_callback): Fallback to default_msg on WIDGET_FOCUS
8442         messages.
8444 1998-03-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>
8446         * xslint.c (getch): Added missing "return".
8448         * utilunix.c (init_groups): Added parentheses around
8449         assignment/truth value.
8451         * boxes.c: #include <stdlib.h>
8453         * screen.c (string_inode): Cast fe->buf.st_ino to long to be
8454         consistent with sprintf format.
8456         * main.c (handle_args): Added parentheses around assignment/truth value.
8458 Sat Mar  7 14:33:38 1998  Pavel Roskin  <pavel_roskin@geocities.com>
8460         * src/complete.c: obsolete hack for OS/2 and NT removed.
8461         Completion works for NT now (not very good)
8463         * src/main.c: HOME variable is respected by NT and OS/2
8464         versions. If it is missing, we use LIBDIR on OS2_NT and "/"
8465         on Unix.
8467         * src/key.h: SHIFT_PRESSED is set to 0x0010 on NT. This value
8468         doesn't conflict with definitions for ALT and CTRL, but it is
8469         SDK-compatible.
8471         * vfs/vfs.h: Minor changes for OS/2. EMX defines mkdir with
8472         2 arguments
8474         * vfs/tcputil.c, vfs/utilvfs.c: signal.h was includes twice.
8476         * vfs/Makefile.in: undelfs.h is not used and should disappear
8478         * slang/slos2tty.c: new file, copied from SLang-0.99.38,
8479         needed for OS/2 port
8481         * slang/Makefile.in: added slos2tty.c
8483         * vfs/extfs/README: annoying spell errors corrected
8485         * src/main.c: --termcap disabled for OS2_NT because it doesn't
8486         (and cannot) work. ARCH_FLAGS is not needed anymore.
8488         * src/text.c: most includes removed. Added a warning is someone
8489         compiles this file with HAVE_X. Improved color scheme for
8490         consoles with 16 background colors (e.g. OS/2). Hack for OS/2
8491         removed.
8493         * src/util.c, src/util.h: STRCOMP and MC_ARCH_FLAGS are moved
8494         to util.h. It may be useful to use them for filenames' completion
8495         on OS2_NT
8497 Fri Mar  6 19:29:54 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8499         * find.c: Simplify header files: use the fs.h include file.
8501         (use x_flush_events).
8503         * screen.c (string_file_name): In GNOME, the CList widget does the
8504         filename truncation, so we do not do it here.
8506         (panel_new): Initialize all of the wpanel contents to zero.  This
8507         will is required by the GNOME X ports (to figure out if a field
8508         has been inited or not).
8510 Thu Mar  5 10:28:40 1998  Norbert Warmuth  <k3190@fh-sw.de>
8512         * popt.c (poptParseArgvString): make it compile with the native
8513         compiler on AIX 4.1.3
8515 1998-03-04  Federico Mena Quintero  <federico@nuclecu.unam.mx>
8517         * cmd.c: Added #include "x.h"
8519 Wed Mar  4 14:49:55 1998  Norbert Warmuth  <k3190@fh-sw.de>
8521         * doc/mc.1.in, mc.hlp: updated (these files haven't been updated
8522         at the last change to mc.sgml)
8524         * doc/mc.sgml: spelling error corrected
8526         * Makefile.in: renamed all references of mc.1 to mc.1.in
8528         * find.c (locate_egrep): Don't use an absolute path if egrep isn't
8529         found at the usual places. Then execvp will search the directories
8530         passed in the environment PATH variable (a little bit slower but
8531         better than a defunct find content).
8533         * tree.c: removed the include file I mistakenly added with my
8534         last patch.
8536 Tue Mar  3 20:00:36 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8538         * file.c (get_file): Take a panel argument.  I am pretty sure that
8539         this is broken for the case where we are copying from a WTree.
8541         (panel_operate): take a panel argument instead of defaulting to
8542         cpanel.
8544 Mon Mar  2 15:54:55 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8546         * dlg.c (create_dlg): Set running to 0 on creation;
8547         (add_widgetl): do widget initialization if the dialog is already
8548         running when this dialog box is created.
8550 Mon Mar  2 12:11:37 1998  Norbert Warmuth  <k3190@fh-sw.de>
8552         * vfs/ftpfs.c (changetype): Removed the hack which always forced
8553         sending the command "TYPE I" when changing to binary transfer mode
8554         was requested even when MC thought the connection was already in
8555         binary mode (bucket->isbinary == 1). The correct fix is now in
8556         login_server.
8558         * vfs/ftpfs.c (login_server): Set the transfer mode stored in
8559         the bucket to UNKNOWN (the bucket might be reused and the old
8560         transfer mode isn't valid any longer).
8562         * screen.c (panel_key): Cleanup: deleted if-clause with -1 (EV_NONE)
8563         which isn't delivered to widgets by the dialog manager; always
8564         return 1 when key was handled; removed the function keys from the
8565         panel's keymap (the function keys are always handled by the
8566         buttonbar); don't eat characters below ' ' (C-l and Shift-F3 now
8567         work even when quick search was started); characters between 32 and
8568         255 start quick search if there is no command line (no C-s necessary
8569         to start search).
8571         * tree.c (tree_key): likewise
8573 Tue Feb 24 18:37:36 1998  Stas Maximov  <stmax@u213.srcc.msu.su>
8575         * subshell.c: Set subshell_pid to 1 on startup
8577 Fri Feb 13 19:59:39 1998  Alexander Savelyev  <fano@VCom.kiev.ua>
8579         * screen.c: KEY_DC is also handled by delete_cmd.
8581         * vfs/ftpfs.c (chdir): sending the CWD command is not necessary
8582         (imho).
8584         (ftpfs_connection_close): Do not use WAIT_REPLY, closes
8585         connections faster.
8587         (open_data_connection): implement the reget command.
8589         * boxes.c: bigger VFS dialog box.
8591         * file.c (init_replace): Add support for copying files only if the
8592         size differs, and support for regetting ftp files.
8594 Wed Feb 11 20:08:50 1998  Norbert Warmuth  <k3190@fh-sw.de>
8596         * user.c (execute_menu_command): Extended the syntax of %-macros
8597         used in the user menu in order to switch quoting on (default) and
8598         off, e.g. %0f means don't quote the expanded macro, %f and %1f mean
8599         quote the expanded macro.
8602 Fri Jan 30 16:43:47 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8604         * dlg.c (create_dlg): Now we pass the flags parameter to the
8605         create_dialog routine.
8607         * tkmain.c (xtoolkit_create_dialog): Check for the grided value
8609 Fri Jan 23 07:28:54 1998  Peter Daum  <gator@cs.tu-berlin.de>
8611         * extfs.c (open_extfs_archive): Pass the filename to the list
8612         command.
8614         * extfs/mailfs: New file system for browsing mail files (support
8615         for compressed mail files as well).
8617 Fri Jan 23 07:19:18 1998  Pavel Roskin  <pavel_roskin@geocities.com>
8619         * edit/edit.h: mc_mkdir requires 2 arguments for any operation
8620         system. Obsolete #ifdef's removed.
8622         * edit/editwidget.c: ansi standard violation removed
8624         * nt/Makefile.NT: default SLang directory is now ../slang. Most
8625         of SLang sources are no more compiled for MC.
8627         * nt/drive.h: new file. Copied from os2/drive.h with minor changes
8629         * nt/ket.nt.c: new way for handling conflicting SHIFT_PRESSED
8630         definitions. get_event can work without blocking. Copy, move
8631         and delete operations work normally.
8633         * nt/slint.nt.c: SLang_getkey2 and Slang_input_pending2 are
8634         copied from src/slint.c
8636         * nt/sys/param.h: annoying warnings temporarily suppressed.
8638         * slang/slvideo.c, slang/slw32tty.c: new files. They contain
8639         changes by Alexander Dong.
8641         * src/myslang.h: definitions for ASCII symbols removed, since
8642         they are available in slang.h. Double lines are not used anymore.
8644         * src/panelize.c: sys/wait.h is included only if HAVE_SYS_WAIT_H
8645         is defined
8647         * nt/Makefile.NT: text.c is added
8649         * nt/Makefile.VC4: "-debug" switch for linker is not used for
8650         release version
8652         * src/screen.c (show_dir): double lines are no more used by NT and
8653         OS/2 ports.
8655         * src/wtools.c (real_input_dialog_help): layout of input dialog for
8656         XView port is corrected
8658         * edit/edit.h: mc_mkdir requires 2 arguments for any operation
8659         system. Obsolete #ifdef's removed.
8661         * edit/editwidget.c: ansi standard violation removed
8663 Wed Jan 21 14:01:29 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8665         * ext.c (regex_command): reverted the patch that changed tests for
8666         *p == ' ' || *p == '\t' to isspace().  isspace() is true for tabs,
8667         newlines, carriage-returns and vertical tabs as well.  Which is
8668         not what we want.
8670 Wed Jan 21 11:58:39 1998  Sung-Hyun Nam  <namsh@lgic.co.kr>
8672         * ftpfs.c (retrieve_dir): Avoid compiler warning by testing
8673         explicitly the value.
8675         screen.c (format_file): color not initialized when we met
8676         empty_line.
8678 Wed Jan 21 11:28:21 1998  Alex Tkachenko  <alex@bcs.zp.ua>
8680         * cmd.c, utilunix.c: cosmetic changes to reduce compiler warnings
8682         * utilunix.c (my_system): small fix for SCO zombies moved here;
8683         now it returns WEXITSTATUS(status) instead of status itself. While
8684         missing it may not hurt on i.e., linux, on SCO it gives incorrect
8685         value.
8687         * vfs/extfs.c system() calls replaced with my_system() call; this
8688         allows a greater degree of control - fixes SCO system() return value
8689         processing. Notice: plain replacement system() with WEXITSTATUS(system)
8690         does not produce correct behavior (don't ask me why).
8692         * panelize.c (do_external_panelize): similar fixes for pclose()
8693         return value on SCO.
8695         view.c (load_view_file): inverted value of viewer_magic_flag to
8696         put viewer decompression state in accordance with F8 label text.
8697         Also default_nroff_flag is initialized to be 1; thus enabling all
8698         filter processing by default easies mc usage for novice users.
8700 Sun Jan 18 13:47:37 1998  Sung-Hyun Nam  <namsh@lgic.co.kr>
8702         * main.c
8703         * panel.h, tkscreen.h : error when compile dlg.c
8704         * tkconf.h : paint_frame
8705         * screen.c : to include paint_frame
8706         * tkmain.c : I just copied clr_scr() from the text.c
8708 Fri Jan 16 16:19:59 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8710         * screen.c (format_file): Do not invoke the file_compute_color
8711         routine for empty lines.
8713         * gmain.c: Color scheme for Gnome
8715         * gscreen.c: Color setup now allocated the GdkColor *.
8717         * color.c: Moved the default color setting to a per-port
8718         location (text.c for the text mode edition);  new color
8719         configuration: core;  Fixed the case where the color spec was
8720         buggy and we kept on a infinite loop;
8722 Fri Jan 16 13:47:13 1998  Pavel Roskin  <pavel_roskin@geocities.com>
8724         * nt/drive.nt.c, nt/chmod.nt.c: Updated button_new and check_new
8725         calls
8727 Fri Jan 16 12:47:39 1998  Norbert Warmuth  <k3190@fh-sw.de>
8729         * vfs/ftpfs.c (command): Don't log passwords when the dialog between
8730         server and client is logged to a file (mc -l logfile).
8732         * vfs/ftpfs.c (resolve_symlink, retrieve_dir): When a directory
8733         contains spaces send two commands ("CWD path" and  "LIST .") instead of
8734         one command ("LIST path") in order to get directory listings.