* dir.c (string_sortcomp): strcmp() replaced with strcoll() to make
directory listing LOCALE sensitive. I assume, strcoll exists everywhere,
as it is in POSIX.
* 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 :)
* widget.c ([forward|backward]_word): Changed one more time - now it
skips alpnums and THEN spaces+punct. That gives almost the same re-
sults, but twice quicker. Hope, this will be accepted.
* widget.c ([forward|backward]_word): Changed logic of moving - now,
it skips only spaces+punct OR alnum. Reason to have it deleting lines
like "lynx http://www.gnome.org", where "lynx http:" part was erased
in one operation. That's nasty, IMHO. Made this a separate commit, so,
if it seriously breaks compatability it's easy to revert it. Still hope,
nobody'll do that.
* file.c, widget.[ch]: Fixed long existing problems with filenames
and input widgets, then char is greater than 128. They were processed
incorrectly. As usual, char != unsigned char problem.
2000-03-03 Bjrn Eriksson <mdeans@algonet.se>
* Similar patches came from Andrew V. Samoilov <sav@bcs.zp.ua>.
* mad.[ch]: Some functions wrongly by-passed mad_alloc*() (causing
problems when later g_free()ed.
* Added mad_strndup().
* Repeated code collected in mad_fatal_error().
* The gcc-extension/C99-standard variable argument macros (adding
__FILE__, __LINE__ before ', ...') would be nice.
* Alloc_idx_hint and code added, the mad code was way too slow for my
poor computer. A hash-table would be nice.
* (mad_strconcat, mad_strdup_vprintf): g_malloc and g_new are
undefined at the top of mad.c, so mad_alloc must be used.
* vfs/ftpfs.c: Definition of PORT changed in the middle of ftpfs.c
with unexpected side effects (only when HSC_PROXY was
defined). Introduce HSC_PROXY_PORT and FTP_COMMAND_PORT and use
where appropriate.
(dir_load): Do not hard code the directory cache timeout to 10
seconds. Instead use the setting from Options/Virtual VFS ...
* vfs/fish.c (file_store): honour changed semantics for return value
(on error -1 is expected).
* vfs/ftpfs.c (file_store): dito
* gtkedit/editcmd.c (edit_replace_prompt): fix incorrect
initialization of array of structure (gcc version 2.96 20000131
chokes on it).
* lib/mc.hint: C-y and not C-u can be used to insert text in input
lines (e. g. text which has been deleted with M-d).
* configure.in: Fix the extfs-configure-fragment-in-final-output bug
* src/main.c (parse_control_file): add missing right parentheses
* src/boxes.c: fix incorrect initialization of array of structure (gcc
version 2.96 20000131 chokes on it).
* main.c (parse_control_file): add extra secutity checks for
control file. It cannot be group/world writable;
(ctl_x_map, default_map, argument_table): added const qualifier.
* fixed segfault in print_mc_usage
(pavel@ucw.cz did the commit)
* 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.
* src/subshell.c: Reason: in feed_subshell() we are trying to read
from shell pty,check for retval==-1 && errno != EIO. In that case
we flame and exit. Otherwise we are trying to write what we've
read. Good luck doing it if we got errno==EIO, which is _normal_
for situation when shell just died. Resulting write(1,foo,~0U) is
somewhat excessively, erm, verbose.
* 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.
* layout.c: always display status line. It contains vital
information for ftpfs
1999-03-19 Pavel Machek <pavel@artax.karlin.mff.cuni.cz>
* profile.c (str_translate_newline_dup): someone likes to pass
NULL's around. Warn instead of segfault.
* gcorba.c (corba_activate_server): New function. Activate the
POA manager here, when we are actually ready to process requests,
instead of at the beginning of initialization.
* gmain.c (create_panels): Call corba_activate_server().
* gscreen.c (x_create_panel): Do not change the dialog head's
current pointer.
* gmain.c (x_init_dlg): Only call x_focus_widget() if there is a
current widget.
(non_corba_create_panels): Removed the nasty hack that created a
dummy panel and destroyed it in the idle loop. Wheeeeeee!
1999-09-21 Federico Mena Quintero <federico@redhat.com>
* dlg.c (init_dlg): Walk the list of widgets only if it exists.
(dlg_broadcast_msg_to): Use safer list-walking code for if someone
inserts a widget inside the message broadcast.
* dlg.c (init_dlg): Walk the list of widgets only if it exists.
1999-09-21 Federico Mena Quintero <federico@redhat.com>
* gmain.c (x_init_dlg): Only call x_focus_widget() if there is a
current widget.
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.
* src/user.c (check_patterns): char* is used instead of char [] in sizeof
* src/util.c (string_perm): prefix named pipes by 'p' and not by `s'
1999-09-19 David Martin <dmartina@usa.net>
* gtkedit/editcmd.c (edit_print_string): Use unsigned char so that
8 bit chars from strftime get displayed when inserting date.
* lib/mc.ext.in: Add entries for bzip2 compressed pages as used in
Mandrake 6.0. The generic entry for bzip2 moved to the end of the
file to avoid interferences. In this one I changed the extension check
to a type check (as used for gzip) which might give problems in some
systems.
* configure.in: Use -Tlatin1 to format man pages when available and
"view" 8 bit chars.
1999-09-19 Norbert Warmuth <nwarmuth@privat.circular.de>
* gtkedit/edit.h: Include files reordered in order to make it compile with
--with-debug
* gtkedit/editcmd.c (menu_save_mode_cmd): calculate dialog width
dependent on lenght of translated strings to display.
* src/mad.c, mad.h, util.c, util.h: Move mad-functions from util.[ch]
to mad.[ch]
* src/option.c: Include files reordered in order to make it compile with
--with-debug
* src/mad.c (mad_init): New function. Initialize debug FILE pointer to
stderr (moved to a function because not on every system stderr is
a constant).
(mad_set_debug): added const qualifier
* src/main.c (main): call mad_init
* po/*.po: s/defination/definition/
* gnome/Makefile.in ($(MAGICDEV_GENERATED)): Make it compile with $buildir
!= $srcdir.
* vfs/ftpfs.c (ftpfs_set_debug), vfs.h: added const qualifier.
* vfs/mcserv.c: removed definition of mad_strconcat which is also
in mad.c.
this dialog doesn't look perfect but at least it doesn't break gmc.
1999-09-14 Norbert Warmuth <nwarmuth@privat.circular.de>
* gnome/layout: Added the new samba password dialog.
* src/widget.[ch] (input_new): added const qualifier
* src/util.c (wipe_password): Check for NULL.
1999-09-14 Norbert Warmuth <nwarmuth@privat.circular.de>
* vfs/smbfs.c (various places): Store filenames in memory with the unix
character set and convert it back to the dos character set when filenames
are passed back to the samba server. If samba is configured correctly
this will fix the problems with filenames which contain national characters.
(bucket_set_authinfo): Set domain, username and password which will
be used to log on and authenticate against the samba server and remember this
information on a host/share basis. If set use PASSWD to get the
password. If already authenticated against the host and share use this
information. If already authenticated against host and IPC$ use this
information. If neither of the former is true ask the user how to
log on.
(authinfo_get_authinfo_from_user): New function. Query the user for
domain, username and password to use for authentication.
(authinfo_free): New function. Free memory in authentication structure.
(authinfo_free_all): New function. Free the list used to remember
authentication information.
(authinfo_compare_host_and_share, authinfo_compare_host): New functions.
Helper functions used to search the authentication list.
(authinfo_add): New function. Add one authentication entry to the
authlist.
(authinfo_remove): New function. Remove one entry from the authlist.
(free_bucket): Free memory associated with one bucket.
(smbfs_get_free_bucket): Initialize the complete connection array
with 0. Free the memory allocated for a bucket and initialize the
bucket before reusing it.
(smbfs_open_link): use new functions to get authentication information
(get_stat_info, smbfs_stat): remove unused variables.
* treestore.c: Removed tree_store_destroy(), renamed
tree_store_init() to tree_store_get().
* tree.c (tree_destroy): Do not destroy the tree store.
(tree_new): Get the tree store, do not initialize it.
* gtkdtree.c (gtk_dtree_class_init): Sigh. Create a new signal,
called "possibly_ungrab", used to request the client to ungrab the
mouse at the proper time. This is required because the stupid
clist button press handler grabs the mouse, and we don't want that.
(gtk_dtree_select_row): Emit the possibly_ungrab signal here.
* gscreen.c (panel_tree_drag_motion): Set the
panel->drag_tree_dragging_over flag.
(panel_tree_drag_leave): Unset said flag.
(panel_tree_possibly_ungrab): Ungrab the mouse here.
* 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.
* lib/mc.sh: create temporary files in ~/.mc/tmp in order to avoid
symlink attacks (mcfn_install and the man page still needs to be
updated).
* src/main.c (print_mc_usage): Print the bug reporting address.
(main): Put prompt in a new line at termination.
* vfs/shared_ftp_fish.c (get_line): Fixed off by one error ('\0' might
have been written one slot past the supplied character array).
* vfs/ftpfs.c (resolve_symlink_without_ls_options): Don't dump core on
strange symlinks (ls -la doesn't reveal where the symlink points to
and ls -lLa doesn't resolve the symlink either)
Added protection against recursive symbolic links.
* ext.c (quote_block): How did this ever work? People, if you
realloc() things, don't keep pointers to stuff inside the original
block.
* screen.c (do_enter_on_file_entry): Pass in the full name to
if_link_is_exe().
* dir.[ch] (if_link_is_exe): Take in the full name, not the directory
and the file entry.
1999-08-26 Federico Mena Quintero <federico@redhat.com>
* gscreen.c (panel_clist_drag_motion): Pass the full name to
gdnd_validate_action().
(panel_icon_list_drag_motion): Likewise.
(panel_tree_drag_motion): Likewise.
* gdnd.c (gdnd_perform_drop): Renamed the "directory" argument to
"dest_full_name" for clarity.
(gdnd_validate_action): Likewise. Pass in the full name to
if_link_is_exe().
(drop_on_file): Do not compute the full name, since we are already
get it from the caller.
(drop_on_file): Pass in the full name to if_link_is_exe().
* gscreen.c (panel_tree_drag_data_received): Free the pathname.
* gdesktop.c (icon_drag_data_received): Pass the full name of the
file to gdnd_perform_drop(), not just the desktop directory.
* gscreen.c (editing_icon_list): New function to figure out
whether an icon in the icon list is being edited. This is a
FANTASTICALLY UGLY HACK, but we cannot add new functions to the
icon list at this point as it would break forwards compatibility.
Sigh. BUGFIX: GNOME bug tracker #382, #1065.
* glayout.c (gnome_panel_desktop_menu): Added some underline
accelerators.
* gdesktop.c (desktop_arrange_icons_items): Renamed to the desktop
namespace. Added underline accelerators.
(handle_arrange_icons_name): Made static.
(handle_arrange_icons_type): Likewise.
(handle_arrange_icons_size): Likewise.
(handle_arrange_icons_access): Likewise.
(handle_arrange_icons_mod): Likewise.
(handle_arrange_icons_change): Likewise.
(desktop_arrange_icons): Made static.
(strip_tearoff_menu_item): Made it return the number of items in
the menu, not the list of children.
(desktop_icon_info_destroy): Remove the icon from the icon hash
table.
(text_changed): Update the icon hash table information.
* gdesktop.h: Cleaned up some unused prototypes.
* gview.c (view_status): Use the correct g_snprintf() format
argument.
* gcmd.c (sort_get_func_from_type): Indented according to the MC
conventions. People, *PLEASE* follow the Gnome Programming
Guidelines, especially when modifying existing code.
* gdesktop.c (swap): Likewise.
(auto_pos): Likewise.
(get_icon_auto_pos): Likewise.
* gtkedit/syntax.c (upgrade_syntax_file): Mark error strings for
translation.
* gtkedit/editmenu.c (edit_about_cmd): Mark text in "about" for
translation as it used to be.
* po/POTFILES.in: Removed symbolic links, and outdated
gmc-window.[ch] and olddnd.c. These don't repport any new strings,
increase compile time and make po files large. Basically adds
gaction.c, g,mount, smbfs.c to the pre-previous file.
* po/es.po: Added new strings with latest editor changes. Added
strings in gaction.c. Merged with a new mc.pot after the changes
in POTFILES.in.
* gnome/gaction.c (mainly gmc_unable_to_execute_dlg): Moved g_strconcat
to g_strdup_printf, to get compact strings and make coherent
translations. Translate atomic actions (open, edit, view) when
calling this function.
* src/menu.c: (create_menu): Adjust "#ifdef ENABLE_NLS" so that menus
get the right size even when NLS is disabled.
1999-08-08 Norbert Warmuth <nwarmuth@privat.circular.de>
* po/POTFILE.in: Removed gpopup.c as it is not compiled.
* gnome/gconf.h (PORT_STATIC_IN_STRING_FILE_XTIME): new port specific
feature. The Gnome edition first calls all string_file functions
and then uses the return values of these functions. Therefore additional
static buffers in string_file_[acm]time are needed.
* src/screen.c (string_file_[amc]time): These three functions use
file_date which returns a pointer to a static buffer. In the
Gnome edition this buffer has to be coppied to a static buffer
which isn't used in the other two functions (Fix Bug #1766).
* src/util.c, util.h: Moved some constants to util.h
* vfs/tar.c (read_header): Don't segfault when a symlink points to the
root directory.
1999-08-04 Norbert Warmuth <nwarmuth@privat.circular.de>
* src/widget.c (push_history): Add SMB Link to the list of input dialogs
where urls are input without vfs prefix.
Translate the titles of these input dialogs only once.
Removed Gnome specific code because the Gnome edition doesn't use
the input history any more.
* src/util.c (strip_password): Add /#smb: to the list of urls which might
be input with password.
* src/poptalloca.h: New file with definitions for alloca. Note: alloca
is defined as malloc on systems which fail to support alloca. Don't
include this file if you frequently use alloca.
* src/findme.c, src/popt*.c: include poptalloca.h
* src/Makefile.in: added poptalloca.h
* src/menu.c (create_menu): set minimum menu width to 20 characters as
it used to be (this was part of davids patches but I haven't
applied it, yet).