Commit Graph

146 Commits

Author SHA1 Message Date
Patrick Winnertz
0b0f8e6128 Revert "introduced new type SHELL_ESCAPED_STR for more type safety"
This reverts commit 90763ba82f.

Conflicts:

	ChangeLog
	mhl/escape.h
	src/complete.c
	vfs/fish.c

Signed-off-by: Patrick Winnertz <winnie@debian.org>
2009-02-10 15:08:01 +01:00
Patrick Winnertz
8b7e47d9cc Last bunch of reverts and removal of mhl/*
Signed-off-by: Patrick Winnertz <winnie@debian.org>
2009-02-10 14:11:41 +01:00
Patrick Winnertz
f237a14635 Revert some functions (mhl_mem_free to g_free, etc)
Signed-off-by: Patrick Winnertz <winnie@debian.org>
2009-02-10 13:52:53 +01:00
Sergei Trofimovich
c825c379c4 fish: cleanup: unboxed quoted strings when generate shell commands
Signed-off-by: Sergei Trofimovich <st@anti-virus.by>
2009-01-28 10:29:18 +02:00
Enrico Weigelt, metux IT service
90763ba82f introduced new type SHELL_ESCAPED_STR for more type safety 2009-01-27 22:27:06 +01:00
Patrick Winnertz
e1572aefd3 Remove embedded function and use instead the regex directly as we doesn't need
more lines of code as really necessary.
 The regex stuff is taken from this site:
   http://www.slac.stanford.edu/slac/www/resource/how-to-use/cgi-rexx/cgi-esc.htm
2009-01-25 22:52:24 +01:00
Sergei Trofimovich
8a12b5e187 fish: fixed forgotten '\\' special char in perl escaping
Signed-off-by: Sergei Trofimovich <slyfox@inbox.ru>
2009-01-25 20:22:29 +01:00
Sergei Trofimovich
a8779af1aa fish: fixed handling of files with spaces, quotes, etc.
Changes:
 * removed "" from all operations, because shells do not like it:
    $ LANG=C ls "//\ a\ -\>\ b\ \"\"\""
    ls: cannot access //\ a\ -\>\ b\ """: No such file or directory
    $ [sf] ~:LANG=C ls //\ a\ -\>\ b\ \"\"\"
    // a -> b """
 * transited to mhl escaping function in vfs/fish.c
 * fixed vast majority of FISH ops in respect to special chars

Signed-off-by: Sergei Trofimovich <slyfox@inbox.ru>
2009-01-25 20:22:29 +01:00
Sergei Trofimovich
a944b8ca5b fish: partially fixed perl backend for FISH
Broken:
 * spacy files are still broken (like " a b")
Changes:
 * vfs/fish.c learned to parse 'R' (raw filemode)
 * fixed perl backend escaping

Signed-off-by: Sergei Trofimovich <slyfox@inbox.ru>
2009-01-25 20:22:29 +01:00
Sergei Trofimovich
636b1ff16f fish: added handling for escaped characters
Changes:
 * mhl/string.h achieved new function: mhl_str_dup_range
 * fish: added handling for quoted string (:"enc" and :"enc1" -> "enc2")

Signed-off-by: Sergei Trofimovich <slyfox@inbox.ru>
2009-01-25 20:22:29 +01:00
Sergei Trofimovich
3884370289 fish: one step closer to working state
!!!WARNING!!!: FISH is still broken
Changes
 * fixed sed fallback (added escaping)
 * fixed FISH hangup (introduced earlier in perl changes)
 * added FISH 500 if perl script dies somehow (no more FISH hangups on dir list path!)
 * added '#if 0' in vfs/fish.c:fish_dir_load() - handy to debug

Signed-off-by: Sergei Trofimovich <slyfox@inbox.ru>
2009-01-25 20:22:29 +01:00
Patrick Winnertz
05a2491681 Argh.. we need even more escaping since this runs in c which executes
a shell script which executes then a perl script.... this uses then " as output in printf:
 --> therefore we need up to 5 backslashes
2009-01-25 20:22:29 +01:00
Patrick Winnertz
61dee5baa3 Removed a % which I accidentially overviewed the first time 2009-01-25 20:22:29 +01:00
Patrick Winnertz
837aece56f Some fixes to the new fish get dirlisting code. One issue is remaining. 2009-01-25 20:22:28 +01:00
Patrick Winnertz
b198432f06 Add some whitespace fixes which are also used to make symlinks work correctly 2009-01-25 20:22:28 +01:00
Patrick Winnertz
1667b696b7 Add new read dir stuff based on perl.
- please note that this patch won't work right now
2009-01-25 20:22:28 +01:00
Patrick Winnertz
01ef2aaf80 Revert slavaz patch because this was something unrelated to not working links via fish.
this indeed belongs into ticket:149.
2009-01-25 20:22:28 +01:00
Slava Zanko
a202cac66b Changes in directory listing format:
- check if remote have a 'test' utility.
  If 'test' exists - use it for recognize symlinks (test -L)
  and forming "L<symlink>" string in output
- Restore part of source code for handling "L<symlink>"
- check if 'ls' command support option '-Q' and use it if supported
- FIXME: need to write fish_get_unquoted_filename
- FIXME: need to rewrite algorithm of parsing ' -> ' substring
  (relative to -Q option)

New logic will correct show symlinks on lot of OSes, but in some
pure OSes need to review...
2009-01-25 20:22:28 +01:00
Patrick Winnertz
56e02e2848 Remove case 'L' check as this was never implemented as it seems... 2009-01-25 20:22:28 +01:00
Patrick Winnertz
5493da68a2 Remove vars which are not needed 2009-01-25 20:22:28 +01:00
Patrick Winnertz
b166e7f232 Update Slavaz patch to work correctly on files called "foo -> bar" 2009-01-25 20:22:28 +01:00
Pavel Tsekov
d2fb34f021 * vfs/fish.c (fish_dir_load): Check the exit status of the remote command
and fail with EACCES if it was unsuccessful.
Fix the value returned on error - must be -1 instead of 1.
2007-11-02 14:50:41 +00:00
Pavel Tsekov
7d113d0125 * vfs/fish.c (FISH_OP): Remove the second argument since it is unused.
Fix the macro usage troughout.
(XTEST): Remove unused macro.
2007-10-29 13:31:44 +00:00
Pavel Tsekov
4a895496c7 * vfs/fish.c (fish_linear_start): Fix a hang when retrieving unreadable
file. Fixes savannah bug #21331.
2007-10-26 13:46:42 +00:00
Pavel Tsekov
56eccaadb4 * configure.ac: Determine the size of long', long long' and
off_t.
* vfs/fish.c (fish_linear_start): Use strtol() or strtoll() to retrieve
the size of the file being retrieved.
2007-10-11 12:32:42 +00:00
Pavel Tsekov
2f3df3af4e * edit/bookmark.c: Update copyright notice.
* edit/edit.c: Likewise.
* edit/editcmd.c: Likewise.
* edit/editdraw.c: Likewise.
* edit/editkeys.c: Likewise.
* edit/editlock.c: Likewise.
* edit/editmenu.c: Likewise.
* edit/editoptions.c: Likewise.
* edit/editwidget.c: Likewise.
* edit/syntax.c: Likewise.
* src/background.c: Likewise.
* src/boxes.c: Likewise.
* src/complete.c: Likewise.
* src/execute.c: Likewise.
* src/ext.c: Likewise.
* src/file.c: Likewise.
* src/filegui.c: Likewise.
* src/fileopctx.c: Likewise.
* src/find.c: Likewise.
* src/hotlist.c: Likewise.
* src/key.c: Likewise.
* src/keyxdef.c: Likewise.
* src/layout.c: Likewise.
* src/learn.c: Likewise.
* src/listmode.c: Likewise.
* src/main.c: Likewise.
* src/panelize.c: Likewise.
* src/slint.c: Likewise.
* src/textconf.c: Likewise.
* src/tree.c: Likewise.
* src/treestore.c: Likewise.
* src/tty.c: Likewise.
* src/util.c: Likewise.
* src/utilunix.c: Likewise.
* src/view.c: Likewise.
* src/widget.c: Likewise.
* src/wtools.c: Likewise.
* src/x11conn.c: Likewise.
* vfs/cpio.c: Likewise.
* vfs/extfs.c: Likewise.
* vfs/fish.c: Likewise.
* vfs/ftpfs.c: Likewise.
* vfs/gc.c: Likewise.
* vfs/mcfs.c: Likewise.
* vfs/mcserv.c: Likewise.
* vfs/smbfs.c: Likewise.
* vfs/tar.c: Likewise.
2007-09-25 15:33:35 +00:00
Pavel Tsekov
23361694b6 * src/background.c: Use the correct form of FSF's name in the copyright
notice.
* src/boxes.c: Ditto.
* src/complete.c: Ditto.
* src/execute.c: Ditto.
* src/ext.c: Ditto.
* src/file.c: Ditto.
* src/filegui.c: Ditto.
* src/fileopctx.c: Ditto.
* src/fileopctx.h: Ditto.
* src/find.c: Ditto.
* src/hotlist.c: Ditto.
* src/key.c: Ditto.
* src/keyxdef.c: Ditto.
* src/layout.c: Ditto.
* src/learn.c: Ditto.
* src/listmode.c: Ditto.
* src/main.c: Ditto.
* src/panelize.c: Ditto.
* src/slint.c: Ditto.
* src/textconf.c: Ditto.
* src/tree.c: Ditto.
* src/treestore.c: Ditto.
* src/tty.c: Ditto.
* src/util.c: Ditto.
* src/utilunix.c: Ditto.
* src/view.c: Ditto.
* src/widget.c: Ditto.
* src/wtools.c: Ditto.
* src/x11conn.c: Ditto.
* vfs/cpio.c: Ditto.
* vfs/extfs.c: Ditto.
* vfs/fish.c: Ditto.
* vfs/ftpfs.c: Ditto.
* vfs/gc.c: Ditto.
* vfs/mcfs.c: Ditto.
* vfs/mcserv.c: Ditto.
* vfs/smbfs.c: Ditto.
* vfs/tar.c: Ditto.
* vfs/undelfs.c: Ditto.
* vfs/utilvfs.c: Ditto.
* vfs/vfs.c: Ditto.
* edit/bookmark.c: Ditto.
* edit/edit.c: Ditto.
* edit/edit.h: Ditto.
* edit/editcmd.c: Ditto.
* edit/editdraw.c: Ditto.
* edit/editkeys.c: Ditto.
* edit/editlock.c: Ditto.
* edit/editmenu.c: Ditto.
* edit/editoptions.c: Ditto.
* edit/editwidget.c: Ditto.
* edit/syntax.c: Ditto.
2007-09-24 09:28:32 +00:00
Pavel Tsekov
e2424ae139 * src/filegui.c (rd_widgets) [_LARGE_FILES]: Use format string
capable of supporting 64 bit file sizes.
* vfs/fish.c (fish_linear_start) [_LARGE_FILES]: Use format string
capable of supporting 64 bit file sizes.
2007-08-23 13:16:39 +00:00
Pavel Tsekov
0be8302a3d * vfs/fish.c: Remove all references to HAVE_HACKED_SSH. 2007-05-07 13:23:54 +00:00
Pavel Tsekov
9312932eea * vfs/fish.c (fish_linear_start): Use _FILE_OFFSET_BITS to determine which
length modifier to pass to sscanf(). Use 'll' length modifier instead
of 'L' since 'L' is meant for doubles.
2007-04-26 15:10:02 +00:00
Leonard den Ottolander
7a9daa86b0 * vfs/fish.c (fish_file_store): Fix copy of file names with backticks to
remote host.
2006-11-09 17:59:39 +00:00
Pavel Tsekov
294e05e70e * vfs/fish.c (fish_file_store): Do not create the target file before
determining which method (`head' or `dd') to use.
Do not use `head' to transfer data when resuming a file transfer - it is
not reliable enough.
2006-03-31 14:29:37 +00:00
Pavel Tsekov
407497fd43 * vfs/fish.c (fish_file_store): Improve the upload speed by using the
`head' utility when possible. Fallback to a new improved `dd' method
if `head' is not availaible or just stupid.
2006-03-30 14:39:33 +00:00
Pavel Tsekov
264697b010 * vfs/fish.h: New file.
* vfs/fish.c (fish_directory_timeout): Define new global variable.
(FISH_DIRECTORY_TIMEOUT): Eliminate - this macro is not used
anywhere.
(fish_dir_load): Use `fish_directory_timeout' to calculate the
expiration time of a newly created directory entries.
* src/setup.c [USE_NETCODE]: Include fish.h .
(int_options) [USE_NETCODE]: Add support for user configurable
expiration timeout of FISH directory cache entries.
* doc/mc.1.in: Document `fish_directory_timeout'.
2006-02-23 15:32:18 +00:00
Pavel Tsekov
c9f1b97869 * vfs/ftpfs.c (ftpfs_dir_uptodate): Remove.
(init_ftpfs): Adjust the code to reflect the removal of
`ftpfs_dir_uptodate'.
* vfs/fish.c (fish_dir_uptodate): Remove.
(init_fish): Adjust the code to reflect the removal of
`fish_dir_uptodate'.
* vfs/direntry.c (vfs_s_dir_uptodate): New function.
(vfs_s_init_class): Initialize the `dir_uptodate' field of
vfs_s_subclass.
2006-02-23 10:46:29 +00:00
Roland Illig
2390300034 * fish.c: Replaced the printf-like attribute with __printf__,
since GNU gettext defines a macro printf on some systems.
	* ftpfs.c: Likewise.
2006-02-03 14:45:44 +00:00
Leonard den Ottolander
a03c48ffa4 fish.c, xdirentry.h: Fix 2 GB file size limit for fish. 2006-01-27 22:16:45 +00:00
Pavel Tsekov
c8494f41bb * xdirentry.h (LS_LINEAR_PREOPEN): New macro definition.
* direntry.c (vfs_s_open): When opening a file in linear mode,
defer the actual open operation until the first read call.
(vfs_s_read): When reading in linear mode, open the file
on the first read operation.
(vfs_s_lseek): When in linear mode, make sure that seeking is
allowed only before the first read operation.
* ftpfs.c (ftpfs_ctl): Make the code aware of LS_LINEAR_PREOPEN.
* fish.c (fish_ctl): Likewise.
2006-01-25 14:04:27 +00:00
Leonard den Ottolander
0c2b46643d * fish.c (fish_dir_load, fish_linear_start): Get numerical gid/uids from ls to
avoid wrong parsing of user/group names containging white space.
2005-10-19 11:34:56 +00:00
Roland Illig
290b842c86 * utilvfs.h (vfs_parse_filetype, vfs_parse_fileperms,
vfs_parse_filemode): Rewrote the functions to parse Unix file
	modes.
	* utilvfs.c: Likewise.
	* fish.c: Using the new parsing functions.
2005-09-26 11:10:24 +00:00
Roland Illig
7e7b81b73e * direntry.c: Added const qualifiers to work around gcc
warnings.
	* extfs.c: Likewise.
	* fish.c: Likewise.
	* ftpfs.c: Likewise.
	* sfs.c: Likewise.
	* xdirentry.h: Likewise.
2005-09-05 00:52:56 +00:00
Roland Illig
5343037e83 * fish.c (fish_ctl): Commented out some unused code with
#if 0 ... #endif. This fixes a warning from SunPro.
2005-06-08 00:31:25 +00:00
Pavel Roskin
1f60f44145 Update postal address of Free Software Foundation. 2005-05-27 03:35:10 +00:00
Roland Illig
ebcd6129c6 * fish.c: Declared one more parameter as unused. 2005-02-22 18:38:58 +00:00
Roland Illig
d7e7ec48dd * *.c: Declared unused variables with (void) to avoid the gcc
warnings.
	* extfs.c (extfs_get_path_mangle, extfs_get_path): Removed unused
	parameter.
	* ftpfs.c (ftpfs_netrc_bad_mode): Likewise.
	* vfs.c (mc_def_getlocalcopy): Likewise.
2005-02-22 18:35:22 +00:00
Roland Illig
54cccec688 * utilvfs.h: Removed unneeded #includes.
* *.c: Added the #includes that have been removed from utilvfs.h.
	* tcputil.c: Just removed the unneeded #include "utilvfs.h".
2005-02-19 16:36:38 +00:00
Roland Illig
9558c7178f * src/info.c (info_show_info): Enabled display of the device number,
for the case that the column in the directory listing is too
	short. This had been disabled since 1994, for no obvious reason
	and without any comment.
	* src/screen.c (format_device_number): Added. Converts a device number
	into a bounded string.
	* screen.c (string_file_size): Support for larger device numbers
	(and for non-Linux systems).
	* vfs/cpio.c (cpio_read_crc_head): Fixed device number handling for
	non-Linux systems.
	* vfs/fish.c (fish_dir_load): Likewise.
	* vfs/utilvfs.c (vfs_parse_ls_lga): Likewise.
2005-01-27 23:32:13 +00:00
Andrew V. Samoilov
b20f6b2dea * fish.c (fish_linear_abort): Fix bug with FISH vfs. It freezes MC on
transfer abort.
2004-12-28 12:25:24 +00:00
Andrew V. Samoilov
e7b96a4600 * fish.c(fish_file_store): Fix typo fix 2004-11-29 20:15:22 +00:00
Andrew V. Samoilov
a2bcbdb52c * fish.c (fish_file_store): Check write() more carefully.
(PREFIX): Fix memory leak.
        (fish_##name): Likewise.
        (fish_chown): Likewise.
2004-11-29 12:45:42 +00:00