confirmation may be requested when deleting directory hotlist entries
based on a user configurable setting.
* src/file.h (safe_delete): Move declaration of `safe_delete'
* src/main.h: ... here.
(confirm_directory_hotlist_delete): Declare new global variable.
* src/file.c (safe_delete): Move definition of `safe_delete'
* src/main.c: ... here.
(confirm_directory_hotlist_delete): Define new global variable.
* src/hotlist.c (remove_from_hotlist): Based on a user configurable
setting, request confirmation when removing directory hotlist
entries. The confirmation dialog honours the `Safe delete'
setting.
Reorder the buttons in the hotlist group removal confirmation
dialog so that it becomes consistent with other confirmation
boxes.
* src/setup.c (int_options): Add support for user configurable
confirmation of directory hotlist entries removal.
* src/boxes.c (conf_widgets): Likewise.
(confirm_box): Likewise.
(my_directory_hotlist_delete): New module variable.
current path in the xterm window title.
(_do_panel_cd): Call update_xterm_title_path().
(done_mc): Remove final message for the titlebar.
* layout.c: Replace "Xterm hintbar" option with more generic
"Xterm window title". Update all dependencies.
(setup_panels): Call update_xterm_title_path().
copy_current_readlink() and copy_other_readlink().
Don't do anything with cmdline and command_prompt.
* screen.c [HAVE_X]: Disable panel_event(), chdir_other_panel()
and chdir_to_readlink(). Adjust all callers.
(panel_key) [HAVE_X]: Don't use command_prompt - always
start search on alphanumeric keys.
* setup.c [HAVE_X]: Disable save_layout(), load_layout(), struct
layout. Adjust all dependencies.
* charsets.c (translate_character): Warning fix.
(init_translation_table): Don't deal with printable.
This one is initialized by init_printable_table ().
(load_codepages_list): Use CHARSETS_INDEX.
* selcodepage.c (do_select_codepage): Messages marked for i18n.
* setup.c (load_setup): Eliminate errbuf. Fix error message.
They are declared in selcodepage.c.
* setup.c [USE_VFS]: Remove declarations for variables which are
declared in vfs/ftpfs.c.
(load_setup) [HAVE_CHARSET]: init_printable_table commented
out to enable compilation. Error strings tagged for translation.
(init_setup): Optimized.
* main.c [HAVE_CHARSET]: Don't use eight_bit_clean and
full_eight_bits. Use source_codepage and display_codepage to
deduce the terminal 8-bitness.
* main.h [HAVE_CHARSET]: Change to match main.c.
* setup.c [HAVE_CHARSET]: Implement saving and loading charset
settings.
* util.c (is_printable) [HAVE_CHARSET]: Use charset settings.
* view.c [HAVE_CHARSET]: Implement charset support.
From Walery Studennikov <hqsoftware@mail.ru>.
* widget.c [HAVE_X]: Likewise.
* main.c [HAVE_X]: Likewise. Don't call init_key() and
init_key_input_fd().
* setup.c [HAVE_X]: Remove some variables that make no sence
for the GNOME edition. Eliminate save_panel_types().
* view.c [!PORT_WANTS_VIEW]: Eliminate view_mode_callback().
* dlg.c: Commited at last patch, that fixes screwed up right panel in
a long format. Occasionaly, all my colors problems also gone. All thanks
to Norbert Warmuth <nwarmuth@privat.circular.de>, who tracked down the
problem, blames to me and Federico :)
* gdesktop.c, gdnd.c, gaction.c, gicon.c,
gnome-file-property-dialog.c, gpopup.c, gpopup2.c, gprefs.cgmain.h,
setup.c: Add option of using GNOME "magic" routines to determine file
types. This makes MC intelligently look at the data in the file to see
what type of file it is, rather than looking at the filename extension.
This slows down MC quite a bit, so it has been made an optional
preference item. Type detection is expected to improve as mime-magic
matures.
* ftpfs.c: basically replaced ftpfs with new one. Unlike the
previous one, this uses new direntry.c layer, so shared_ftp_fish.c
can be killed.
This is new code, so beware.
The following is a patch from Volker Braun
<volker.braun@physik.hu-berlin.de> to fix column resizing in the
file panels.
* gcustom-layout.c (custom_layout_apply): Set the
default_user_format to the new format.
* gscreen.c (panel_fill_panel_list): Set the column widths
according to the previously stored values.
Nuked the old and hideous panel_file_list_configure_contents().
(panel_file_list_configure): Connect to resize_column in the clist.
(panel_create_file_list): Do not connect to size_allocate.
(x_create_panel): Set the column width array for this panel. Set
the user format from the default one if it exists.
* gsession.c (PanelInfo): Added information about column widths
and the user format.
(save_panel_info): Save the complete information.
(load_panel_info): Load the complete information.
(free_panel_info): Free the user format.
(idle_create_panels): Set the user format and column widths.
1999-09-20 Federico Mena Quintero <federico@redhat.com>
The following is a patch from Volker Braun
<volker.braun@physik.hu-berlin.de> to fix column resizing in the
file panels.
* setup.c (options): Declare the column width option values.
(save_configure): Save the default user format.
(load_setup): Load the default user format.
* panel.h (WPanel): Added a field for the column widths.
* main.c: In the GNOME version, we want cd_symlinks to be FALSE.
The VFS should never have to look at this variable, but alas, it
does. BUGFIX: Red Hat Bugzilla #2344.
* setup.c: Disable cd_symlinks in the GNOME version.
1999-04-05 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gprefs.c: Add new page for desktop properties.
1999-04-05 Ronald de Man <deman@win.tue.nl>
* gnome-file-property-dialog.c (create_general_properties): Use
local time here.
1999-04-05 Miguel de Icaza <miguel@nuclecu.unam.mx>
* setup.c: Save desktop information.
* setup.c: Declare extern int tree_panel_visible for the GNOME
version.
1999-02-18 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gmount.c (gmount_setup_devices): New function to set up the
mountable devices on the desktop directory. Moved over from
gdesktop.c. Added an argument that specifies whether it should
clean up the device list first.
(cleanup_devices): Delete the metadata for the devices.
(setup_devices): Free the list of device names. Use the proper
icon for each device.
(create_device_link): Better error checking.
* gdesktop.c (create_desktop_dir): Use gmount_setup_devices().
(desktop_icon_info_destroy): Made static.
(desktop_popup_items): The command for rescanning mountable
devices should go here.
(handle_rescan_devices): Call gmount and refresh the desktop.
* gdesktop.h: Removed the declaration of tree_panel_visible, since
it has nothing to do with the desktop.
* glayout.c (gnome_panel_commands_menu): Removed the recreate
devices command.
* gdesktop.c (desktop_popup_items): Added a new command to create
a file window.
tree updates from the treestore.
This speeds up a lot the display, as the GtkCTree seems to be
particularly bad at handling changes to the tree and keeping
the display in sync.
Makefile fixes to support SHELL= during compilation.
Miguel.
Sun Jan 31 20:04:13 1999 Norbert Warmuth <nwarmuth@privat.circular.de>
* vfs/vfs.c (vfs_strip_suffix_from_filename): Whoever replaces every
occurance of 0 with NULL should stop this stupidy. And replacing '\0'
with NULL is plain wrong!!. Reverted this replacement.
* vfs/ftpfs.c (load_no_proxy_list): ditto
Fri Jan 29 22:55:56 1999 Norbert Warmuth <nwarmuth@privat.circular.de>
* slang/slang.h: renamed to slang-mc.h
* slang/Makefile.in: delete slang.h on "make clean"
* configure.in: link slang/slang-mc.h to slang/slang.h when the
included slang is used. Problem was that MC's slang.h was used
when we compiled with an already installed SLang and the systems
header file were included with <slang/slang.h>.
Unfortunatly I can't use AC_LINK_FILES to make the links because
if we needn't make any links AC_LINK_FILES makes a link from
srcdir to top_builddir (builddir != srcdir).
Temporary add $LGPM to $LIBS when checking for the resizeterm
and keyok functions (ncurses might be linked against GPM).
Substitude PACKAGE (intl/Makefile makes use of it)
Sun Jan 31 19:42:47 1999 Norbert Warmuth <nwarmuth@privat.circular.de>
* gnome/Makefile.in (install_mx): make it work with srcdir != builddir
(gmc.gnorba is located in $srcdir)
* src/hotlist.c (add_new_entry_input, add_new_group_input): Make the
quick_widget arrays static and various changes needed because they
are now static. add_widgets_i18n recalculates button positions
which get lost when the quick_widget arrays are non static.
* src/screen.c (to_buffer): nul terminate string when using strncpy
* src/setup.c: Save and restore new option ftpfs_first_cd_then_ls.
Sun Jan 31 19:57:24 1999 Norbert Warmuth <nwarmuth@privat.circular.de>
* vfs/ftpfs.c (insert_dot): New function. Insert a "." into the linked
list. Stat'ing the root directory of a ftpfs fails if the dot is
missing.
(retrieve_dir): insert "." into the linked list if the ftp server
haven't send it.
Sun Jan 31 19:50:24 1999 Norbert Warmuth <nwarmuth@privat.circular.de>
* The following changes make ftpfs work with a remote AmiTCP
server are the result of somehow longish EMail debugging session. I
don't know any public server of this kind but I was told the
combination Unix/Amiga boxes are often used in intranets.
* vfs/ftpfs.c (translate_path): New function. Translate a Unix path,
i.e. MC's internal path representation (e.g. /somedir/somefile) to
a path valid for the remote server. Every path transfered to the
remote server has to be mangled by this function right prior to
sending it. Currently only Amiga ftp servers are handled in a
special manner.
* vfs/ftpfs.c (various places): use translate_path
* vfs/ftpfs.c (login_server): Assume we have to mangle pathnames if
the greatings string from the server contains the word Amiga. If
this assumption is wrong I have to find another way to turn on
path translation.
* vfs/ftpfs.c (ftpfs_get_current_directory): Prepend a leading slash
if it is missing. MC needs it as seperator between hostname and
path in its internal url representation.
Wed Jan 27 03:17:44 1999 Timur Bakeyev <mc@bat.ru>
* Converted memory managment to Glib. Now we use g_new()/g_malloc()/
g_strdup()/g_free() routings. Also, copy_strings() replaced by
g_strconcat(), strcasecmp() -> g_strcasecmp(),and sprintf() by
g_snprintf().
* Some sequences of malloc()/sprintf() changed to g_strdup_printf().
* mad.[ch]: Modified, to work with new GLib's memory managment. Fixed
a missing #undef for tempnam, which caused dead loop. Add several new
functions to emulate GLib memory managment.
*main.c, mad.[ch]: Add a new switch "-M", which allows to redirect MAD
messages to the file.
* util.[ch], utilunix.c: Modified, deleted our variants of strcasecmp()
and strdup() - we have g_ equivalences. Remove get_full_name() - it is
similar to concat_dir_and_file(). Some other tricks with g_* functions.
* global.h: Modified, extended. Now it is main memory mangment include -
i.e. all inclusions of <stdlib.h>, <malloc.h>, <glib.h>, "fs.h", "mem.h",
"util.h" and "mad.h" done there. This elimanates problem with proper or-
der of #include's.
* All around the source - changed order of #include's, most of them gone
to global.h (see above), minor changes, like "0" -> NULL in string func-
tions.
* mountlist.c: Define xBSD on FreeBSD.
* doc/mc.sgml, mc.1.in: Deleted obsolete information about
tar_gz_memlimit. Partially rewrote the section about the
Virtual FS.. configuration dialog.
* main.c (parse_an_arg): New function, popt callback. Option
parsing in gmc was broken. The gnome*_init_with_popt_table free
the option tables and gmc tried to use the option tables later.
* main.c (handle_args): In the Gnome edition don't parse the
options a second time.
* boxes.c (configure_vfs), setup.c: Deleted obsolete options.
tar.gz files are now always unzipped to a temporary file on disk.
* gnome/layout: Deleted obsolete widgets from the Virtual FS configuration
dialog.
* vfs/tar.c: Deleted global variable tar_gzipped_memlimit.
Mon Dec 21 14:28:55 1998 Norbert Warmuth <nwarmuth@privat.circular.de>
* filenot.c (my_mkdir_rec): Someone broke this function completely by deleting
a line. Funny things happen if you use an already freed pointer.
Improved error handling: try to make directories recursivly until
mkdir succeeds or fails with errno != ENOENT. Now you will get the
correct error message when you don't have permission to create a
directory.
* mountlist.c: Deleted function prototypes for strdup and strstr,
they might conflict with definitions in the system header files.
* cmd.c, tree.c: Updated to the new file.c api.
* file.c: (copy_file_file, copy_dir_dir, move_file_file,
move_dir_dir): Updated to work with the new updating stuff.
* setup.c: New configuration option to compute the totals to be
transfered.
* file.c (compute_dir_size, panel_compute_totals): New routines to
compute the total ammount of information that is going to be
transfered.
Ok, finally splitted the GUI code that dealt with the file operations into
a separate file. It is now possible to write a native Gtk version of this.
Until the Gtk-native version is done, the code in mc/gnome/ is linking with
filegui.c.
Miguel
* Makefile.in: Removed gtrans.c from the list of sources.
* gdesktop-icon.c: #ifdef cleanups.
* gscreen.c (panel_create_file_list): Doh. Return the scrolled
window, not the clist.
* gdnd.c (get_action): Implement the DnD actions menu.
1998-11-10 Federico Mena Quintero <federico@nuclecu.unam.mx>
* setup.c: Removed the icons_snap_to_grid and
want_transparent_{icons,text} options.
* mfmt.c (main): When there are an even number of empty lines
between messages, all goes well, but when the number of empty
lines between messages is odd, the program fails.
Sun Oct 11 20:11:16 1998 Norbert Warmuth <nwarmuth@privat.circular.de>
* setup.c: Option ftpfs_use_unix_list_options was saved from
and restored to the wrong variable (ftpfs_use_passive_connections).
* setup.c: save and restore new global variable/option
ftp_use_unix_list_options
Tue Sep 15 20:31:32 1998 Norbert Warmuth <k3190@fh-sw.de>
* ftpfs.c (ftp_use_unix_list_options): New global variable/option.
If true we try to use 'LIST -la <path>'. When it fails we use the
two commands 'CWD <path>' and 'LIST' instead.
(resolve_symlink): rewritten. Don't get a second directory listing
with `LIST -lLa'. Instead use the cache to get the file stat of
symbolic links. If the directory the symlink points to isn't
already in the cache the directory listing will be fetched and
stored in the directory cache (without resolving symlinks
recursively).
The new method to resolve symlinks is faster if symlinks
the same directory or the directory the symlink points to
is already in the cache.
This function was small and nice until I discovered that it was
broken for symlinks to symlinks. Now it looks ugly and perhaps I
will revert it to use "LIST -lLa" again. With a fast connection it
doesn't matter which methode we use but with a slow connection I
wouldn't hesitate to burn more cpu cycles on the client side.
(retrieve_dir): Added parameter to tell whether to resolve
symlinks (don't resolve symlinks in directory listings retrieved
while resolving symlinks).
When we don't get a directory listing with 'LIST -la <path>' then
try to get it with `CWD <path>; LIST'.
Tue Sep 15 20:27:29 1998 Norbert Warmuth <k3190@fh-sw.de
* ftpfs.c (login_server): s/ftpfs_get_host/my_get_host/
(retrieve_file_start2): Don't create target file O_EXCL, in
copy_file_file we check existance of the target file and know
that we want to truncate it (this change was already done a
while back but it was reverted with the vfs-split).
Tue Sep 15 20:15:42 1998 Norbert Warmuth <k3190@fh-sw.de>
* ftpfs.h (struct connection): added boolean which indicates that
the ftp server doesn't unterstand Unix ls options
* ftpfs.h (struct dir): added enum to store symlink status of the
in memory directory cache (directory has no symbolic links;
symbolic links but not yet resolved; symbolic links which are resolved)
Tue Sep 15 20:02:08 1998 Norbert Warmuth <k3190@fh-sw.de>
* shared_ftp_fish.c, fish.c: updated references to retrieve_dir to
honour the additional boolean parameter
We now just need to get some nice icons.
I am also revamping a little the toolbar, to have a switch to
icon mode and switch to listing mode icons. To make people
happy. More on this tomorrow.
Miguel.
* edit/syntax.c: Disable debug messages on stderr.
* edit/edit.h: Added missing _()
Sun May 10 14:51:03 1998 Norbert Warmuth <k3190@fh-sw.de>
* ftpfs.c (__ftpfs_chdir): CWD command wasn't sent at all. This
optimation is wrong because for directories containing spaces we
have to "CWD <pathname>" and "LIST -la" instead of
"LIST -la <pathname>".
I implemented a different optimation. Now ftpfs_chdir only stores
the new working directory and sets a flag. __ftpfs_chdir is called
when we really want to change the directory on the ftp server.
(resolve_symlink): Log the directory listing to the logfile.
* ftpfs.h (struct ftpfs_connection): Added a (per connection)
cwd_defered flag.
Sun May 10 13:27:50 1998 Norbert Warmuth <k3190@fh-sw.de>
* widget.c (handle_char): Don't try to to delete default text in
input widget more than once. Right after MC's start copy_filename
(ESC Enter) failed because a flag wasn't cleared while characters
were stuffed into the commandline (Andrej reported this bug).
* main.c (copy_readlink): usr mc_readlink instead of readlink
* file.c: Changed default for the copy/move option "dive into
subdir if exists" to off (note: this was only possible after the
change in setup.c).
(copy_dir_dir): Activated the previously uncommented code which
implements "Dive into subdirs". Even when there's no case where we
actually would like that behaviour it is a documented feature.
Though I don't wanted to change the default behavour. Hence the
option change.
(file_mask_defaults): set dive_into_subdirs
(file_mask_dialog): Fix for debian Bug #20727: Move operation with
"[ ] Dive into subdir if exists" and destination filename not
wildcarded. If destination is an existing directory then files
will be moved into this directory. If destination is not an
existing directory then src file will be renamed (one file
selected) or an error will be displayed (more than one file
selected).
(file_mask_dialog): made the option "Using shell patterns" local
to the current copy/move operation, i.e. this option is always
initialized with the global options's value. Previously it affected
the global Options/Configuration/shell Patterns.
Another possiblilty would be to make the global option a default
option on startup and keep changes in the copy/move dialog
(without saving these changes with save setup).
* setup.c: Don't save and load options which can be changed
outside the options menu. For example I don't like that
preserve_uid_gid and dive_into_subdirs from the copy/move dialog
are saved and restored (strange, what about the other options from
this dialog?).
It would be much cleaner to make these option read-only. This way
one could edit ~/.mc/ini to provide default option setting on
startup and "Save setup" wouldn't have side effects outside the
option's menu.
Sun May 10 13:24:20 1998 Norbert Warmuth <k3190@fh-sw.de>
* doc/mc.1.in, doc/mc.sgml, mc.hlp: Updated to reflect new default
for dive into subdirs.
2. Load/Save desktop-icon transparent state.
3. Add arrange icons code.
4. Add snap to grid option (default now).
5. Fixed viewer crash.
Still left to do:
- Nice config dialog to set the above variables.
* main.c, screen.c, dirhist.c, dirhist.h, main.h, widget.c,
main.h and others?: Directory history added. The previous
directory history code was removed. The directory history now
loads and saves using the same routines as the input widget. The
keys meta-y, and meta-u are used to go backward and forward
through the history. The buttons to the right and left of the
current directory display on the panel can be used as well. The
v button brings up a history, but no key is assigned to this.
Discussion as to correct color and shape of these buttons is
open. show_hist() in widget.c is made generic to be called for
any widget. Help pages still needed to be added for the
directory history.
Today:
- New Menu layout! Weeee!.
- More mc commands exposed to the GNOME edition.
- Use gnome stock pixmap buttons.
- Use gnome stock for the menus.
- Now it is possible to quit the program :-)
- Various other bits.
If you can test it, I would appreciate it.
-Miguel.