38 Commits

Author SHA1 Message Date
Richard W.M. Jones
40fdcd0146 fish: Fix const correctness in strrchr
In C23, strchr or strrchr on a const parameter now returns a const
pointer.  We saw this error:

destpaths.c: In function ‘complete_dest_paths_generator’:
destpaths.c:165:9: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
  165 |       p = strrchr (text, '/');
      |         ^
2025-12-01 14:00:57 +00:00
Richard W.M. Jones
72cfaff5c5 Update copyright dates for 2025
Automated using this command:

perl -pi.bak -e 's/(20[012][0-9])-20[12][01234]/$1-2025/g' `git ls-files`
2025-02-16 17:00:46 +00:00
Richard W.M. Jones
e2c7bddf10 Update copyright dates for 2023
Run this command across the source:

  perl -pi.bak -e 's/(20[012][0-9])-20[12][012]/$1-2023/g' `git ls-files`

and remove changes to po{,-docs}/*.po{,t} (these will be regenerated
later when we run 'make dist').
2023-02-07 10:50:48 +00:00
Richard W.M. Jones
0e17236d7d Update copyright dates to 2020. 2020-03-06 19:32:32 +00:00
Richard W.M. Jones
05d4fcb64d Update copyright dates for 2019.
This command run over the source:

perl -pi.bak -e 's/(20[01][0-9])-2018/$1-2019/g' `git ls-files`
2019-01-08 11:58:30 +00:00
Richard W.M. Jones
212762c593 Update copyright dates for 2018.
Run the following command over the source:

  perl -pi.bak -e 's/(20[01][0-9])-2017/$1-2018/g' `git ls-files`
2018-01-04 15:30:10 +00:00
Pino Toscano
55bf7de97c Update copyright dates for 2017
Run the following command over the source:

  perl -pi.bak -e 's/(20[01][0-9])-2016/$1-2017/g' `git ls-files`

(Thanks Rich for the perl snippet, as used in past years.)
2017-01-03 16:48:21 +01:00
Richard W.M. Jones
d5a8f82887 Use 'const' for stack integers where possible.
May improve optimization possibilities in a few cases.
2016-07-26 10:43:45 +01:00
Richard W.M. Jones
ea71e00d1a fish: Add internal documentation to several files. 2016-05-08 20:59:36 +01:00
Richard W.M. Jones
307c83177c Update copyright dates for 2016.
Run the following command over the source:

  perl -pi.bak -e 's/(20[01][0-9])-2015/$1-2016/g' `git ls-files`
2016-01-02 21:19:51 +00:00
Richard W.M. Jones
677c721e85 Fix whitespace.
Because of previous automated commits, such as changing 'guestfs___'
-> 'guestfs_int_', several function calls no longer lined up with
their parameters, and some lines were too long.

The bulk of this commit was done using emacs batch mode and the
technique described here:

  http://www.cslab.pepperdine.edu/warford/BatchIndentationEmacs.html

The changes suggested by emacs were then reviewed by hand.
2015-10-05 14:28:33 +01:00
Richard W.M. Jones
bfbcc01403 Change guestfs___* to guestfs_int_*
libguestfs has used double and triple underscores in identifiers.
These aren't valid for global names in C++.

The first step is to replace all guestfs___* (3 underscores) with
guestfs_int_*.  We've used guestfs_int_* elsewhere already as a prefix
for internal identifiers.

This is an entirely mechanical change done using:
  git ls-files | xargs perl -pi.bak -e 's/guestfs___/guestfs_int_/g'

Reference: http://stackoverflow.com/a/228797
2015-02-14 18:46:04 +00:00
Richard W.M. Jones
c5800dc97d Update copyright dates for 2015. 2015-01-17 09:08:15 +00:00
Pino Toscano
7ba102dc4c fish: complete symlink properly
When an entry is a symlink, check whether it points to a directory, so
the entry for it can be completed correctly.
2014-10-31 17:49:54 +01:00
Pino Toscano
a8b95a5535 fish: fix dir completion on filesystems w/o dirent.d_type (RHBZ#1153844).
On filesystems whose dirent.d_type is DT_UNKNOWN or some unknown value,
manually check whether an entry is a directory, thus completing in the
proper way.
2014-10-31 17:49:54 +01:00
Pino Toscano
c862dc3d20 fish: fix small memory leak in completion
Do not leak the small memory buffer with the path.
2014-09-10 18:47:51 +02:00
Richard W.M. Jones
6c971faecf Update copyright dates for 2014. 2014-01-02 16:53:34 +00:00
Richard W.M. Jones
abe07ce2ca "guestfish" now means the "guest filesystem shell".
Remove the word "interactive" which implies that guestfish can only
(or often) be used interactively.
2013-04-09 23:21:42 +01:00
Richard W.M. Jones
0b7acf50b6 fish: Use guestfs___{free_string_list,count_strings} utility functions.
Instead of custom-coded versions.
2013-02-20 19:32:11 +00:00
Richard W.M. Jones
489cb059c2 fish: Don't segfault here is 'words' happens to be NULL (found by Coverity). 2012-12-08 16:42:37 +00:00
Richard W.M. Jones
2d220f5da2 tools: Modify existing tools to use guestfs_{push,pop}_error_handler.
This is a shorter and more convenient way to disable errors
temporarily across calls.
2012-11-09 19:51:09 +00:00
Matthew Booth
0cdd944474 fish: Add MD devices to guestfish device autocompletion. 2011-11-21 15:23:18 +00:00
Matthew Booth
04ea1375c5 Update FSF address. 2011-11-08 14:43:07 +00:00
Richard W.M. Jones
4d4d3b2498 fish: Show device mapper device in tab completion (RHBZ#688062).
With this change:

><fs> luks-open /dev/vda1 lukstest
Enter key or passphrase ("key"):
><fs> ll /dev/<TAB>
/dev/mapper/lukstest  /dev/vda              /dev/vda1
2011-07-12 18:44:45 +01:00
Richard Jones
21bd2db7cf fish: Don't eat words when completing case-insensitive paths (RHBZ#582993). 2010-05-25 13:59:44 +01:00
Richard Jones
53c3b9d2b0 fish: Sort returned paths so the list is stable across multiple calls. 2010-05-25 13:52:53 +01:00
Richard Jones
aa4fffd512 Fix compilation if readline library is not present. 2009-11-10 16:32:20 +00:00
Jim Meyering
c9d9498458 change strncasecmp() == 0 to STRCASEEQLEN()
git grep -l 'strncasecmp *([^=]*== *0'|xargs \
  perl -pi -e 's/\bstrncasecmp( *\(.*?\)) *== *0\b/STRCASEEQLEN$1/g'
2009-11-09 22:42:02 +01:00
Jim Meyering
539bf7e898 use STREQ, not strcmp: part 2
git grep -l 'strcmp *([^=]*!= *0'|xargs \
  perl -pi -e 's/\bstrcmp( *\(.*?\)) *!= *0\b/STRNEQ$1/g'
2009-11-09 22:34:16 +01:00
Jim Meyering
9a8889e4d0 use STREQ, not strcmp: part 1
git grep -l 'strcmp *([^=]*== *0'|xargs \
  perl -pi -e 's/\bstrcmp( *\(.*?\)) *== *0/STREQ$1/g'
2009-11-09 22:34:16 +01:00
Jim Meyering
3e70b34eed change strncmp() == 0 to STREQLEN()
git grep -l 'strncmp *([^=]*== *0'|xargs \
  perl -pi -e 's/\bstrncmp( *\(.*?\)) *== *0\b/STREQLEN$1/g'
2009-11-09 22:34:16 +01:00
Jim Meyering
8817709009 build: don't define _GNU_SOURCE manually
Now that we're using gnulib in earnest, any manual definition
would provoke a redefinition warning.
* fish/fish.c (_GNU_SOURCE): Don't define.
* fish/destpaths.c (_GNU_SOURCE): Likewise.
* src/guestfs.c (_GNU_SOURCE): Likewise.
* bootstrap (modules): Add asprintf, strchrnul, strerror, strndup
and vasprintf.
* fish/fish.c (main): Set argv[0] to sanitized program_name, so
functions like getopt_long that use argv[0] use the clean name.
2009-08-24 18:15:13 +02:00
Jim Meyering
fad78c6094 destpaths.c: avoid signed/unsigned-comparison warning
* fish/destpaths.c (free_words): Change param type: s/int/size_t/.
2009-08-21 15:24:25 +02:00
Richard Jones
690472768c Fix: segfault in tab completion (RHBZ#516024).
Actually this fixes two bugs: 'strs' was not being freed on every
path, and the tab completion segfault described in the bug report.
2009-08-06 15:03:56 +01:00
Jim Meyering
2f1a50d816 Convert all TABs-as-indentation to spaces.
Do it by running this command:
[exempted files are matched via .x-sc_TAB_in_indentation]

  git ls-files \
    | pcregrep -vf .x-sc_TAB_in_indentation \
    | xargs pcregrep -l '^ *\t' \
    | xargs perl -MText::Tabs -ni -le \
      '$m=/^( *\t[ \t]*)(.*)/; print $m ? expand($1) . $2 : $_'
2009-08-03 17:17:57 +02:00
Richard W.M. Jones
2018441f42 Guestfish tab-completion on destination paths, fixed this time.
Tab-completion on destination paths should now work correctly.
2009-07-03 12:02:21 +01:00
Jim Meyering
f20854ec61 fish: handle some out-of-memory conditions
* fish/destpaths.c (xalloc_oversized): Define.
(complete_dest_paths_generator): Use size_t as type for a few
variables, rather than int.
Don't deref NULL or undef on failed heap alloc.
Don't leak on failed realloc.
Detect theoretical overflow when count_strings returns a very
large number of strings.
Handle asprintf failure.
(APPEND_STRS_AND_FREE): Rewrite as do {...}while(0), so that each use
can/must be followed by a semicolon.  Better for auto-formatters.
2009-07-01 18:42:19 +02:00
Richard Jones
e395d7db8f Add tab-completion of guest filenames (currently disabled). 2009-06-18 21:06:22 +01:00