1
1

Increased version number to 4.5.2

Documentation update.

1998-10-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* fish.c (command): Replace vnsprintf with g_strdup_vprintf.  This
	is both safe and more correct, as there is no limit on the
	pathname.

	* ftpfs.c (command): Same as above.

	* util-alone.c (print_vfs_message): Same as above.

1998-10-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* layout.c (print_vfs_message): Use g_snprintf instead of
	vnsprintf.
Этот коммит содержится в:
Miguel de Icaza 1998-10-30 17:45:43 +00:00
родитель e704d53f77
Коммит f15ee9faf9
12 изменённых файлов: 884 добавлений и 638 удалений

Просмотреть файл

@ -5,7 +5,7 @@ AC_INIT(create_vcs)
AC_CONFIG_HEADER(config.h) AC_CONFIG_HEADER(config.h)
PACKAGE=mc PACKAGE=mc
VERSION=4.5.0 VERSION=4.5.2
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
AC_DEFINE_UNQUOTED(VERSION, "$VERSION") AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
AC_SUBST(VERSION) AC_SUBST(VERSION)

Просмотреть файл

@ -2082,7 +2082,7 @@ regular Unix file system; the <em/ftpfs/, used to manipulate files on
remote systems with the FTP protocol; the <em/tarfs/, used to remote systems with the FTP protocol; the <em/tarfs/, used to
manipulate tar and compressed tar files; the <em/undelfs/, used to manipulate tar and compressed tar files; the <em/undelfs/, used to
recover deleted files on ext2 file systems (the default file system recover deleted files on ext2 file systems (the default file system
for Linux systems), fish (for manipulating files over shell connection for Linux systems), fish (for manipulating files over shell connections
such as rsh/ssh) and finally the <em/mcfs/ (Midnight Commander file such as rsh/ssh) and finally the <em/mcfs/ (Midnight Commander file
system), a network based file system. system), a network based file system.
@ -2247,13 +2247,13 @@ to extract the selected files into a regular partition.
To use this file system, you have to chdir into the special file name To use this file system, you have to chdir into the special file name
formed by the "/#undel:" prefix and the file name where the actual formed by the "/#undel:" prefix and the file name where the actual
file system resides (without /dev/ prefix). file system resides.
For example, to recover deleted files on the second partition of the For example, to recover deleted files on the second partition of the
first scsi disk on Linux, you would use the following path name: first scsi disk on Linux, you would use the following path name:
<tscreen><verb> <tscreen><verb>
/#undel:sda2 /#undel:/dev/sda2
</verb></tscreen> </verb></tscreen>
It may take a while for the undelfs to load the required information It may take a while for the undelfs to load the required information

Просмотреть файл

@ -1,3 +1,10 @@
1998-10-27 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gscreen.c (panel_icon_list_button_release): Remove unused
variable.
Provide hand written CList-start drag code
1998-10-30 Federico Mena Quintero <federico@nuclecu.unam.mx> 1998-10-30 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gmetadata.c (meta_get_icon_pos): Renamed from * gmetadata.c (meta_get_icon_pos): Renamed from

1335
po/mc.pot

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,3 +1,9 @@
1998-10-30 Miguel de Icaza <miguel@nuclecu.unam.mx>
* layout.c (print_vfs_message): Use g_snprintf instead of
vnsprintf.
1998-10-30 Sung-Hyun Nam <namsh@lgic.co.kr> 1998-10-30 Sung-Hyun Nam <namsh@lgic.co.kr>
* color.c, slint.c: support transparent background if user use * color.c, slint.c: support transparent background if user use

Просмотреть файл

