* extfs.c (extfs_readlink): Revert last change: readlink does not
append a NUL character to buf.
* ftpfs.c: Warning fix.
* vfs-impl.h (struct vfs_class.readlink): Make "size" size_t.
Adjust all callers.
code reuse. Change all callers.
(vfs_s_getlocalcopy): New implementation. Don't use
mc_def_getlocalcopy(). Use vfs_s_open() to create local copy.
(vfs_s_ungetlocalcopy): New function.
* xdirentry.h: Add new field "flags" to struct vfs_s_subclass.
* extfs.c (extfs_ungetlocalcopy): Don't use
mc_def_ungetlocalcopy() in the dead branch.
* vfs.c (mc_def_getlocalcopy): Make static.
(mc_def_ungetlocalcopy): Likewise.
(vfs_s_free_inode): Remove support for "." and ".." entries.
* ftpfs.c (dir_load): Likewise.
Support for "." and ".." entries was a hack that could make the
cache non-traversible from inodes to the root and cause infinite
loop in vfs_s_fullpath().
Reported by Frédéric L. W. Meunier <lists1@pervalidus.net>
unsigned char for compatibility with non-GNU libc.
* tar.c (from_oct): Likewise with isspace().
Reported by Roland Illig <1illig@informatik.uni-hamburg.de>
* direntry.c: Likewise.
* fish.c: Likewise.
* ftpfs.c: Likewise.
* local.c: Likewise.
* tar.c: Likewise.
* utilvfs.h: Don't include <config.h> - it should be included
in all C files instead.
* xdirentry.h: Likewise.
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
* 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.
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
* sfs.c (sfs_nothingisopen): Assume for now it's always save to free
this filesystem and delete temporary files. This needs further
investigation.
* tar.c: deleted unused empty struct tar_super.
Thu Dec 31 08:40:44 1998 Norbert Warmuth <nwarmuth@privat.circular.de>
* direntry.c: Split fd_usage into fd_usage and ino_usage. fd_usage
was used for external and internal reference count. This was wrong
because we can free resources taken up by the vfs as soon as the
external reference count (now fd_usage) is zero. The internal
reference count (ino_usage) mustn't matter because the vfs has to
clean up itself in the correct order.
* vfs/direntry.c (vfs_s_new_inode): Moved initialization of st_ino
and st_dev from vfs_s_default_stat.
(vfs_s_default_stat): initialize st_ino and st_dev to zero
* vfs/tar.c (tar_open_archive): Make a new MEDATA->rdev for every
new archive.
* 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.
* fish.c (FISH_OP): changed snprintf to g_snprintf, as glib is
used anyway.
* xdirentry.h (LINK_NO_FOLLOW):
* tar.c (read_header):
* direntry.c (vfs_s_resolve_symlink):
(vfs_s_inode_from_path):
(vfs_s_open): renamed NO_FOLLOW and FOLLOW to LINK_NO_FOLLOW and
LINK_FOLLOW resp. to avoid problems on solaris, where FOLLOW and
NO_FOLLOW are defined in an enum.
* vfs.h (ELAST): define it to 300, if not already defined, thats a
bad hack, but what can we do....