Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package stow for openSUSE:Factory checked in at 2024-09-10 21:13:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/stow (Old) and /work/SRC/openSUSE:Factory/.stow.new.17570 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "stow" Tue Sep 10 21:13:06 2024 rev:8 rq:1199670 version:2.4.1 Changes: -------- --- /work/SRC/openSUSE:Factory/stow/stow.changes 2024-07-11 20:33:49.870292410 +0200 +++ /work/SRC/openSUSE:Factory/.stow.new.17570/stow.changes 2024-09-10 21:14:21.992870393 +0200 @@ -1,0 +2,12 @@ +Mon Sep 9 10:36:48 UTC 2024 - Wolfgang Frisch <[email protected]> + +- stow 2.4.1: + * Fix precedence warning with Perl 5.40 (bsc#1227622) + * `--dotfiles` option now works correctly with ignore lists + * Use shell-like parsing for `.stowrc` arguments + * Make dependency on LaTeX optional + * Fix Docker builds + * Various maintainer tweaks +- Remove avoid_precedence_warning.patch (fixed by upstream) + +------------------------------------------------------------------- Old: ---- avoid_precedence_warning.patch stow-2.4.0.tar.bz2 stow-2.4.0.tar.bz2.sig New: ---- stow-2.4.1.tar.bz2 stow-2.4.1.tar.bz2.sig BETA DEBUG BEGIN: Old: * Various maintainer tweaks - Remove avoid_precedence_warning.patch (fixed by upstream) BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ stow.spec ++++++ --- /var/tmp/diff_new_pack.4tuCFI/_old 2024-09-10 21:14:23.304925060 +0200 +++ /var/tmp/diff_new_pack.4tuCFI/_new 2024-09-10 21:14:23.308925226 +0200 @@ -17,7 +17,7 @@ Name: stow -Version: 2.4.0 +Version: 2.4.1 Release: 0 Summary: Manage the installation of software packages from source License: GPL-3.0-or-later @@ -27,7 +27,6 @@ Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.bz2.sig Source2: https://savannah.gnu.org/project/memberlist-gpgkeys.php?group=stow&download=1#/%name.keyring Source3: stow-rpmlintrc -Patch0: avoid_precedence_warning.patch BuildRequires: perl BuildRequires: perl-macros BuildRequires: perl(IO::Scalar) @@ -73,11 +72,13 @@ %configure \ --with-pmdir=%{perl_vendorlib} \ --docdir=%{_defaultdocdir}/%{name} +make pdf %install %make_install rm %{buildroot}%{_docdir}/stow/version.texi rm %{buildroot}%{_docdir}/%{name}/INSTALL.md +install -m 644 doc/manual.pdf %{buildroot}/%{_docdir}/stow/manual.pdf %check %make_build test ++++++ stow-2.4.0.tar.bz2 -> stow-2.4.1.tar.bz2 ++++++ ++++ 2585 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/ChangeLog new/stow-2.4.1/ChangeLog --- old/stow-2.4.0/ChangeLog 2024-04-07 23:21:05.000000000 +0200 +++ new/stow-2.4.1/ChangeLog 2024-09-08 20:25:07.000000000 +0200 @@ -1,3 +1,204 @@ +Sun Sep 8 19:17:26 2024 +0100 Adam Spiers <[email protected]> + + * Dockerfile: fix whitespace inconsistencies We don't use hard tabs. + + + M docker/Dockerfile + +Sun Sep 8 19:05:42 2024 +0100 Adam Spiers <[email protected]> + + * Merge pull request #116 from aspiers/fix-dot-ignore + +Sun Sep 8 13:05:16 2024 +0100 Adam Spiers <[email protected]> + + * ignore based on package dirent name prior to dot- adjustment If + `--dotfiles` was enabled, files in the package such as + `dot-gitignore` would be translated to `.gitignore` and then + ignored by the default ignore list. However any file named + `dot-*` in a package is obviously intended to be stowed as a dot + file, so should not be ignored. + + To fix this, ignore based on the name in the package, not the + potentially translated name used for stowing. + + + M NEWS + M doc/stow.texi + M lib/Stow.pm.in + M t/dotfiles.t + +Sun Sep 8 12:47:54 2024 +0100 Adam Spiers <[email protected]> + + * extract setup_package_ignore() into testutil.pm + + M t/ignore.t + M t/testutil.pm + +Sun Sep 8 12:43:46 2024 +0100 Adam Spiers <[email protected]> + + * extract setup_global_ignore() into testutil.pm + + M t/ignore.t + M t/testutil.pm + +Sun Sep 8 18:56:03 2024 +0100 Adam Spiers <[email protected]> + + * Merge pull request #117 from aspiers/optional-pdf-build + +Sun Sep 8 14:51:58 2024 +0100 Adam Spiers <[email protected]> + + * make build of PDF optional to avoid LaTeX dependency Fixes #95. + + + M INSTALL.md + M Makefile.am + M NEWS + M doc/HOWTO-RELEASE + +Sun Sep 8 15:09:30 2024 +0100 Adam Spiers <[email protected]> + + * INSTALL.md: move clean-up to a separate section It's not part of the + install process. + + + M INSTALL.md + +Sun Sep 8 14:52:49 2024 +0100 Adam Spiers <[email protected]> + + * update to autoconf 2.72 + + M aclocal.m4 + +Sun Sep 8 16:23:35 2024 +0100 Adam Spiers <[email protected]> + + * NEWS: add other items since v2.4.0 + + M NEWS + +Sun Sep 8 13:28:45 2024 +0100 Adam Spiers <[email protected]> + + * NEWS: add entry for ternary precedence fix for Perl 5.40 This is the + NEWS entry for #113. + + + M NEWS + +Sat Jul 13 17:07:02 2024 +0100 Adam Spiers <[email protected]> + + * Merge pull request #114 from aspiers/perl-5.40 + +Sat Jul 13 17:04:03 2024 +0100 Adam Spiers <[email protected]> + + * ci: add Perl 5.40 to GitHub CI test matrix + + M .github/workflows/test.yml + +Fri Jul 12 00:02:23 2024 +0100 Adam Spiers <[email protected]> + + * Merge pull request #113 from wfrisch/2024-07-avoid_precedence_warning + avoid precedence warning + +Thu Jul 11 09:48:46 2024 +0200 Wolfgang Frisch <[email protected]> + + * avoid precedence warning Perl 5.40.0 extended the scope of the + precedence warning to include ternary operators. + + <https://perldoc.perl.org/5.40.0/perldelta> + + Reported-By: Peter Sütterlin <[email protected]> + + + M bin/stow.in + +Tue Jun 18 18:46:45 2024 +0100 Adam Spiers <[email protected]> + + * Merge pull request #111 from jeremy-code/master + +Sat Jun 15 13:03:07 2024 +0100 Adam Spiers <[email protected]> + + * Fix parsing of regexp options like --override=bin|man Previously the + \A and \z anchoring for --ignore / --override / --defer was being + applied without wrapping the user-specified regexp in parentheses, + so if it was something like bin|man then the anchor would only + apply to one half of those two paths. So add parentheses, and + also change from qr() to qr{} syntax to visually differentiate + between regexp boundaries and parentheses inside the regexp. + + + M bin/stow.in + M t/cli_options.t + M t/rc_options.t + +Fri Jun 14 16:20:41 2024 -0700 Jeremy Nguyen <[email protected]> + + * Use `shellwords` for `.stowrc` parsing + - Use `shellwords` to parse `.stowrc` files from + `Text::ParseWords` + - Add test for `.stowrc` parsing with quotes + - Add `stow directory` to `tmp-testing-trees` for testing + + This change allows `.stowrc` arguments to be parsed similar to + shell arguments, where quotes can be used to group an argument + with spaces. + + However, this change affects the behavior in --ignore, --defer, + --override. + + (?^:$HOME\z) + (?^:\A$HOME) + (?^:\A$HOME) + + + M bin/stow.in + M doc/stow.texi + M t/rc_options.t + M t/testutil.pm + +Mon Apr 8 00:40:23 2024 +0100 Adam Spiers <[email protected]> + + * Merge pull request #99 from gutierri/patch/fixs-yes-apt + +Sun Sep 18 03:13:56 2022 -0300 Gutierri Barboza <[email protected]> + + * fix dockerfile apt-get without force-yes + + M docker/Dockerfile + +Mon Apr 8 00:16:02 2024 +0100 Adam Spiers <[email protected]> + + * Bump version to 2.4.1 for development of next release + + M META.json + M META.yml + M configure.ac + +Mon Apr 8 00:13:57 2024 +0100 Adam Spiers <[email protected]> + + * HOWTO-RELEASE: fix previously missed rename from distclean 3aae830e + changed the procedure from distclean to maintainer-clean, but + missed changing this final detail. + + + M doc/HOWTO-RELEASE + +Sun Apr 7 23:10:08 2024 +0100 Adam Spiers <[email protected]> + + * HOWTO-RELEASE: add reminder to add/remove manual files in CVS + + M doc/HOWTO-RELEASE + +Sun Apr 7 22:37:22 2024 +0100 Adam Spiers <[email protected]> + + * HOWTO-RELEASE: suggest using gnupload --dry-run first + + M doc/HOWTO-RELEASE + +Sun Apr 7 20:09:43 2024 +0100 Adam Spiers <[email protected]> + + * HOWTO-RELEASE: add link to gnupload docs + + M doc/HOWTO-RELEASE + Sun Apr 7 18:55:18 2024 +0100 Adam Spiers <[email protected]> * Merge pull request #108 from aspiers/release-v2.4.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/INSTALL.md new/stow-2.4.1/INSTALL.md --- old/stow-2.4.0/INSTALL.md 2020-11-01 15:44:35.000000000 +0100 +++ new/stow-2.4.1/INSTALL.md 2024-09-08 20:06:18.000000000 +0200 @@ -71,9 +71,15 @@ to avoid a superfluous `use lib` line in your stow executable. -3. Type `perl Build.PL`. +3. If you have LaTeX and texinfo installed and want to build a PDF + version of the manual, type: -4. Type `./Build install` to install the various files. As noted + make pdf + +4. Type `perl Build.PL`. If you skipped step 3 and see a warning + about `manual.pdf` being missing, you can safely ignore it. + +5. Type `./Build install` to install the various files. As noted above, this installs fewer files than the Autotools installation. Basic Installation via Autotools @@ -105,13 +111,10 @@ line into the generated stow script to ensure that it can always locate the Perl modules without needing to manually set `PERL5LIB`. -4. You can remove the generated files from the source code directory - by typing `make clean`. To also remove the files that `configure` - created (so you can compile the package for a different computer), - type `make distclean`. There is also a `make maintainer-clean` - target, but that is intended mainly for stow's developers. If you - use it, you may have to get all sorts of other programs in order - to regenerate files that came with the distribution. +4. If you have LaTeX and texinfo installed and want to build a PDF + version of the manual, type: + + make pdf Installation Names ------------------ @@ -193,6 +196,17 @@ `configure` also accepts some other, not widely useful, options. +Cleaning up build files +----------------------- + +You can remove the generated files from the source code directory by +typing `make clean`. To also remove the files that `configure` +created (so you can compile the package for a different computer), +type `make distclean`. There is also a `make maintainer-clean` +target, but that is intended mainly for stow's developers. If you use +it, you may have to get all sorts of other programs in order to +regenerate files that came with the distribution. + License for this file --------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/META.json new/stow-2.4.1/META.json --- old/stow-2.4.0/META.json 2024-04-07 23:20:54.000000000 +0200 +++ new/stow-2.4.1/META.json 2024-09-08 20:24:51.000000000 +0200 @@ -37,11 +37,11 @@ "provides" : { "Stow" : { "file" : "lib/Stow.pm", - "version" : "v2.4.0" + "version" : "v2.4.1" }, "Stow::Util" : { "file" : "lib/Stow/Util.pm", - "version" : "v2.4.0" + "version" : "v2.4.1" } }, "release_status" : "stable", @@ -55,6 +55,6 @@ "url" : "git://git.savannah.gnu.org/stow.git" } }, - "version" : "v2.4.0", + "version" : "v2.4.1", "x_serialization_backend" : "JSON::PP version 4.16" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/META.yml new/stow-2.4.1/META.yml --- old/stow-2.4.0/META.yml 2024-04-07 23:20:54.000000000 +0200 +++ new/stow-2.4.1/META.yml 2024-09-08 20:24:51.000000000 +0200 @@ -18,10 +18,10 @@ provides: Stow: file: lib/Stow.pm - version: v2.4.0 + version: v2.4.1 Stow::Util: file: lib/Stow/Util.pm - version: v2.4.0 + version: v2.4.1 requires: Carp: '0' IO::File: '0' @@ -30,5 +30,5 @@ homepage: https://savannah.gnu.org/projects/stow license: http://www.gnu.org/licenses/gpl-2.0.html repository: git://git.savannah.gnu.org/stow.git -version: v2.4.0 +version: v2.4.1 x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/Makefile.am new/stow-2.4.1/Makefile.am --- old/stow-2.4.0/Makefile.am 2024-04-07 19:13:09.000000000 +0200 +++ new/stow-2.4.1/Makefile.am 2024-09-08 20:06:18.000000000 +0200 @@ -22,7 +22,7 @@ HTML = doc/manual-single.html dist_doc_DATA = \ README.md INSTALL.md \ - $(PDF) $(HTML) doc/version.texi \ + $(HTML) doc/version.texi \ ChangeLog doc/ChangeLog.OLD # automake magic to define where *_DATA files get installed: @@ -97,7 +97,7 @@ CPAN_FILES = MANIFEST MANIFEST.SKIP Build.PL META.yml META.json EXTRA_DIST = \ bin/stow.in bin/chkstow.in lib/Stow.pm.in lib/Stow/Util.pm.in \ - doc/manual-split \ + $(PDF) doc/manual-split \ $(TESTS) t/testutil.pm \ $(DEFAULT_IGNORE_LIST) \ $(CPAN_FILES) @@ -237,6 +237,8 @@ -c USE_TITLEPAGE_FOR_TITLE=1 --no-split -o $@ \ `test -f 'doc/stow.texi' || echo '$(srcdir)/'`doc/stow.texi +pdf: $(PDF) + $(PDF): $(doc_deps) TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc -I $(srcdir)/doc' \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/NEWS new/stow-2.4.1/NEWS --- old/stow-2.4.0/NEWS 2024-04-07 19:55:35.000000000 +0200 +++ new/stow-2.4.1/NEWS 2024-09-08 20:06:18.000000000 +0200 @@ -1,5 +1,55 @@ News file for Stow. +* Changes in version 2.4.1 + +*** Fix precedence warning with Perl 5.40. + + Perl 5.40.0 extended the scope of the "Possible precedence issue + with control flow operator" warnings to include ternary operators, + which reintroduced this warning when running Stow on Perl >= 5.40.0. + This has now been fixed. + +*** =--dotfiles= option now works correctly with ignore lists + + If the =--dotfiles= option was enabled, files in the package such + as =dot-gitignore= would be translated to =.gitignore= prior to + stowing, and consequently ignored by the default ignore list. + However any file named =dot-*= in a package is obviously intended + to be stowed as a dot file, so should not be ignored. + + To fix this, Stow now ignores based on the name in the package, + not the potentially translated name used for stowing, and + similarly for unstowing. + +*** Use shell-like parsing for =.stowrc= arguments + + If a file path or regex in =.stowrc= has a space, the option + previously broke because it would have been treated as two options + instead of one. Now it's possible to include options using + shell-like quoting, e.g.: + + --target="$HOME/dir with space in/file with space in" + --ignore=\\$FOO\\$ + +*** Make dependency on LaTeX optional + + Previously, the installation instructions always built a PDF + version of the manual, which required having LaTeX installed. + However LaTeX is a large program which can be awkward to install, + so this has now been made optional, and by default the PDF manual + is not part of the build. It can still be built via =make pdf=, + and this is documented. + +*** Fix Docker builds. + + Fix the return error 100 that was happening when trying to run + the build script with docker. + +*** Various maintainer tweaks + + Further improved the release process and its documentation in + various minor ways. Perl 5.40 has been added to the test matrix. + * Changes in version 2.4.0 *** --dotfiles now works with directories diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/bin/stow.in new/stow-2.4.1/bin/stow.in --- old/stow-2.4.0/bin/stow.in 2024-04-07 18:59:40.000000000 +0200 +++ new/stow-2.4.1/bin/stow.in 2024-07-13 18:02:18.000000000 +0200 @@ -460,6 +460,7 @@ use POSIX qw(getcwd); use Getopt::Long qw(GetOptionsFromArray); use Scalar::Util qw(reftype); +use Text::ParseWords qw(shellwords); @USE_LIB_PMDIR@ use Stow; @@ -581,19 +582,19 @@ 'ignore=s' => sub { my $regex = $_[1]; - push @{$options{ignore}}, qr($regex\z); + push @{$options{ignore}}, qr{($regex)\z}; }, 'override=s' => sub { my $regex = $_[1]; - push @{$options{override}}, qr(\A$regex); + push @{$options{override}}, qr{\A($regex)}; }, 'defer=s' => sub { my $regex = $_[1]; - push @{$options{defer}}, qr(\A$regex); + push @{$options{defer}}, qr{\A($regex)}; }, # a little craziness so we can do different actions on the same line: @@ -683,7 +684,7 @@ or die "Could not open $file for reading\n"; while (my $line = <$FILE>){ chomp $line; - push @defaults, split " ", $line; + push @defaults, shellwords($line); } close $FILE or die "Could not close open file: $file\n"; } @@ -836,7 +837,7 @@ Stow home page: <http://www.gnu.org/software/stow/> General help using GNU software: <http://www.gnu.org/gethelp/> EOT - exit defined $msg ? 1 : 0; + exit (defined $msg ? 1 : 0); } sub version { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/configure.ac new/stow-2.4.1/configure.ac --- old/stow-2.4.0/configure.ac 2024-04-07 19:55:35.000000000 +0200 +++ new/stow-2.4.1/configure.ac 2024-04-08 01:24:33.000000000 +0200 @@ -15,7 +15,7 @@ dnl Process this file with Autoconf to produce configure dnl -AC_INIT([stow], [2.4.0], [[email protected]]) +AC_INIT([stow], [2.4.1], [[email protected]]) AC_PREREQ([2.61]) AC_CONFIG_AUX_DIR([automake]) # Unfortunately we have to disable warnings for overrides, because we diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-single.html new/stow-2.4.1/doc/manual-single.html --- old/stow-2.4.0/doc/manual-single.html 2024-04-07 23:20:30.000000000 +0200 +++ new/stow-2.4.1/doc/manual-single.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: @@ -82,7 +82,7 @@ Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> <a class="top" id="SEC_Top"></a> -<p>This manual describes GNU Stow 2.4.0 (7 April 2024), a +<p>This manual describes GNU Stow 2.4.1 (8 September 2024), a symlink farm manager which takes distinct sets of software and/or data located in separate directories on the filesystem, and makes them appear to be installed in a single directory tree. @@ -452,6 +452,13 @@ <samp class="file">stow/dot-emacs.d/init.el</samp>. Any other files, whose name does not begin with ‘<samp class="samp">dot-</samp>’, will be processed as usual. </p> +<p>Note that when this option is enabled, any package file or directory +prefixed with ‘<samp class="samp">dot-</samp>’ is assumed to be named deliberately to be +stowed with a ‘<samp class="samp">.</samp>’ prefix, and therefore will only be ignored if +there is an entry in the ignore list (See <a class="xref" href="#Ignore-Lists">Ignore Lists</a>) which matches +this prefix. So for example, by default <samp class="file">dot-gitignore</samp> would not +be ignored even though ‘<samp class="samp">\.gitignore</samp>’ is in the default ignore list. +</p> </dd> <dt>‘<samp class="samp">--no-folding</samp>’</dt> <dd> @@ -1117,7 +1124,11 @@ character (<code class="command">~</code>) are expanded. An environment variable can be given in either the <code class="command">$VAR</code> or <code class="command">${VAR}</code> form. To prevent expansion, escape the <code class="command">$</code> or <code class="command">~</code> with a -backslash. +backslash. Since these values are first subject to standard shell +quoting rules, if you want special characters such as <code class="command">\b</code> or +<code class="command">$</code> to be treated as regular expression assertions then they +will need extra escaping, i.e. <code class="command">\\b</code> and <code class="command">\\\$</code> +respectively. </p> <p>The options <code class="command">-D</code>, <code class="command">-S</code>, and <code class="command">-R</code> are ignored in resource files. This is also true of any package names given in the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Bootstrapping.html new/stow-2.4.1/doc/manual-split/Bootstrapping.html --- old/stow-2.4.0/doc/manual-split/Bootstrapping.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Bootstrapping.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Compile_002dtime-vs_002e-Install_002dtime.html new/stow-2.4.1/doc/manual-split/Compile_002dtime-vs_002e-Install_002dtime.html --- old/stow-2.4.0/doc/manual-split/Compile_002dtime-vs_002e-Install_002dtime.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Compile_002dtime-vs_002e-Install_002dtime.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Conflicts.html new/stow-2.4.1/doc/manual-split/Conflicts.html --- old/stow-2.4.0/doc/manual-split/Conflicts.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Conflicts.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Cygnus-Software.html new/stow-2.4.1/doc/manual-split/Cygnus-Software.html --- old/stow-2.4.0/doc/manual-split/Cygnus-Software.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Cygnus-Software.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Deferred-Operation.html new/stow-2.4.1/doc/manual-split/Deferred-Operation.html --- old/stow-2.4.0/doc/manual-split/Deferred-Operation.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Deferred-Operation.html 2024-09-08 20:24:32.000000000 +0200 @@ -4,8 +4,8 @@ <!-- This file redirects to the location of a node or anchor --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Deleting-Packages.html new/stow-2.4.1/doc/manual-split/Deleting-Packages.html --- old/stow-2.4.0/doc/manual-split/Deleting-Packages.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Deleting-Packages.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/GNU-Emacs.html new/stow-2.4.1/doc/manual-split/GNU-Emacs.html --- old/stow-2.4.0/doc/manual-split/GNU-Emacs.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/GNU-Emacs.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/GNU-General-Public-License.html new/stow-2.4.1/doc/manual-split/GNU-General-Public-License.html --- old/stow-2.4.0/doc/manual-split/GNU-General-Public-License.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/GNU-General-Public-License.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Ignore-Lists.html new/stow-2.4.1/doc/manual-split/Ignore-Lists.html --- old/stow-2.4.0/doc/manual-split/Ignore-Lists.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Ignore-Lists.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Index.html new/stow-2.4.1/doc/manual-split/Index.html --- old/stow-2.4.0/doc/manual-split/Index.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Index.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Installing-Packages.html new/stow-2.4.1/doc/manual-split/Installing-Packages.html --- old/stow-2.4.0/doc/manual-split/Installing-Packages.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Installing-Packages.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Introduction.html new/stow-2.4.1/doc/manual-split/Introduction.html --- old/stow-2.4.0/doc/manual-split/Introduction.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Introduction.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Invoking-Stow.html new/stow-2.4.1/doc/manual-split/Invoking-Stow.html --- old/stow-2.4.0/doc/manual-split/Invoking-Stow.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Invoking-Stow.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: @@ -174,6 +174,13 @@ <samp class="file">stow/dot-emacs.d/init.el</samp>. Any other files, whose name does not begin with ‘<samp class="samp">dot-</samp>’, will be processed as usual. </p> +<p>Note that when this option is enabled, any package file or directory +prefixed with ‘<samp class="samp">dot-</samp>’ is assumed to be named deliberately to be +stowed with a ‘<samp class="samp">.</samp>’ prefix, and therefore will only be ignored if +there is an entry in the ignore list (See <a class="xref" href="Ignore-Lists.html">Ignore Lists</a>) which matches +this prefix. So for example, by default <samp class="file">dot-gitignore</samp> would not +be ignored even though ‘<samp class="samp">\.gitignore</samp>’ is in the default ignore list. +</p> </dd> <dt>‘<samp class="samp">--no-folding</samp>’</dt> <dd> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Justification-For-Yet-Another-Set-Of-Ignore-Files.html new/stow-2.4.1/doc/manual-split/Justification-For-Yet-Another-Set-Of-Ignore-Files.html --- old/stow-2.4.0/doc/manual-split/Justification-For-Yet-Another-Set-Of-Ignore-Files.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Justification-For-Yet-Another-Set-Of-Ignore-Files.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Known-Bugs.html new/stow-2.4.1/doc/manual-split/Known-Bugs.html --- old/stow-2.4.0/doc/manual-split/Known-Bugs.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Known-Bugs.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Mixing-Operations.html new/stow-2.4.1/doc/manual-split/Mixing-Operations.html --- old/stow-2.4.0/doc/manual-split/Mixing-Operations.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Mixing-Operations.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Motivation-For-Ignore-Lists.html new/stow-2.4.1/doc/manual-split/Motivation-For-Ignore-Lists.html --- old/stow-2.4.0/doc/manual-split/Motivation-For-Ignore-Lists.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Motivation-For-Ignore-Lists.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Multiple-Stow-Directories.html new/stow-2.4.1/doc/manual-split/Multiple-Stow-Directories.html --- old/stow-2.4.0/doc/manual-split/Multiple-Stow-Directories.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Multiple-Stow-Directories.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Other-FSF-Software.html new/stow-2.4.1/doc/manual-split/Other-FSF-Software.html --- old/stow-2.4.0/doc/manual-split/Other-FSF-Software.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Other-FSF-Software.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Perl-and-Perl-5-Modules.html new/stow-2.4.1/doc/manual-split/Perl-and-Perl-5-Modules.html --- old/stow-2.4.0/doc/manual-split/Perl-and-Perl-5-Modules.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Perl-and-Perl-5-Modules.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Reporting-Bugs.html new/stow-2.4.1/doc/manual-split/Reporting-Bugs.html --- old/stow-2.4.0/doc/manual-split/Reporting-Bugs.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Reporting-Bugs.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Resource-Files.html new/stow-2.4.1/doc/manual-split/Resource-Files.html --- old/stow-2.4.0/doc/manual-split/Resource-Files.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Resource-Files.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: @@ -125,7 +125,11 @@ character (<code class="command">~</code>) are expanded. An environment variable can be given in either the <code class="command">$VAR</code> or <code class="command">${VAR}</code> form. To prevent expansion, escape the <code class="command">$</code> or <code class="command">~</code> with a -backslash. +backslash. Since these values are first subject to standard shell +quoting rules, if you want special characters such as <code class="command">\b</code> or +<code class="command">$</code> to be treated as regular expression assertions then they +will need extra escaping, i.e. <code class="command">\\b</code> and <code class="command">\\\$</code> +respectively. </p> <p>The options <code class="command">-D</code>, <code class="command">-S</code>, and <code class="command">-R</code> are ignored in resource files. This is also true of any package names given in the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Target-Maintenance.html new/stow-2.4.1/doc/manual-split/Target-Maintenance.html --- old/stow-2.4.0/doc/manual-split/Target-Maintenance.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Target-Maintenance.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Terminology.html new/stow-2.4.1/doc/manual-split/Terminology.html --- old/stow-2.4.0/doc/manual-split/Terminology.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Terminology.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Tree-unfolding.html new/stow-2.4.1/doc/manual-split/Tree-unfolding.html --- old/stow-2.4.0/doc/manual-split/Tree-unfolding.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Tree-unfolding.html 2024-09-08 20:24:32.000000000 +0200 @@ -4,8 +4,8 @@ <!-- This file redirects to the location of a node or anchor --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/Types-And-Syntax-Of-Ignore-Lists.html new/stow-2.4.1/doc/manual-split/Types-And-Syntax-Of-Ignore-Lists.html --- old/stow-2.4.0/doc/manual-split/Types-And-Syntax-Of-Ignore-Lists.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/Types-And-Syntax-Of-Ignore-Lists.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/index.html new/stow-2.4.1/doc/manual-split/index.html --- old/stow-2.4.0/doc/manual-split/index.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/index.html 2024-09-08 20:24:32.000000000 +0200 @@ -3,8 +3,8 @@ <!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: @@ -72,7 +72,7 @@ </div> <hr> <a class="top" id="SEC_Top"></a> -<p>This manual describes GNU Stow 2.4.0 (7 April 2024), a +<p>This manual describes GNU Stow 2.4.1 (8 September 2024), a symlink farm manager which takes distinct sets of software and/or data located in separate directories on the filesystem, and makes them appear to be installed in a single directory tree. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/symlink.html new/stow-2.4.1/doc/manual-split/symlink.html --- old/stow-2.4.0/doc/manual-split/symlink.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/symlink.html 2024-09-08 20:24:32.000000000 +0200 @@ -4,8 +4,8 @@ <!-- This file redirects to the location of a node or anchor --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/tree-folding.html new/stow-2.4.1/doc/manual-split/tree-folding.html --- old/stow-2.4.0/doc/manual-split/tree-folding.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/tree-folding.html 2024-09-08 20:24:32.000000000 +0200 @@ -4,8 +4,8 @@ <!-- This file redirects to the location of a node or anchor --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/manual-split/tree-refolding.html new/stow-2.4.1/doc/manual-split/tree-refolding.html --- old/stow-2.4.0/doc/manual-split/tree-refolding.html 2024-04-07 23:20:29.000000000 +0200 +++ new/stow-2.4.1/doc/manual-split/tree-refolding.html 2024-09-08 20:24:32.000000000 +0200 @@ -4,8 +4,8 @@ <!-- This file redirects to the location of a node or anchor --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<!-- This manual describes GNU Stow version 2.4.0 -(7 April 2024), a program for managing farms of symbolic links. +<!-- This manual describes GNU Stow version 2.4.1 +(8 September 2024), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: Binary files old/stow-2.4.0/doc/manual.pdf and new/stow-2.4.1/doc/manual.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/stamp-vti new/stow-2.4.1/doc/stamp-vti --- old/stow-2.4.0/doc/stamp-vti 2024-04-07 23:20:28.000000000 +0200 +++ new/stow-2.4.1/doc/stamp-vti 2024-09-08 20:24:31.000000000 +0200 @@ -1,4 +1,4 @@ -@set UPDATED 7 April 2024 -@set UPDATED-MONTH April 2024 -@set EDITION 2.4.0 -@set VERSION 2.4.0 +@set UPDATED 8 September 2024 +@set UPDATED-MONTH September 2024 +@set EDITION 2.4.1 +@set VERSION 2.4.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/stow.8 new/stow-2.4.1/doc/stow.8 --- old/stow-2.4.0/doc/stow.8 2024-04-07 23:20:28.000000000 +0200 +++ new/stow-2.4.1/doc/stow.8 2024-09-08 20:24:32.000000000 +0200 @@ -55,7 +55,7 @@ .\" ======================================================================== .\" .IX Title "stow 8" -.TH stow 8 2024-04-07 "perl v5.38.2" "User Contributed Perl Documentation" +.TH stow 8 2024-09-08 "perl v5.38.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -67,7 +67,7 @@ stow [ options ] package ... .SH DESCRIPTION .IX Header "DESCRIPTION" -This manual page describes GNU Stow 2.4.0. This is not the +This manual page describes GNU Stow 2.4.1. This is not the definitive documentation for Stow; for that, see the accompanying info manual, e.g. by typing \f(CW\*(C`info stow\*(C'\fR. .PP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/stow.info new/stow-2.4.1/doc/stow.info --- old/stow-2.4.0/doc/stow.info 2024-04-07 23:20:28.000000000 +0200 +++ new/stow-2.4.1/doc/stow.info 2024-09-08 20:24:32.000000000 +0200 @@ -1,7 +1,7 @@ This is stow.info, produced by makeinfo version 7.0.3 from stow.texi. -This manual describes GNU Stow version 2.4.0 (7 April 2024), a program -for managing farms of symbolic links. +This manual describes GNU Stow version 2.4.1 (8 September 2024), a +program for managing farms of symbolic links. Software and documentation is copyrighted by the following: @@ -36,7 +36,7 @@ Stow **** -This manual describes GNU Stow 2.4.0 (7 April 2024), a symlink farm +This manual describes GNU Stow 2.4.1 (8 September 2024), a symlink farm manager which takes distinct sets of software and/or data located in separate directories on the filesystem, and makes them appear to be installed in a single directory tree. @@ -357,6 +357,14 @@ âstow/dot-emacs.d/init.elâ. Any other files, whose name does not begin with âdot-â, will be processed as usual. + Note that when this option is enabled, any package file or + directory prefixed with âdot-â is assumed to be named deliberately + to be stowed with a â.â prefix, and therefore will only be ignored + if there is an entry in the ignore list (*Note Ignore Lists::) + which matches this prefix. So for example, by default + âdot-gitignoreâ would not be ignored even though â\.gitignoreâ is + in the default ignore list. + â--no-foldingâ This disables any further tree folding (*note tree folding::) or @@ -922,7 +930,10 @@ For options that take a file path, environment variables and the tilde character (â~â) are expanded. An environment variable can be given in either the â$VARâ or â${VAR}â form. To prevent expansion, -escape the â$â or â~â with a backslash. +escape the â$â or â~â with a backslash. Since these values are first +subject to standard shell quoting rules, if you want special characters +such as â\bâ or â$â to be treated as regular expression assertions then +they will need extra escaping, i.e. â\\bâ and â\\\$â respectively. The options â-Dâ, â-Sâ, and â-Râ are ignored in resource files. This is also true of any package names given in the resource file. @@ -1993,7 +2004,7 @@ * Menu: * absolute symlink: Terminology. (line 50) -* adopting existing files: Invoking Stow. (line 115) +* adopting existing files: Invoking Stow. (line 123) * configuration files: Resource Files. (line 6) * conflicts: Installing Packages. (line 85) * conflicts <1>: Conflicts. (line 6) @@ -2002,7 +2013,7 @@ * deletion: Deleting Packages. (line 6) * directory folding: Installing Packages. (line 16) * dotfiles: Invoking Stow. (line 87) -* dry run: Invoking Stow. (line 137) +* dry run: Invoking Stow. (line 145) * folding trees: Installing Packages. (line 16) * ignore lists: Ignore Lists. (line 6) * ignore lists <1>: Motivation For Ignore Lists. @@ -2020,7 +2031,7 @@ * refolding trees: Deleting Packages. (line 25) * relative symlink: Terminology. (line 50) * resource files: Resource Files. (line 6) -* simulated run: Invoking Stow. (line 137) +* simulated run: Invoking Stow. (line 145) * splitting open folded trees: Installing Packages. (line 51) * stow directory: Terminology. (line 19) * symlink: Terminology. (line 50) @@ -2032,49 +2043,49 @@ * tree unfolding: Installing Packages. (line 51) * tree unsplitting: Installing Packages. (line 51) * unfolding trees: Installing Packages. (line 51) -* verbosity levels: Invoking Stow. (line 143) +* verbosity levels: Invoking Stow. (line 151) Tag Table: -Node: Top1418 -Node: Introduction3075 -Ref: Introduction-Footnote-16579 -Ref: Introduction-Footnote-26688 -Ref: Introduction-Footnote-36786 -Node: Terminology6863 -Ref: symlink9365 -Node: Invoking Stow11207 -Node: Ignore Lists19328 -Node: Motivation For Ignore Lists19592 -Node: Types And Syntax Of Ignore Lists21125 -Ref: Types And Syntax Of Ignore Lists-Footnote-124442 -Ref: Types And Syntax Of Ignore Lists-Footnote-224608 -Ref: Types And Syntax Of Ignore Lists-Footnote-324856 -Node: Justification For Yet Another Set Of Ignore Files25009 -Node: Installing Packages26628 -Ref: tree folding27190 -Ref: Tree unfolding29194 -Node: Deleting Packages31351 -Ref: tree refolding32420 -Ref: Deleting Packages-Footnote-132980 -Node: Conflicts33576 -Ref: Deferred Operation34566 -Node: Mixing Operations35166 -Node: Multiple Stow Directories36155 -Node: Target Maintenance37245 -Node: Resource Files38528 -Node: Compile-time vs. Install-time41124 -Node: GNU Emacs44649 -Ref: GNU Emacs-Footnote-145642 -Node: Other FSF Software45706 -Node: Cygnus Software46492 -Node: Perl and Perl 5 Modules48012 -Node: Bootstrapping51666 -Node: Reporting Bugs52480 -Node: Known Bugs54252 -Node: GNU General Public License54758 -Node: Index92515 +Node: Top1422 +Node: Introduction3083 +Ref: Introduction-Footnote-16587 +Ref: Introduction-Footnote-26696 +Ref: Introduction-Footnote-36794 +Node: Terminology6871 +Ref: symlink9373 +Node: Invoking Stow11215 +Node: Ignore Lists19793 +Node: Motivation For Ignore Lists20057 +Node: Types And Syntax Of Ignore Lists21590 +Ref: Types And Syntax Of Ignore Lists-Footnote-124907 +Ref: Types And Syntax Of Ignore Lists-Footnote-225073 +Ref: Types And Syntax Of Ignore Lists-Footnote-325321 +Node: Justification For Yet Another Set Of Ignore Files25474 +Node: Installing Packages27093 +Ref: tree folding27655 +Ref: Tree unfolding29659 +Node: Deleting Packages31816 +Ref: tree refolding32885 +Ref: Deleting Packages-Footnote-133445 +Node: Conflicts34041 +Ref: Deferred Operation35031 +Node: Mixing Operations35631 +Node: Multiple Stow Directories36620 +Node: Target Maintenance37710 +Node: Resource Files38993 +Node: Compile-time vs. Install-time41847 +Node: GNU Emacs45372 +Ref: GNU Emacs-Footnote-146365 +Node: Other FSF Software46429 +Node: Cygnus Software47215 +Node: Perl and Perl 5 Modules48735 +Node: Bootstrapping52389 +Node: Reporting Bugs53203 +Node: Known Bugs54975 +Node: GNU General Public License55481 +Node: Index93238 End Tag Table diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/stow.texi new/stow-2.4.1/doc/stow.texi --- old/stow-2.4.0/doc/stow.texi 2024-04-07 15:23:27.000000000 +0200 +++ new/stow-2.4.1/doc/stow.texi 2024-09-08 20:06:18.000000000 +0200 @@ -437,6 +437,13 @@ @file{stow/dot-emacs.d/init.el}. Any other files, whose name does not begin with @samp{dot-}, will be processed as usual. +Note that when this option is enabled, any package file or directory +prefixed with @samp{dot-} is assumed to be named deliberately to be +stowed with a @samp{.} prefix, and therefore will only be ignored if +there is an entry in the ignore list (@xref{Ignore Lists}) which matches +this prefix. So for example, by default @file{dot-gitignore} would not +be ignored even though @samp{\.gitignore} is in the default ignore list. + @item --no-folding This disables any further tree folding (@pxref{tree folding}) or @@ -1016,7 +1023,11 @@ character (@command{~}) are expanded. An environment variable can be given in either the @command{$VAR} or @command{$@{VAR@}} form. To prevent expansion, escape the @command{$} or @command{~} with a -backslash. +backslash. Since these values are first subject to standard shell +quoting rules, if you want special characters such as @command{\b} or +@command{$} to be treated as regular expression assertions then they +will need extra escaping, i.e. @command{\\b} and @command{\\\$} +respectively. The options @command{-D}, @command{-S}, and @command{-R} are ignored in resource files. This is also true of any package names given in the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/doc/version.texi new/stow-2.4.1/doc/version.texi --- old/stow-2.4.0/doc/version.texi 2024-04-07 23:20:28.000000000 +0200 +++ new/stow-2.4.1/doc/version.texi 2024-09-08 20:24:31.000000000 +0200 @@ -1,4 +1,4 @@ -@set UPDATED 7 April 2024 -@set UPDATED-MONTH April 2024 -@set EDITION 2.4.0 -@set VERSION 2.4.0 +@set UPDATED 8 September 2024 +@set UPDATED-MONTH September 2024 +@set EDITION 2.4.1 +@set VERSION 2.4.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/lib/Stow.pm.in new/stow-2.4.1/lib/Stow.pm.in --- old/stow-2.4.0/lib/Stow.pm.in 2024-04-07 18:59:29.000000000 +0200 +++ new/stow-2.4.1/lib/Stow.pm.in 2024-09-08 20:06:18.000000000 +0200 @@ -431,17 +431,17 @@ my $package_node_path = join_paths($pkg_subdir, $node); my $target_node = $node; + my $target_node_path = join_paths($target_subdir, $target_node); + next NODE if $self->ignore($stow_path, $package, $target_node_path); if ($self->{dotfiles}) { my $adjusted = adjust_dotfile($node); if ($adjusted ne $node) { debug(4, 1, "Adjusting: $node => $adjusted"); $target_node = $adjusted; + $target_node_path = join_paths($target_subdir, $target_node); } } - my $target_node_path = join_paths($target_subdir, $target_node); - - next NODE if $self->ignore($stow_path, $package, $target_node_path); $self->stow_node( $stow_path, @@ -800,6 +800,9 @@ my $package_node = $node; my $target_node = $node; + my $target_node_path = join_paths($target_subdir, $target_node); + + next NODE if $self->ignore($self->{stow_path}, $package, $target_node_path); if ($self->{dotfiles}) { if ($self->{compat}) { @@ -819,13 +822,11 @@ if ($adjusted ne $node) { debug(4, 1, "Adjusting: $node => $adjusted"); $target_node = $adjusted; + $target_node_path = join_paths($target_subdir, $target_node); } } } my $package_node_path = join_paths($pkg_subdir, $package_node); - my $target_node_path = join_paths($target_subdir, $target_node); - - next NODE if $self->ignore($self->{stow_path}, $package, $target_node_path); $self->unstow_node( $package, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/t/cli_options.t new/stow-2.4.1/t/cli_options.t --- old/stow-2.4.0/t/cli_options.t 2021-04-05 00:35:02.000000000 +0200 +++ new/stow-2.4.1/t/cli_options.t 2024-07-13 18:02:18.000000000 +0200 @@ -73,7 +73,7 @@ 'dummy' ); ($options, $pkgs_to_delete, $pkgs_to_stow) = process_options(); -is_deeply($options->{defer}, [ qr(\Aman), qr(\Ainfo) ] => 'defer man and info'); +is_deeply($options->{defer}, [ qr{\A(man)}, qr{\A(info)} ] => 'defer man and info'); # # Check setting override paths @@ -84,7 +84,7 @@ 'dummy' ); ($options, $pkgs_to_delete, $pkgs_to_stow) = process_options(); -is_deeply($options->{override}, [qr(\Aman), qr(\Ainfo)] => 'override man and info'); +is_deeply($options->{override}, [qr{\A(man)}, qr{\A(info)}] => 'override man and info'); # # Check setting ignored paths @@ -95,7 +95,7 @@ 'dummy' ); ($options, $pkgs_to_delete, $pkgs_to_stow) = process_options(); -is_deeply($options->{ignore}, [ qr(~\z), qr(\.#.*\z) ] => 'ignore temp files'); +is_deeply($options->{ignore}, [ qr{(~)\z}, qr{(\.#.*)\z} ] => 'ignore temp files'); # # Check that expansion not applied. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/t/dotfiles.t new/stow-2.4.1/t/dotfiles.t --- old/stow-2.4.0/t/dotfiles.t 2024-04-07 18:59:29.000000000 +0200 +++ new/stow-2.4.1/t/dotfiles.t 2024-09-08 20:06:18.000000000 +0200 @@ -22,7 +22,7 @@ use strict; use warnings; -use Test::More tests => 12; +use Test::More tests => 14; use English qw(-no_match_vars); use Stow::Util qw(adjust_dotfile unadjust_dotfile); @@ -185,6 +185,21 @@ ); }); +subtest("when stowing, dot-gitignore is not ignored by default", sub { + plan tests => 1; + $stow = new_Stow(dir => '../stow', dotfiles => 1); + + make_file('../stow/dotfiles/dot-gitignore'); + + $stow->plan_stow('dotfiles'); + $stow->process_tasks(); + is( + readlink('.gitignore'), + '../stow/dotfiles/dot-gitignore', + => "dot-gitignore shouldn't have been ignored" + ); +}); + subtest("unstow .bar from dot-bar", sub { plan tests => 3; $stow = new_Stow(dir => '../stow', dotfiles => 1); @@ -233,3 +248,19 @@ ok(! -e '.emacs.d/init.el', '.emacs.d/init.el unstowed'); ok(-d '.emacs.d/' => '.emacs.d left behind'); }); + +subtest("when unstowing, dot-gitignore is not ignored by default", sub { + plan tests => 1; + $stow = new_Stow(dir => '../stow', dotfiles => 1); + + system('pwd'); + make_file('../stow/dotfiles/dot-gitignore'); + -e '.gitignore' or make_link('.gitignore', '../stow/dotfiles/dot-gitignore'); + + $stow->plan_unstow('dotfiles'); + $stow->process_tasks(); + ok( + ! -e ('.gitignore') + => "dot-gitignore shouldn't have been ignored" + ); +}); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/t/ignore.t new/stow-2.4.1/t/ignore.t --- old/stow-2.4.0/t/ignore.t 2020-11-01 15:44:35.000000000 +0100 +++ new/stow-2.4.1/t/ignore.t 2024-09-08 20:06:18.000000000 +0200 @@ -112,7 +112,7 @@ sub setup_user_global_list { # Now test with global ignore list in home directory $ENV{HOME} = tempdir(); - make_file(join_paths($ENV{HOME}, $Stow::GLOBAL_IGNORE_FILE), <<EOF); + setup_global_ignore(<<EOF); exact .+substring.+ # here's a comment .+\.extension @@ -124,10 +124,9 @@ my ($stow_path, $package, $list) = @_; my $package_path = join_paths($stow_path, $package); make_path($package_path); - my $local_ignore = join_paths($package_path, $Stow::LOCAL_IGNORE_FILE); - make_file($local_ignore, $list); - $stow->invalidate_memoized_regexp($local_ignore); - return $local_ignore; + my $package_ignore = setup_package_ignore($package_path, $list); + $stow->invalidate_memoized_regexp($package_ignore); + return $package_ignore; } sub main { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/t/rc_options.t new/stow-2.4.1/t/rc_options.t --- old/stow-2.4.0/t/rc_options.t 2020-11-01 15:44:35.000000000 +0100 +++ new/stow-2.4.1/t/rc_options.t 2024-07-13 18:02:18.000000000 +0200 @@ -22,7 +22,7 @@ use strict; use warnings; -use Test::More tests => 34; +use Test::More tests => 35; use testutil; @@ -102,7 +102,7 @@ ($options, $pkgs_to_delete, $pkgs_to_stow) = process_options(); is($options->{target}, "../target", "--target from \$HOME/.stowrc"); -is($options->{dir}, "../stow", "-d from \$HOME/.stowrc"); +is($options->{dir}, "../stow", "-d ../stow from \$HOME/.stowrc"); # # Test ~/.stowrc file with one absolute option per line. @@ -117,7 +117,20 @@ is($options->{target}, "$ABS_TEST_DIR/target" => "--target from \$HOME/.stowrc"); is($options->{dir}, "$ABS_TEST_DIR/stow" - => "-d from \$HOME/.stowrc"); + => "-d $ABS_TEST_DIR/stow from \$HOME/.stowrc"); + +# +# Test ~/.stowrc file with with options with paths containing spaces. +# +local @ARGV = ('dummy'); +make_file($HOME_RC_FILE, <<HERE); + -d "$ABS_TEST_DIR/stow directory" + --target "$ABS_TEST_DIR/target" +HERE + +($options, $pkgs_to_delete, $pkgs_to_stow) = process_options(); +is($options->{dir}, "$ABS_TEST_DIR/stow directory", + => "-d from \$HOME/.stowrc with spaces"); # # Test that some but not all options ~/.stowrc file are overridden by @@ -140,7 +153,7 @@ => "--target overridden by \$PWD/.stowrc"); is($options->{dir}, "$ABS_TEST_DIR/stow" => "-d overridden \$PWD/.stowrc"); -is_deeply($options->{defer}, [qr(\Ainfo), qr(\Aman)], +is_deeply($options->{defer}, [qr{\A(info)}, qr{\A(man)}], 'defer man and info'); unlink($CWD_RC_FILE) or die "Failed to unlink $CWD_RC_FILE"; @@ -166,7 +179,7 @@ --defer=info HERE ($options, $pkgs_to_delete, $pkgs_to_stow) = process_options(); -is_deeply($options->{defer}, [qr(\Ainfo), qr(\Aman)], +is_deeply($options->{defer}, [qr{\A(info)}, qr{\A(man)}], 'defer man and info'); # ======== Filepath Expansion Tests ======== @@ -215,26 +228,32 @@ is(expand_tilde('\~/path'), '~/path', 'escaped tilde'); # -# Test that environment variable expansion is applied. +# Test that environment variable expansion is applied unless quoted. +# Include examples from the manual # make_file($HOME_RC_FILE, <<'HERE'); --dir=$HOME/stow ---target=$HOME/stow ---ignore=\$HOME ---defer=\$HOME ---override=\$HOME +--target="$HOME/dir with space in/file with space in" +--ignore=\\$FOO\\$ +--defer="foo\\b.*bar" +--defer="\\.jpg\$" +--override=\\.png\$ +--override=bin|man +--ignore='perllocal\.pod' +--ignore='\.packlist' +--ignore='\.bs' HERE ($options, $pkgs_to_delete, $pkgs_to_stow) = get_config_file_options(); is($options->{dir}, "$ABS_TEST_DIR/stow", - "apply environment expansion on \$HOME/.stowrc --dir"); -is($options->{target}, "$ABS_TEST_DIR/stow", - "apply environment expansion on \$HOME/.stowrc --target"); -is_deeply($options->{ignore}, [qr(\$HOME\z)], - "environment expansion not applied on --ignore"); -is_deeply($options->{defer}, [qr(\A\$HOME)], - "environment expansion not applied on --defer"); -is_deeply($options->{override}, [qr(\A\$HOME)], - "environment expansion not applied on --override"); + "apply environment expansion on --dir"); +is($options->{target}, "$ABS_TEST_DIR/dir with space in/file with space in", + "apply environment expansion on --target"); +is_deeply($options->{ignore}, [qr{(\$FOO\$)\z}, qr{(perllocal\.pod)\z}, qr{(\.packlist)\z}, qr{(\.bs)\z}], + 'environment expansion not applied on --ignore but backslash removed'); +is_deeply($options->{defer}, [qr{\A(foo\b.*bar)}, qr{\A(\.jpg$)}], + 'environment expansion not applied on --defer but backslash removed'); +is_deeply($options->{override}, [qr{\A(\.png$)}, qr{\A(bin|man)}], + 'environment expansion not applied on --override but backslash removed'); # # Test that tilde expansion is applied in correct places. @@ -251,11 +270,11 @@ "apply tilde expansion on \$HOME/.stowrc --dir"); is($options->{target}, "$ABS_TEST_DIR/stow", "apply tilde expansion on \$HOME/.stowrc --target"); -is_deeply($options->{ignore}, [qr(~/stow\z)], +is_deeply($options->{ignore}, [qr{(~/stow)\z}], "tilde expansion not applied on --ignore"); -is_deeply($options->{defer}, [qr(\A~/stow)], +is_deeply($options->{defer}, [qr{\A(~/stow)}], "tilde expansion not applied on --defer"); -is_deeply($options->{override}, [qr(\A~/stow)], +is_deeply($options->{override}, [qr{\A(~/stow)}], "tilde expansion not applied on --override"); # @@ -263,4 +282,3 @@ # unlink $HOME_RC_FILE or die "Unable to clean up $HOME_RC_FILE.\n"; remove_dir($ABS_TEST_DIR); - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stow-2.4.0/t/testutil.pm new/stow-2.4.1/t/testutil.pm --- old/stow-2.4.0/t/testutil.pm 2024-04-07 18:59:29.000000000 +0200 +++ new/stow-2.4.1/t/testutil.pm 2024-09-08 20:06:18.000000000 +0200 @@ -31,7 +31,7 @@ use Test::More; use Stow; -use Stow::Util qw(parent canon_path); +use Stow::Util qw(parent canon_path join_paths); use base qw(Exporter); our @EXPORT = qw( @@ -41,6 +41,7 @@ cd new_Stow new_compat_Stow make_path make_link make_invalid_link make_file + setup_global_ignore setup_package_ignore remove_dir remove_file remove_link cat_file is_link is_dir_not_symlink is_nonexistent_path @@ -56,7 +57,7 @@ # Create a run_from/ subdirectory for tests which want to run # from a separate directory outside the Stow directory or # target directory. - for my $dir ("target", "stow", "run_from") { + for my $dir ("target", "stow", "run_from", "stow directory") { my $path = "$test_dir/$dir"; -d $path and remove_tree($path); make_path($path); @@ -160,6 +161,20 @@ close $FILE; } +sub setup_global_ignore { + my ($contents) = @_; + my $global_ignore_file = join_paths($ENV{HOME}, $Stow::GLOBAL_IGNORE_FILE); + make_file($global_ignore_file, $contents); + return $global_ignore_file; +} + +sub setup_package_ignore { + my ($package_path, $contents) = @_; + my $package_ignore_file = join_paths($package_path, $Stow::LOCAL_IGNORE_FILE); + make_file($package_ignore_file, $contents); + return $package_ignore_file; +} + #===== SUBROUTINE =========================================================== # Name : remove_link() # Purpose : remove an esiting symbolic link