@ -41,6 +41,7 @@
# include <unistd.h> # include <unistd.h>
#endif #endif
#include <signal.h> #include <signal.h>
#include <glib.h>
#include "tty.h" #include "tty.h"
#include "mad.h" #include "mad.h"
#include "util.h" /* Needed for the externs */ #include "util.h" /* Needed for the externs */
@ -854,18 +855,16 @@ void set_hintbar(char *str)
} }
} }
void print_vfs_message(char *msg, ...) void print_vfs_message (char *msg, ...)
{ {
va_list ap; va_list ap;
char str[128]; char str [128];
va_start(ap, msg); va_start (ap, msg);
vsnprintf(str, 126, msg, ap);
/* Before you kill me for using non-portable vsnprintf... It is g_vsnprintf (str, 126, msg, ap);
neccessary: vfs layer may print arbitrary long messages (they va_end (ap);
contain pathname). If you know how to solve it, please do so,
but this is probably exploitable buffer overrun.) */
va_end(ap);
if (midnight_shutdown || !the_hint || !the_hint->widget.parent) if (midnight_shutdown || !the_hint || !the_hint->widget.parent)
return; return;

Просмотреть файл

@ -53,6 +53,7 @@ Topics:
 Virtual File System Virtual File System  Virtual File System Virtual File System
 FTP File System FTP File System  FTP File System FTP File System
 Tar File System Tar File System  Tar File System Tar File System
 FIle transfer over SHell filesystem FIle transfer over SHell filesystem
 Network File System Network File System  Network File System Network File System
 Undelete File System Undelete File System  Undelete File System Undelete File System
 Colors Colors  Colors Colors
@ -405,6 +406,14 @@ dir of the current dir.
does a chdir to ".." and to the currently selected does a chdir to ".." and to the currently selected
directory respectively. directory respectively.
M-y Moves to the previous directory in the history,
equivalent to depressing the '<' with the mouse.
M-u Moves to the next directory in the history, equivalent
to depressing the '>' with the mouse. Displays the
directory history, equivalent to depressing the 'v' with
the mouse.
[Shell Command Line] [Shell Command Line]
Shell Command Line Shell Command Line
@ -2173,15 +2182,17 @@ virtual file system switch. The virtual file system switch
allows the Midnight Commander to manipulate files not allows the Midnight Commander to manipulate files not
located on the Unix file system. located on the Unix file system.
Currently the Midnight Commander is packaged with five Currently the Midnight Commander is packaged with some
Virtual File Systems (VFS): the local file system, used Virtual File Systems (VFS): the local file system, used
for accessing the regular Unix file system; the ftpfs, for accessing the regular Unix file system; the ftpfs,
used to manipulate files on remote systems with the FTP used to manipulate files on remote systems with the FTP
protocol; the tarfs, used to manipulate tar and compressed protocol; the tarfs, used to manipulate tar and compressed
tar files; the undelfs, used to recover deleted files on tar files; the undelfs, used to recover deleted files on
ext2 file systems (the default file system for Linux ext2 file systems (the default file system for Linux
systems) and finally the mcfs (Midnight Commander file systems), fish (for manipulating files over shell
system), a network based file system. connections such as rsh and ssh) and finally the mcfs
(Midnight Commander file system), a network based file
system.
The VFS switch code will interpret all of the path names The VFS switch code will interpret all of the path names
used and will forward them to the correct file system, the used and will forward them to the correct file system, the
@ -2197,7 +2208,7 @@ command FTP link (accessible from the menubar) or you may
directly change your current directory to it using the cd directly change your current directory to it using the cd
command to a path name that looks like this: command to a path name that looks like this:
ftp://[!][user[:pass]@]machine[:port][remote-dir] /#ftp:[!][user[:pass]@]machine[:port][remote-dir]
The, user, port and remote-dir elements are optional. If The, user, port and remote-dir elements are optional. If
you specify the user element, then the Midnight Commander you specify the user element, then the Midnight Commander
@ -2210,11 +2221,11 @@ there, and then, it may not be entirely safe anyways).
Examples: Examples:
ftp://ftp.nuclecu.unam.mx/linux/local /#ftp:ftp.nuclecu.unam.mx/linux/local
ftp://tsx-11.mit.edu/pub/linux/packages /#ftp:tsx-11.mit.edu/pub/linux/packages
ftp://!behind.firewall.edu/pub /#ftp:!behind.firewall.edu/pub
ftp://guest@remote-host.com:40/pub /#ftp:guest@remote-host.com:40/pub
ftp://miguel:xxx@server/pub /#ftp:miguel:xxx@server/pub
To connect to sites behind a firewall, you will need to To connect to sites behind a firewall, you will need to
use the prefix ftp://! (ie, with a bang character after use the prefix ftp://! (ie, with a bang character after
@ -2257,7 +2268,7 @@ command. To change your directory to a tar file, you
change your current directory to the tar file by using the change your current directory to the tar file by using the
following syntax: following syntax:
tar:filename.tar[dir-inside-tar] /filename.tar:utar/[dir-inside-tar]
The mc.ext file already provides a shortcut for tar files, The mc.ext file already provides a shortcut for tar files,
this means that usually you just point to a tar file and this means that usually you just point to a tar file and
@ -2266,10 +2277,39 @@ File Edit Extension File Edit section for details on how this is done.
Examples: Examples:
tar:mc-3.0.tar.gz/mc-3.0/vfs mc-3.0.tar.gz#utar/mc-3.0/vfs
tar:/ftp/GCC/gcc-2.7.0.tar /ftp/GCC/gcc-2.7.0.tar#utar
The latter specifies the full path of the tar archive. The latter specifies the full path of the tar archive.[FIle transfer over SHell filesystem]
FIle transfer over SHell filesystem
The fish file system is a network based file system that
allows you to manipulate the files in a remote machine as
if they were local. To use this, the other side has to
either run fish server, or has to have bash-compatible
shell.
To connect to a remote machine, you just need to chdir
into a special directory which name is in the following
format:
/#sh:[user@]machine[:options];/[remote-dir];</em>
The, user, options and remote-dir elements are optional.
If you specify the user element then the Midnight
Commander will try to logon on the remote machine as that
user, otherwise it will use your login name.
The options are 'C' - use compression and 'rsh' use rsh
instead of ssh. If the remote-dir element is present, your
current directory on the remote machine will be set to
this one.
Examples:
/#sh:onlyrsh.mx:r/linux/local
/#sh:joe@want.compression.edu:C/private
/#sh:joe@noncompressed.ssh.edu/private
[Network File System] [Network File System]
Network File System Network File System
@ -2283,7 +2323,7 @@ To connect to a remote machine, you just need to chdir
into a special directory which name is in the following into a special directory which name is in the following
format: format:
mc:[user@]machine[:port][remote-dir] /#mc:[user@]machine[:port][remote-dir]
The, user, port and remote-dir elements are optional. If The, user, port and remote-dir elements are optional. If
you specify the user element then the Midnight Commander you specify the user element then the Midnight Commander
@ -2298,8 +2338,8 @@ machine will be set to this one.
Examples: Examples:
mc:ftp.nuclecu.unam.mx/linux/local /#mc:ftp.nuclecu.unam.mx/linux/local
mc:joe@foo.edu:11321/private /#mc:joe@foo.edu:11321/private
[Undelete File System] [Undelete File System]
Undelete File System Undelete File System
@ -2314,14 +2354,14 @@ and to extract the selected files into a regular
partition. partition.
To use this file system, you have to chdir into the To use this file system, you have to chdir into the
special file name formed by the "undel:" prefix and the special file name formed by the "/#undel" prefix and the
file name where the actual file system resides. file name where the actual file system resides.
For example, to recover deleted files on the second For example, to recover deleted files on the second
partition of the first scsi disk on Linux, you would use partition of the first scsi disk on Linux, you would use
the following path name: the following path name:
undel:/dev/sda2 /#undel:/dev/sda2
It may take a while for the undelfs to load the required It may take a while for the undelfs to load the required
information before you start browsing files there. information before you start browsing files there.
@ -2595,6 +2635,11 @@ everywhere).
[FILES] [FILES]
FILES FILES
The program will retrieve all of its information relative
to the MCHOME environment variable, if this variable is
not set, then it will fall back to the @prefix@ directory.
@prefix@/lib/mc.hlp The help file for the program. @prefix@/lib/mc.hlp The help file for the program.
@prefix@/lib/mc/mc.ext The default system-wide extensions @prefix@/lib/mc/mc.ext The default system-wide extensions

