* src/user.c (execute_menu_command): Use mc_mkstemps().
* src/util.c (mc_mkstemps): New function - safely create and
open temporary file. Return the handle and the name.
* src/util.h: Declarations for init_tmpdir() and mc_mkstemps().
Define TMPDIR_DEFAULT and SCRIPT_SUFFIX.
* vfs/direntry.c (vfs_s_open): Use mc_mkstemps. Create and close
temporary file to reserve its name on the filesystem.
(vfs_s_retrieve_file): Use mc_mkstemps().
(g_tempnam): Remove.
* vfs/extfs.c (extfs_open): Use mc_mkstemps().
* vfs/sfs.c (redirect): Likewise.
* vfs/shared_ftp_fish.c (_get_file_entry): Likewise.
(retrieve_file): Likewise.
* vfs/vfs.c (mc_def_getlocalcopy): Likewise.
* vfs/xdirentry.h: Remove declaration of g_tempnam().
sys/time.h as recommended by Autoconf documentation.
* cpio.c: Remove all time-related includes - they are in vfs.h.
* extfs.c: Likewise.
* ftpfs.c: Likewise.
* mcfs.c: Likewise.
* mcserv.c: Likewise.
* tar.c: Likewise.
* util-alone.c: Likewise.
* vfs.c: Likewise. Include xdirentry.h.
* tar.c (read_header): memory leaking for empty symlink's names fixed
* utilvfs.c (vfs_split_url): *host is not assigned if host is null
* ftpfs.c (login_server): new features of vfs_split_url () used,
my_get_host_and_username became macro
* vfs.c (mc_opendir, mc_chdir): unneeded calls to concat_dir_and_file
removed (vfs_canon removes trailing '/')
* sfs.c (vfmake, redirect): allocated memory realeased on errors
* ftpfs.c (netrc_next): "const char * keywords" is pretty nice.
* ftpfs.c (dir_load): At last, found place, that broke handling
directories with spaces in name. Problem was in prepending "/"
to "." for current directory. Which was, obviously, wrong. Hacked
to make just "LIST -la ." instead.
* vfs.c: Changed to BUF_* constants in some places.
* vfs.c (mc_def_getlocalcopy): free() replaced by g_free() to prevent
crushes with mad, thanks to Timur I. Bakeyev <timur@bat.ru>
* fish.c (linear_start): name wasn't freed after usage
* cpio.c (cpio_ungetlocalcopy): return type changed to int,
function return 0 now
* direntry.c (vfs_s_close, vfs_s_resolve_symlink): memory, allocated
by vfs_s_fullpath () is freed after use
* ftpfs.c (linear_start): ditto;
Patch by Andrew V. Samoilov <sav@bcs.zp.ua>
* vfs.c (vfs_parse_ls_lga): don't hard code st_ino and st_dev to 0's,
these variables must be assigned in vfs_s_new_inode () or extfs
layer, so ftpfs subdirectories now can be copied.
* gnome/gcmd.c (gnome_about_cmd): Change strings in gmc "about" to
static as they only translated once.
* src/menu.c (create_menu, menubar_drop_compute, menubar_paint_idx):
Discount '&' for hotkeys when checking menu widths to avoid the
extra blank space.
Moved this accounting from the drawing to the creating function.
* src/widget.c: Translate History box tittle.
* po/es.po, po/es_ES.po: added translation for history box title
1999-08-01 Norbert Warmuth <nwarmuth@privat.circular.de>
* src/vfs.c: Don't close a function definition with "};". SunCC from
2.5.1 chokes on the extra semicolon.
(mc_munmap): Don't dereference function pointer when checking for
NULL (this check is supposed to prevent a segfault instead of
causing one). This haven't got noticed up to now becaue there's no
file system with mmap but without munmap.
* acconfig.h: Add WITH_SMBFS
* macros/gnome-vfs.m4: Support conditional samba support.
1999-06-22 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gsession.c (create_default_panel): Use directory specified in
command line.
* gcorba.c (corba_create_window): Pass the directory we receive or
cwd if this value is NULL.
* gmain.c (non_corba_create_panels): Use parameter for startup
directory (use the this_dir external directory for this).
(create_panels): Pass this_dsir to non_corba_create_panels and
corba_create_window.
* file.c (move_dir_dir): Give an error when an attempt is made to
move an empty directory into itself.
1999-06-14 Wayne Roberts <wroberts1@cx983858-b.orng1.occa.home.com>
* vfs/smbfs.c: New file. Implements the Samba-based file system.
* vfs/vfs.h: Declare vfs_smbfs_ops, vfs_file_is_smb.
* vfs/vfs.c (vfs_file_is_smb): implemented.
(vfs_init) register smbfs.
* vfs/samba: Incorporate SAMBA source code required for smbfs
1999-05-27 Miguel de Icaza <miguel@nuclecu.unam.mx>
* Make.common.in (confdir): Define confdir as sysconfdir. This
should fix the problem we had with FSSTND distributions.
everything is going ok.
Ok, I've now limited number of "could not parse" error messages to 5
per session. Lower this limit if it makes you crazy, but DO NOT REMOVE
those messages.
are almost complete (i.e. to handle all nitty gritty cases), but they
seem to be working OK right now. SM should be much more stable now.
Please tell me if you find any weird behavior - Federico
1999-03-30 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gdesktop-icon.c (desktop_icon_realize): Remove the
WM_CLIENT_LEADER property from icon windows so that window
managers will not store SM information for them.
* gnome-open-dialog.c: Added missing #includes.
* gdesktop-init.c (desktop_init_at): Removed an unused variable.
* gdesktop.h: Added some missing prototypes.
* gmain.h: Added some missing prototypes.
* Makefile.in: Added gsession.[ch] to the list of sources.
* gmain.c (create_panels): Consider whether we have a CORBA server
and session management.
* gdesktop.c: #include "gdesktop-init.h"
* gdesktop.c: Added a missing cast to GNOME_DIALOG.
* gmain.c (create_panels): Removed the run_desktop global
variable.
* glayout.c (create_container): Set the wmclass of the panel to
include its unique ID.
* gsession.[ch]: New file with the functions that deal with
session management.
* glayout.c (gnome_exit): Use session_set_restart().
* gcorba.c (corba_init): Now returns an int with an error value.
(corba_init_server): Initialize the server properly.
Fixed all the object implementation code.
(corba_create_window): New function used to create a window with
the CORBA server.
* gmain.c (gnome_check_super_user): Now the check for running as
root is done here. There should be no GUI code in src/.
1999-03-30 Federico Mena Quintero <federico@nuclecu.unam.mx>
* dlg.c (dlg_run_done): Do not call the callback of a NULL current
widget.
* setup.h: Added missing prototype for setup_init().
* filegui.c (check_progress_buttons): Added a missing return
value.
* dlg.c (remove_widget): Added a missing return value.
* main.c: Removed the global directory_list variable.
Removed the main_corba_register_server() function.
* main.h: Removed the global run_desktop variable.
* panel.h: Now the panel structure has a unique numerical ID used
for session management.
* screen.c (panel_new): Maintain a unique ID for each panel.
* main.c (maybe_display_linksdir): Handle display of the desktop
init dir here.
(main): Call gnome_check_super_user().
(init_corba_with_args): Call corba_init_server().
* main.c (init_corba_with_args): Do CORBA initialization here. Also
removed the global force_activation option.
1999-03-30 Federico Mena Quintero <federico@nuclecu.unam.mx>
* vfs.c (vfs_add_current_stamps): Only do stamping of the panels
if they exist.
* mcserv.c: #include <sys/wait.h>
(get_client): Put `#ifdef __EMX__' around an otherwise-unused
variable.
* utilvfs.c (vfs_split_url): Fix NULL <-> 0 confusion when
comparing characters.
* ftpfs.c (retrieve_dir): Removed unused variable dot_dot_found.
* extfs.c (extfs_init): Assign `key' to c, not `&key'.
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:09:48 1999 Timur I. Bakeyev <mc@bat.ru>
* All around the source: Changed copy_strings() to g_strconcat(). Modi-
fy last parameter in concat_dir_and_file() to "" - to prevent stack from
disbalancing.
- SFS-based file systems now work on GNOME edition, I was
not waiting for child process to finish decompressing.
- VFS code cleanup. I am going to eventually get rid of all
the macro-mania that has creeped into the vfs layer.
Miguel
* vfs/vfs.c (vfs_timeout_handler): Guard from recursive invocation.
Sat Jan 9 19:13:28 1999 Norbert Warmuth <nwarmuth@privat.circular.de>
* vfs/sfs.c (sfs_free): Fixed wrong linked list handling (head was
lost after the first iteration).
(sfs_getid): dito, return value was wrong.
* vfs/vfs.c (vfs_parse_filedate): If the date is less than 6 months
in the past, it is shown without year. In this case MC assumed
the current year which is wrong from Jan to Jun.
* screen.c (Xtry_to_select): Don't select a similar file when
"name" can't be found in the panel (when deleting files the
selection jumpped from the deleted "file" to a directory which
started with the same character as "file", annoying).
Strip known vfs suffixes from "name" before trying to select
(I think Timur made this suggestion a few months ago). Know the
vfs is mature enough to do this.
* vfs/vfs.c (vfs_strip_suffix_from_filename): New function which strips
known vfs suffixes from a filename and returns a malloced string
which has to be freed. Possible improvement: strip vfs suffix from
last path component.
* vfs/extfs/*: added "umask 077" to every script.
* vfs/vfs.c (vfs_parse_ls_lga): ignore trailing + in permission string
which indicate a file with extented attributes (ACL)
Wed Nov 25 22:16:19 1998 Norbert Warmuth <nwarmuth@privat.circular.de>
* src/cmd.c (dirsizes_cmd): Quote characters with a special meaning
when passing it to du.
MC now depends on glib (currently only the assertions are used).
VFS structure declaration fixes.
Uses the new icon list (it is dog slow, need to fix this tonight at home).
Added single file filesystem (sfs)
Added vfs_flags so library users can disable selected filesystems
Minor shuffling of functions so garbage collection works for library
to blame first when it breaks something.
Mon Jun 1 12:33:08 1998 Alexander V. Lukyanov <lav@yars.free.net>
* configure.in: allowed to use `configure --with-included-gettext'
on systems (like solaris) that have their own libintl
Mon Jun 1 14:19:20 1998 Bakeyev I. Timur <timur@comtat.kazan.ru>
* vfs/vfs.c (parse_ls_lga): allow a bit wider range of listings.
* vfs/vfs.c (is_time, is_year): new functions
Mon Jun 1 12:47:50 1998 Norbert Warmuth <k3190@fh-sw.de>
* vfs/ftpfs.c (ftpfs_forget): Use the new ftpfs prefix.
* extfs.c, shared.c, tar.c: I changed semantics in my previous
patch - _get_path() now modifies strings passed to it. I thought
that I were carefull enough not to introduce bugs. You guessed it -
I was not. [Many tar_ and extfs_ functions modify strings passed
to them, but as they are only called from vfs layer, it does not
matter much.]
So I renamed function to alert everyone that semantics changed.
Fixed bugs in timestamping (and segfaults) when you entered tar
inside zip file or similar.
* vfs.c (mc_open): Die if the filesystem doesn't support open
The VFS code can now be used by other applications (if you compile the
libvfs.a target and link against this).
Syntax has changes internally from the url-like syntax to a new syntax
that does not have ambiguities. A default conversor for the new syntax
will be provided in the future, also dealing with the user ~/.mc/ext files
is currently in a non-optimal state.
Keep an eye on this mailing list.
Miguel.