Просмотреть файл

@ -133,11 +133,9 @@ typedef struct {
void *back_b; void *back_b;
void *fwd_b; void *fwd_b;
void *up_b; void *up_b;
/* Used during drag and drop */ /* Used during drag and drop */
int maybe_start_drag; int maybe_start_drag;
int click_x, click_y; int click_x, click_y;
#endif #endif
} WPanel; } WPanel;

Просмотреть файл

@ -1,3 +1,13 @@
1998-10-30 Miguel de Icaza <miguel@nuclecu.unam.mx>
* fish.c (command): Replace vnsprintf with g_strdup_vprintf. This
is both safe and more correct, as there is no limit on the
pathname.
* ftpfs.c (command): Same as above.
* util-alone.c (print_vfs_message): Same as above.
Wed Oct 28 17:06:57 1998 Pavel Machek <pavel@atrey.karlin.mff.cuni.cz> Wed Oct 28 17:06:57 1998 Pavel Machek <pavel@atrey.karlin.mff.cuni.cz>
* ftpfs.c: report which directory you are listing, fix behaviour * ftpfs.c: report which directory you are listing, fix behaviour

Просмотреть файл

@ -43,6 +43,7 @@
#include <pwd.h> #include <pwd.h>
#include <grp.h> #include <grp.h>
#include <ctype.h> /* For isdigit */ #include <ctype.h> /* For isdigit */
#include <glib.h>
#ifdef SCO_FLAVOR #ifdef SCO_FLAVOR
# include <sys/timeb.h> /* alex: for struct timeb definition */ # include <sys/timeb.h> /* alex: for struct timeb definition */
#endif /* SCO_FLAVOR */ #endif /* SCO_FLAVOR */
@ -156,22 +157,22 @@ static int command (struct connection *bucket, int wait_reply,
char *fmt, ...) char *fmt, ...)
{ {
va_list ap; va_list ap;
char buf[2048]; /* FIXME: buffer exceed ?? */ char *str;
int n, status; int n, status;
va_start (ap, fmt);
vsnprintf (buf, 2046, fmt, ap);
va_end (ap);
n = strlen(buf);
buf[n] = 0;
va_start (ap, fmt);
str = g_strdup_vprintf (fmt, ap);
va_end (ap);
if (logfile){ if (logfile){
fwrite (buf, strlen (buf), 1, logfile); fwrite (str, strlen (str), 1, logfile);
fflush (logfile); fflush (logfile);
} }
enable_interrupt_key(); enable_interrupt_key();
status = write(qsockw(bucket), buf, strlen(buf)); status = write (qsockw (bucket), str, strlen (str));
g_free (str);
if (status < 0){ if (status < 0){
code = 421; code = 421;
if (errno == EPIPE){ if (errno == EPIPE){
@ -183,7 +184,7 @@ static int command (struct connection *bucket, int wait_reply,
disable_interrupt_key(); disable_interrupt_key();
if (wait_reply) if (wait_reply)
return get_reply (qsockr(bucket), (wait_reply & WANT_STRING) ? reply_str : NULL, sizeof (reply_str)-1); return get_reply (qsockr (bucket), (wait_reply & WANT_STRING) ? reply_str : NULL, sizeof (reply_str) - 1);
return COMPLETE; return COMPLETE;
} }

Просмотреть файл

@ -225,41 +225,45 @@ static int
command (struct connection *bucket, int wait_reply, char *fmt, ...) command (struct connection *bucket, int wait_reply, char *fmt, ...)
{ {
va_list ap; va_list ap;
char buf[2048]; /* FIXME: buffer exceed ?? */ char *str, *fmt_str;
int n, status; int n, status;
int sock = qsock (bucket); int sock = qsock (bucket);
va_start (ap, fmt); va_start (ap, fmt);
vsnprintf (buf, 2046, fmt, ap); fmt_str = g_strdup_vprintf (fmt, ap);
va_end (ap); va_end (ap);
n = strlen(buf);
buf[n++] = '\r'; str = copy_strings (fmt_str, "\r\n", NULL);
buf[n++] = '\n'; g_free (fmt_str);
buf[n] = 0;
if (logfile){ if (logfile){
if (strncmp (buf, "PASS ", 5) == 0) { if (strncmp (str, "PASS ", 5) == 0){
char *tmp = "PASS <Password not logged>\r\n"; char *tmp = "PASS <Password not logged>\r\n";
fwrite (tmp, strlen (tmp), 1, logfile); fwrite (tmp, strlen (tmp), 1, logfile);
} else } else
fwrite (buf, strlen (buf), 1, logfile); fwrite (buf, strlen (buf), 1, logfile);
fflush (logfile); fflush (logfile);
} }
got_sigpipe = 0; got_sigpipe = 0;
enable_interrupt_key(); enable_interrupt_key ();
status = write(sock, buf, strlen(buf)); status = write (sock, str, strlen (str));
free (str);
if (status < 0){ if (status < 0){
code = 421; code = 421;
if (errno == EPIPE){ if (errno == EPIPE){
got_sigpipe = 1; got_sigpipe = 1;
} }
disable_interrupt_key(); disable_interrupt_key ();
return TRANSIENT; return TRANSIENT;
} }
disable_interrupt_key(); disable_interrupt_key ();
if (wait_reply) if (wait_reply)
return get_reply (sock, (wait_reply & WANT_STRING) ? reply_str : NULL, sizeof (reply_str)-1); return get_reply (sock, (wait_reply & WANT_STRING) ? reply_str : NULL, sizeof (reply_str)-1);
return COMPLETE; return COMPLETE;
} }

Просмотреть файл

@ -144,14 +144,15 @@ vfs_get_password (char *msg)
void void
print_vfs_message (char *msg, ...) print_vfs_message (char *msg, ...)
{ {
char buf [4096]; char *str;
va_list args; va_list args;
va_start (args,msg); va_start (args,msg);
vsnprintf (buf, sizeof (buf)-1, msg, args); str = g_strdup_vprintf (msg, args);
info_puts (buf);
va_end (args); va_end (args);
info_puts (str);
g_free (str);
} }
void void