Reorganise more files into subdirectories and add CPAN support via Module::Build
This commit is contained in:
parent
382ad5c58d
commit
58625800ee
15 changed files with 369 additions and 95 deletions
58
Build.PL
Normal file
58
Build.PL
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
use Module::Build;
|
||||||
|
|
||||||
|
# These are required by the test suite.
|
||||||
|
use lib "t";
|
||||||
|
use lib "bin";
|
||||||
|
|
||||||
|
my $build = Module::Build->new(
|
||||||
|
module_name => 'Stow',
|
||||||
|
keywords => [ qw/stow symlink software package management install/ ],
|
||||||
|
license => 'gpl',
|
||||||
|
|
||||||
|
# Module::Build forces us to use v1.4 of the CPAN Meta Spec:
|
||||||
|
# https://rt.cpan.org/Ticket/Display.html?id=71502
|
||||||
|
# 'meta-spec' => {
|
||||||
|
# version => '2.0',
|
||||||
|
# url => 'http://search.cpan.org/perldoc?CPAN::Meta::Spec',
|
||||||
|
# },
|
||||||
|
meta_add => {
|
||||||
|
resources => {
|
||||||
|
license => 'http://www.gnu.org/licenses/gpl-2.0.html' ,
|
||||||
|
homepage => 'https://savannah.gnu.org/projects/stow',
|
||||||
|
|
||||||
|
# Module::Build forces us to use v1.4 of the CPAN Meta Spec:
|
||||||
|
# https://rt.cpan.org/Ticket/Display.html?id=71502
|
||||||
|
# bugtracker => {
|
||||||
|
# web => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Stow',
|
||||||
|
# mailto => 'mysqldiff@adamspiers.org',
|
||||||
|
# },
|
||||||
|
#bugtracker => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Stow',
|
||||||
|
|
||||||
|
# Module::Build forces us to use v1.4 of the CPAN Meta Spec:
|
||||||
|
# https://rt.cpan.org/Ticket/Display.html?id=71502
|
||||||
|
# repository => {
|
||||||
|
# url => 'git:github.com/aspiers/stow.git',
|
||||||
|
# web => 'http://github.com/aspiers/stow',
|
||||||
|
# type => 'git',
|
||||||
|
# },
|
||||||
|
repository => 'http://github.com/aspiers/stow',
|
||||||
|
#repository => 'https://savannah.gnu.org/git/?group=stow',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
requires => {
|
||||||
|
'perl' => '5.006',
|
||||||
|
'Carp' => 0,
|
||||||
|
'File::Slurp' => 0,
|
||||||
|
'IO::File' => 0,
|
||||||
|
},
|
||||||
|
script_files => [ 'bin/stow' ],
|
||||||
|
all_from => 'lib/Stow.pm',
|
||||||
|
configure_requires => {
|
||||||
|
'Module::Build' => 0,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
$build->create_build_script();
|
46
MANIFEST
Normal file
46
MANIFEST
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
aclocal.m4
|
||||||
|
AUTHORS
|
||||||
|
automake/install-sh
|
||||||
|
automake/mdate-sh
|
||||||
|
automake/missing
|
||||||
|
automake/stamp-vti
|
||||||
|
bin/chkstow
|
||||||
|
bin/chkstow.in
|
||||||
|
bin/stow
|
||||||
|
bin/stow.in
|
||||||
|
Build.PL
|
||||||
|
ChangeLog
|
||||||
|
configure
|
||||||
|
configure.ac
|
||||||
|
COPYING
|
||||||
|
doc/stow.8
|
||||||
|
doc/stow.info
|
||||||
|
doc/stow.texi
|
||||||
|
doc/texinfo.tex
|
||||||
|
doc/version.texi
|
||||||
|
INSTALL
|
||||||
|
lib/Stow.pm
|
||||||
|
lib/Stow.pm.in
|
||||||
|
lib/Stow/Util.pm
|
||||||
|
Makefile.am
|
||||||
|
Makefile.in
|
||||||
|
MANIFEST This list of files
|
||||||
|
NEWS
|
||||||
|
README
|
||||||
|
t/chkstow.t
|
||||||
|
t/cleanup_invalid_links.t
|
||||||
|
t/defer.t
|
||||||
|
t/examples.t
|
||||||
|
t/find_stowed_path.t
|
||||||
|
t/foldable.t
|
||||||
|
t/join_paths.t
|
||||||
|
t/parent.t
|
||||||
|
t/stow.t
|
||||||
|
t/stow_contents.t
|
||||||
|
t/testutil.pm
|
||||||
|
t/unstow_contents.t
|
||||||
|
t/unstow_contents_orig.t
|
||||||
|
THANKS
|
||||||
|
TODO
|
||||||
|
META.yml
|
||||||
|
META.json
|
78
MANIFEST.SKIP
Normal file
78
MANIFEST.SKIP
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
|
||||||
|
#!start included /usr/share/perl5/ExtUtils/MANIFEST.SKIP
|
||||||
|
# Avoid version control files.
|
||||||
|
\bRCS\b
|
||||||
|
\bCVS\b
|
||||||
|
\bSCCS\b
|
||||||
|
,v$
|
||||||
|
\B\.svn\b
|
||||||
|
\B\.git\b
|
||||||
|
\B\.gitignore\b
|
||||||
|
\b_darcs\b
|
||||||
|
\B\.cvsignore$
|
||||||
|
|
||||||
|
# Avoid VMS specific MakeMaker generated files
|
||||||
|
\bDescrip.MMS$
|
||||||
|
\bDESCRIP.MMS$
|
||||||
|
\bdescrip.mms$
|
||||||
|
|
||||||
|
# Avoid Makemaker generated and utility files.
|
||||||
|
\bMANIFEST\.bak
|
||||||
|
\bMakefile$
|
||||||
|
\bblib/
|
||||||
|
\bMakeMaker-\d
|
||||||
|
\bpm_to_blib\.ts$
|
||||||
|
\bpm_to_blib$
|
||||||
|
\bblibdirs\.ts$ # 6.18 through 6.25 generated this
|
||||||
|
|
||||||
|
# Avoid Module::Build generated and utility files.
|
||||||
|
\bBuild$
|
||||||
|
\b_build/
|
||||||
|
\bBuild.bat$
|
||||||
|
\bBuild.COM$
|
||||||
|
\bBUILD.COM$
|
||||||
|
\bbuild.com$
|
||||||
|
|
||||||
|
# Avoid temp and backup files.
|
||||||
|
~$
|
||||||
|
\.old$
|
||||||
|
\#$
|
||||||
|
\b\.#
|
||||||
|
\.bak$
|
||||||
|
\.tmp$
|
||||||
|
\.#
|
||||||
|
\.rej$
|
||||||
|
|
||||||
|
# Avoid OS-specific files/dirs
|
||||||
|
# Mac OSX metadata
|
||||||
|
\B\.DS_Store
|
||||||
|
# Mac OSX SMB mount metadata files
|
||||||
|
\B\._
|
||||||
|
|
||||||
|
# Avoid Devel::Cover files.
|
||||||
|
\bcover_db\b
|
||||||
|
#!end included /usr/share/perl5/ExtUtils/MANIFEST.SKIP
|
||||||
|
|
||||||
|
# Avoid configuration metadata file
|
||||||
|
^MYMETA\.
|
||||||
|
|
||||||
|
# Avoid Module::Build generated and utility files.
|
||||||
|
\bBuild$
|
||||||
|
\bBuild.bat$
|
||||||
|
\b_build
|
||||||
|
\bBuild.COM$
|
||||||
|
\bBUILD.COM$
|
||||||
|
\bbuild.com$
|
||||||
|
^MANIFEST\.SKIP
|
||||||
|
|
||||||
|
# Avoid archives of this distribution
|
||||||
|
\bStow-[\d\.\_]+
|
||||||
|
|
||||||
|
# Avoid autotools stuff
|
||||||
|
^autom4te\.cache/.+$
|
||||||
|
^config\.(log|status)$
|
||||||
|
^doc/\.dirstamp$
|
||||||
|
^doc/stamp-vti$
|
||||||
|
|
||||||
|
# Avoid test files
|
||||||
|
^t/(stow|target)/.+$
|
52
META.json
Normal file
52
META.json
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
{
|
||||||
|
"abstract" : "manage the installation of multiple software packages",
|
||||||
|
"author" : [
|
||||||
|
"unknown"
|
||||||
|
],
|
||||||
|
"dynamic_config" : 1,
|
||||||
|
"generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.112621",
|
||||||
|
"license" : [
|
||||||
|
"open_source"
|
||||||
|
],
|
||||||
|
"meta-spec" : {
|
||||||
|
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
|
||||||
|
"version" : "2"
|
||||||
|
},
|
||||||
|
"name" : "Stow",
|
||||||
|
"prereqs" : {
|
||||||
|
"configure" : {
|
||||||
|
"requires" : {
|
||||||
|
"Module::Build" : 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime" : {
|
||||||
|
"requires" : {
|
||||||
|
"Carp" : 0,
|
||||||
|
"File::Slurp" : 0,
|
||||||
|
"IO::File" : 0,
|
||||||
|
"perl" : "5.006"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"provides" : {
|
||||||
|
"Stow" : {
|
||||||
|
"file" : "lib/Stow.pm",
|
||||||
|
"version" : "v2.0.2"
|
||||||
|
},
|
||||||
|
"Stow::Util" : {
|
||||||
|
"file" : "lib/Stow/Util.pm",
|
||||||
|
"version" : 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"release_status" : "stable",
|
||||||
|
"resources" : {
|
||||||
|
"homepage" : "https://savannah.gnu.org/projects/stow",
|
||||||
|
"license" : [
|
||||||
|
"http://www.gnu.org/licenses/gpl-2.0.html"
|
||||||
|
],
|
||||||
|
"repository" : {
|
||||||
|
"url" : "http://github.com/aspiers/stow"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"version" : "v2.0.2"
|
||||||
|
}
|
31
META.yml
Normal file
31
META.yml
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
---
|
||||||
|
abstract: 'manage the installation of multiple software packages'
|
||||||
|
author:
|
||||||
|
- unknown
|
||||||
|
build_requires: {}
|
||||||
|
configure_requires:
|
||||||
|
Module::Build: 0
|
||||||
|
dynamic_config: 1
|
||||||
|
generated_by: 'Module::Build version 0.38, CPAN::Meta::Converter version 2.112621'
|
||||||
|
license: open_source
|
||||||
|
meta-spec:
|
||||||
|
url: http://module-build.sourceforge.net/META-spec-v1.4.html
|
||||||
|
version: 1.4
|
||||||
|
name: Stow
|
||||||
|
provides:
|
||||||
|
Stow:
|
||||||
|
file: lib/Stow.pm
|
||||||
|
version: v2.0.2
|
||||||
|
Stow::Util:
|
||||||
|
file: lib/Stow/Util.pm
|
||||||
|
version: 0
|
||||||
|
requires:
|
||||||
|
Carp: 0
|
||||||
|
File::Slurp: 0
|
||||||
|
IO::File: 0
|
||||||
|
perl: 5.006
|
||||||
|
resources:
|
||||||
|
homepage: https://savannah.gnu.org/projects/stow
|
||||||
|
license: http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
repository: http://github.com/aspiers/stow
|
||||||
|
version: v2.0.2
|
30
Makefile.am
30
Makefile.am
|
@ -1,11 +1,14 @@
|
||||||
## Process this file with Automake to produce Makefile.in
|
## Process this file with Automake to produce Makefile.in
|
||||||
|
|
||||||
bin_SCRIPTS = stow chkstow
|
dist_bin_SCRIPTS = bin/stow bin/chkstow
|
||||||
info_TEXINFOS = stow.texi
|
info_TEXINFOS = doc/stow.texi
|
||||||
dist_man_MANS = stow.8
|
TEXINFO_TEX = doc/texinfo.tex
|
||||||
|
dist_man_MANS = doc/stow.8
|
||||||
dist_doc_DATA = README
|
dist_doc_DATA = README
|
||||||
pmdir = $(libdir)/perl5
|
pmdir = $(libdir)/perl5
|
||||||
pm_DATA = lib/Stow.pm lib/Stow/Util.pm
|
dist_pm_DATA = lib/Stow.pm
|
||||||
|
pmstowdir = $(pmdir)/Stow
|
||||||
|
dist_pmstow_DATA = lib/Stow/Util.pm
|
||||||
|
|
||||||
TESTS_ENVIRONMENT=$(PERL) -I $(top_srcdir)
|
TESTS_ENVIRONMENT=$(PERL) -I $(top_srcdir)
|
||||||
TESTS = \
|
TESTS = \
|
||||||
|
@ -23,8 +26,13 @@ TESTS = \
|
||||||
t/chkstow.t
|
t/chkstow.t
|
||||||
|
|
||||||
AUTOMAKE_OPTIONS = dist-shar
|
AUTOMAKE_OPTIONS = dist-shar
|
||||||
EXTRA_DIST = $(TESTS) t/testutil.pm
|
CPAN_FILES = MANIFEST MANIFEST.SKIP Build.PL META.yml META.json
|
||||||
CLEANFILES = $(bin_SCRIPTS)
|
EXTRA_DIST = \
|
||||||
|
bin/stow.in bin/chkstow.in lib/Stow.pm.in \
|
||||||
|
$(TESTS) t/testutil.pm \
|
||||||
|
$(TEXINFO_TEX) \
|
||||||
|
$(CPAN_FILES)
|
||||||
|
CLEANFILES = $(bin_SCRIPTS) $(dist_pm_DATA)
|
||||||
|
|
||||||
# clean up files left behind by test suite
|
# clean up files left behind by test suite
|
||||||
clean-local:
|
clean-local:
|
||||||
|
@ -34,11 +42,11 @@ clean-local:
|
||||||
edit = sed -e 's|[@]PERL[@]|$(PERL)|g' \
|
edit = sed -e 's|[@]PERL[@]|$(PERL)|g' \
|
||||||
-e 's|[@]VERSION[@]|$(VERSION)|g'
|
-e 's|[@]VERSION[@]|$(VERSION)|g'
|
||||||
|
|
||||||
stow: stow.in Makefile
|
bin/stow: bin/stow.in Makefile
|
||||||
$(edit) < $< > $@
|
$(edit) < $< > $@
|
||||||
chmod +x $@
|
chmod +x $@
|
||||||
|
|
||||||
chkstow: chkstow.in Makefile
|
bin/chkstow: bin/chkstow.in Makefile
|
||||||
$(edit) < $< > $@
|
$(edit) < $< > $@
|
||||||
chmod +x $@
|
chmod +x $@
|
||||||
|
|
||||||
|
@ -47,15 +55,15 @@ lib/Stow.pm: lib/Stow.pm.in
|
||||||
|
|
||||||
# The rules for manual.html and manual.texi are only used by
|
# The rules for manual.html and manual.texi are only used by
|
||||||
# the developer
|
# the developer
|
||||||
manual.html: manual.texi
|
doc/manual.html: doc/manual.texi
|
||||||
-rm -f $@
|
-rm -f $@
|
||||||
texi2html -expandinfo -menu -monolithic -verbose $<
|
texi2html -expandinfo -menu -monolithic -verbose $<
|
||||||
|
|
||||||
manual.texi: stow.texi
|
doc/manual.texi: doc/stow.texi
|
||||||
-rm -f $@
|
-rm -f $@
|
||||||
cp $< $@
|
cp $< $@
|
||||||
|
|
||||||
MODULES = lib/Stow.pm lib/Stow/Util.pm
|
MODULES = lib/Stow.pm lib/Stow/Util.pm
|
||||||
|
|
||||||
test: stow chkstow $(MODULES)
|
test: bin/stow bin/chkstow $(MODULES)
|
||||||
perl -MTest::Harness -Ilib -It -Ibin -e 'runtests(@ARGV)' t/*.t
|
perl -MTest::Harness -Ilib -It -Ibin -e 'runtests(@ARGV)' t/*.t
|
||||||
|
|
|
@ -37,11 +37,11 @@ sub usage {
|
||||||
print <<"EOT";
|
print <<"EOT";
|
||||||
USAGE: chkstow [options]
|
USAGE: chkstow [options]
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
-b, --badlinks Report symlinks that point to non-existant files.
|
-b, --badlinks Report symlinks that point to non-existant files.
|
||||||
-a, --aliens Report non-symlinks in the target directory.
|
-a, --aliens Report non-symlinks in the target directory.
|
||||||
-l, --list List packages in the target directory.
|
-l, --list List packages in the target directory.
|
||||||
-t DIR, --target=DIR Set the target directory to DIR (default
|
-t DIR, --target=DIR Set the target directory to DIR (default
|
||||||
is /usr/local)
|
is /usr/local)
|
||||||
EOT
|
EOT
|
||||||
exit(0);
|
exit(0);
|
||||||
|
@ -51,7 +51,7 @@ sub check_stow {
|
||||||
#my ($Target, $Wanted) = @_;
|
#my ($Target, $Wanted) = @_;
|
||||||
|
|
||||||
my (%options) = (
|
my (%options) = (
|
||||||
wanted => $Wanted,
|
wanted => $Wanted,
|
||||||
preprocess => \&skip_dirs,
|
preprocess => \&skip_dirs,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -81,12 +81,12 @@ sub skip_dirs {
|
||||||
|
|
||||||
# checking for files that do not link to anything
|
# checking for files that do not link to anything
|
||||||
sub bad_links {
|
sub bad_links {
|
||||||
-l && !-e && print "Bogus link: $File::Find::name\n";
|
-l && !-e && print "Bogus link: $File::Find::name\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
# checking for files that are not owned by stow
|
# checking for files that are not owned by stow
|
||||||
sub aliens {
|
sub aliens {
|
||||||
!-l && !-d && print "Unstowed file: $File::Find::name\n";
|
!-l && !-d && print "Unstowed file: $File::Find::name\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
# just list the packages in the the target directory
|
# just list the packages in the the target directory
|
|
@ -87,34 +87,34 @@ sub process_options {
|
||||||
'version|V', 'compat|p', 'dir|d=s', 'target|t=s',
|
'version|V', 'compat|p', 'dir|d=s', 'target|t=s',
|
||||||
|
|
||||||
# clean and pre-compile any regex's at parse time
|
# clean and pre-compile any regex's at parse time
|
||||||
'ignore=s' =>
|
'ignore=s' =>
|
||||||
sub {
|
sub {
|
||||||
# FIXME: do we really need strip_quotes here?
|
# FIXME: do we really need strip_quotes here?
|
||||||
my $regex = strip_quotes($_[1]);
|
my $regex = strip_quotes($_[1]);
|
||||||
push @{$options{'ignore'}}, qr($regex\z);
|
push @{$options{'ignore'}}, qr($regex\z);
|
||||||
},
|
},
|
||||||
|
|
||||||
'override=s' =>
|
'override=s' =>
|
||||||
sub {
|
sub {
|
||||||
my $regex = strip_quotes($_[1]);
|
my $regex = strip_quotes($_[1]);
|
||||||
push @{$options{'override'}}, qr(\A$regex);
|
push @{$options{'override'}}, qr(\A$regex);
|
||||||
},
|
},
|
||||||
|
|
||||||
'defer=s' =>
|
'defer=s' =>
|
||||||
sub {
|
sub {
|
||||||
my $regex = strip_quotes($_[1]);
|
my $regex = strip_quotes($_[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:
|
# a little craziness so we can do different actions on the same line:
|
||||||
# a -D, -S, or -R changes the action that will be performed on the
|
# a -D, -S, or -R changes the action that will be performed on the
|
||||||
# package arguments that follow it.
|
# package arguments that follow it.
|
||||||
'D|delete' => sub { $action = 'unstow' },
|
'D|delete' => sub { $action = 'unstow' },
|
||||||
'S|stow' => sub { $action = 'stow' },
|
'S|stow' => sub { $action = 'stow' },
|
||||||
'R|restow' => sub { $action = 'restow' },
|
'R|restow' => sub { $action = 'restow' },
|
||||||
|
|
||||||
# Handler for non-option arguments
|
# Handler for non-option arguments
|
||||||
'<>' =>
|
'<>' =>
|
||||||
sub {
|
sub {
|
||||||
if ($action eq 'restow') {
|
if ($action eq 'restow') {
|
||||||
push @pkgs_to_unstow, $_[0];
|
push @pkgs_to_unstow, $_[0];
|
||||||
|
@ -146,7 +146,7 @@ sub sanitize_path_options {
|
||||||
$options->{'dir'} =~ s/ +\z//;
|
$options->{'dir'} =~ s/ +\z//;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$options->{'dir'} = exists $ENV{STOW_DIR} ? $ENV{STOW_DIR} : getcwd();
|
$options->{'dir'} = exists $ENV{STOW_DIR} ? $ENV{STOW_DIR} : getcwd();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (exists $options->{'target'}) {
|
if (exists $options->{'target'}) {
|
||||||
|
@ -176,7 +176,7 @@ sub check_packages {
|
||||||
|
|
||||||
|
|
||||||
#===== SUBROUTINE ============================================================
|
#===== SUBROUTINE ============================================================
|
||||||
# Name : get_config_file_options()
|
# Name : get_config_file_options()
|
||||||
# Purpose : search for default settings in any .stowrc files
|
# Purpose : search for default settings in any .stowrc files
|
||||||
# Parameters: none
|
# Parameters: none
|
||||||
# Returns : a list of default options
|
# Returns : a list of default options
|
||||||
|
@ -190,7 +190,7 @@ sub get_config_file_options {
|
||||||
for my $file ("$ENV{'HOME'}/.stowrc", '.stowrc') {
|
for my $file ("$ENV{'HOME'}/.stowrc", '.stowrc') {
|
||||||
if (-r $file) {
|
if (-r $file) {
|
||||||
warn "Loading defaults from $file\n";
|
warn "Loading defaults from $file\n";
|
||||||
open my $FILE, '<', $file
|
open my $FILE, '<', $file
|
||||||
or die "Could not open $file for reading\n";
|
or die "Could not open $file for reading\n";
|
||||||
while (my $line = <$FILE>){
|
while (my $line = <$FILE>){
|
||||||
chomp $line;
|
chomp $line;
|
||||||
|
@ -200,13 +200,13 @@ sub get_config_file_options {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return @defaults;
|
return @defaults;
|
||||||
}
|
}
|
||||||
|
|
||||||
#===== SUBROUTINE ===========================================================
|
#===== SUBROUTINE ===========================================================
|
||||||
# Name : usage()
|
# Name : usage()
|
||||||
# Purpose : print program usage message and exit
|
# Purpose : print program usage message and exit
|
||||||
# Parameters: $msg => string to prepend to the usage message
|
# Parameters: $msg => string to prepend to the usage message
|
||||||
# Returns : n/a
|
# Returns : n/a
|
||||||
# Throws : n/a
|
# Throws : n/a
|
||||||
# Comments : if 'msg' is given, then exit with non-zero status
|
# Comments : if 'msg' is given, then exit with non-zero status
|
||||||
#============================================================================
|
#============================================================================
|
||||||
|
@ -255,7 +255,7 @@ sub version {
|
||||||
}
|
}
|
||||||
|
|
||||||
#===== METHOD ================================================================
|
#===== METHOD ================================================================
|
||||||
# Name : strip_quotes
|
# Name : strip_quotes
|
||||||
# Purpose : remove matching outer quotes from the given string
|
# Purpose : remove matching outer quotes from the given string
|
||||||
# Parameters: none
|
# Parameters: none
|
||||||
# Returns : n/a
|
# Returns : n/a
|
|
@ -2,6 +2,7 @@ dnl Process this file with Autoconf to produce configure dnl
|
||||||
|
|
||||||
AC_INIT([stow], [2.0.2], [bug-stow@gnu.org])
|
AC_INIT([stow], [2.0.2], [bug-stow@gnu.org])
|
||||||
AC_PREREQ([2.61])
|
AC_PREREQ([2.61])
|
||||||
|
AC_CONFIG_AUX_DIR([automake])
|
||||||
AM_INIT_AUTOMAKE([-Wall -Werror])
|
AM_INIT_AUTOMAKE([-Wall -Werror])
|
||||||
AC_PROG_INSTALL
|
AC_PROG_INSTALL
|
||||||
|
|
||||||
|
|
|
@ -146,7 +146,7 @@ The target of a relative symlink is
|
||||||
computed starting from the symlink's own directory. Stow only creates
|
computed starting from the symlink's own directory. Stow only creates
|
||||||
relative symlinks.
|
relative symlinks.
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
The stow directory is assumed to be the value of the 'STOW_DIR' environment
|
The stow directory is assumed to be the value of the 'STOW_DIR' environment
|
||||||
variable or if unset the current directory, and the
|
variable or if unset the current directory, and the
|
||||||
target directory is assumed to be the parent of the current directory
|
target directory is assumed to be the parent of the current directory
|
||||||
(so it is typical to execute
|
(so it is typical to execute
|
|
@ -129,7 +129,7 @@ remove files in independent packages without confusing them with other
|
||||||
files sharing the same file system space. For instance, it is common to
|
files sharing the same file system space. For instance, it is common to
|
||||||
install Perl and Emacs in @file{/usr/local}. When one does so, one
|
install Perl and Emacs in @file{/usr/local}. When one does so, one
|
||||||
winds up with the following files@footnote{As of Perl 4.036 and Emacs
|
winds up with the following files@footnote{As of Perl 4.036 and Emacs
|
||||||
19.22.} in @file{/usr/local/man/man1}:
|
19.22.} in @file{/usr/local/man/man1}:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
a2p.1
|
a2p.1
|
||||||
|
@ -138,7 +138,7 @@ emacs.1
|
||||||
etags.1
|
etags.1
|
||||||
h2ph.1
|
h2ph.1
|
||||||
perl.1
|
perl.1
|
||||||
s2p.1
|
s2p.1
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
|
@ -269,7 +269,7 @@ given perl regular expression. For example, using the options
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
will cause stow to ignore emacs and CVS backup files.
|
will cause stow to ignore emacs and CVS backup files.
|
||||||
|
|
||||||
Note that the regular expression is anchored to the end of the filename,
|
Note that the regular expression is anchored to the end of the filename,
|
||||||
because this is what you will want to do most of the time.
|
because this is what you will want to do most of the time.
|
||||||
|
@ -299,7 +299,7 @@ a Perl regex.
|
||||||
|
|
||||||
Note that the regular expression is anchored to the beginning of the path
|
Note that the regular expression is anchored to the beginning of the path
|
||||||
relative to the target directory, because this is what you will want to do most
|
relative to the target directory, because this is what you will want to do most
|
||||||
of the time.
|
of the time.
|
||||||
|
|
||||||
@item --override='<regex>'
|
@item --override='<regex>'
|
||||||
This (repeatable) option forces any file matching the regular expression to be
|
This (repeatable) option forces any file matching the regular expression to be
|
||||||
|
@ -312,7 +312,7 @@ the following options
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
will permit stow to overwrite links that point to pre-existing man and info
|
will permit stow to overwrite links that point to pre-existing man and info
|
||||||
pages that are owned by stow and would otherwise cause a conflict.
|
pages that are owned by stow and would otherwise cause a conflict.
|
||||||
|
|
||||||
The regular expression is anchored to the beginning of the path relative to
|
The regular expression is anchored to the beginning of the path relative to
|
||||||
the target directory, because this is what you will want to do most of the time.
|
the target directory, because this is what you will want to do most of the time.
|
||||||
|
@ -321,7 +321,7 @@ the target directory, because this is what you will want to do most of the time.
|
||||||
@itemx --no
|
@itemx --no
|
||||||
@itemx --simulate
|
@itemx --simulate
|
||||||
Do not perform any operations that modify the file system; in combination with
|
Do not perform any operations that modify the file system; in combination with
|
||||||
@samp{-v} can be used to merely show what would happen.
|
@samp{-v} can be used to merely show what would happen.
|
||||||
|
|
||||||
@item -v
|
@item -v
|
||||||
@itemx --verbose[=@var{n}]
|
@itemx --verbose[=@var{n}]
|
||||||
|
@ -335,8 +335,8 @@ doing. Verbosity levels are 0, 1, 2, and 3; 0 is the default. Using
|
||||||
Scan the whole target tree when unstowing. By default, only directories
|
Scan the whole target tree when unstowing. By default, only directories
|
||||||
specified in the @dfn{installation image} are scanned during an unstow
|
specified in the @dfn{installation image} are scanned during an unstow
|
||||||
operation. Scanning the whole tree can be prohibitive if your target tree is
|
operation. Scanning the whole tree can be prohibitive if your target tree is
|
||||||
very large. This option restores the legacy behaviour; however, the
|
very large. This option restores the legacy behaviour; however, the
|
||||||
@samp{--badlinks} option may be a better way of ensuring that your
|
@samp{--badlinks} option may be a better way of ensuring that your
|
||||||
installation does not have any dangling symlinks.
|
installation does not have any dangling symlinks.
|
||||||
|
|
||||||
@item -V
|
@item -V
|
||||||
|
@ -377,7 +377,7 @@ The following options are useful for cleaning up your target tree:
|
||||||
@item -b
|
@item -b
|
||||||
@itemx --badlinks
|
@itemx --badlinks
|
||||||
Checks target directory for bogus symbolic links. That is, links that point to
|
Checks target directory for bogus symbolic links. That is, links that point to
|
||||||
non-existent files.
|
non-existent files.
|
||||||
|
|
||||||
@item -a
|
@item -a
|
||||||
@itemx --aliens
|
@itemx --aliens
|
||||||
|
@ -387,7 +387,7 @@ contain a @file{.stow} file.
|
||||||
|
|
||||||
@item -l
|
@item -l
|
||||||
@itemx --list
|
@itemx --list
|
||||||
Will display the target package for every symbolic link in the stow target
|
Will display the target package for every symbolic link in the stow target
|
||||||
directory.
|
directory.
|
||||||
The following options are deprecated:
|
The following options are deprecated:
|
||||||
@end table
|
@end table
|
||||||
|
@ -398,9 +398,9 @@ The following options are deprecated as of Stow version 2:
|
||||||
@itemx --conflicts
|
@itemx --conflicts
|
||||||
Print any conflicts that are encountered. This option
|
Print any conflicts that are encountered. This option
|
||||||
implies @samp{-n}, and is used to search for all conflicts that might
|
implies @samp{-n}, and is used to search for all conflicts that might
|
||||||
arise from an actual Stow operation.
|
arise from an actual Stow operation.
|
||||||
|
|
||||||
This option is deprecated as conflicts are now printed by default and no
|
This option is deprecated as conflicts are now printed by default and no
|
||||||
operations will be performed if any conflicts are detected.
|
operations will be performed if any conflicts are detected.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@ -460,8 +460,8 @@ tree-folding symlink.
|
||||||
@cindex unfolding trees
|
@cindex unfolding trees
|
||||||
The time often comes when a tree-folding symlink has to be undone
|
The time often comes when a tree-folding symlink has to be undone
|
||||||
because another package uses one or more of the folded subdirectories in
|
because another package uses one or more of the folded subdirectories in
|
||||||
its installation image. This operation is called @dfn{splitting open} or
|
its installation image. This operation is called @dfn{splitting open} or
|
||||||
@dfn{unfolding} a folded tree. It involves removing the original symlink from
|
@dfn{unfolding} a folded tree. It involves removing the original symlink from
|
||||||
the target tree, creating a true directory in its place, and then populating the
|
the target tree, creating a true directory in its place, and then populating the
|
||||||
new directory with symlinks to the newly-installed package @emph{and} to
|
new directory with symlinks to the newly-installed package @emph{and} to
|
||||||
the old package that used the old symlink. For example, suppose that
|
the old package that used the old symlink. For example, suppose that
|
||||||
|
@ -561,7 +561,7 @@ un-populatable symlink.
|
||||||
|
|
||||||
For complex packages, scanning the stow and target trees in tandem, and
|
For complex packages, scanning the stow and target trees in tandem, and
|
||||||
deciding whether to make directories or links, split-open or fold directories,
|
deciding whether to make directories or links, split-open or fold directories,
|
||||||
can actually take a long time (a number of seconds). Moreover, an accurate
|
can actually take a long time (a number of seconds). Moreover, an accurate
|
||||||
analysis of potential conflicts requires us to take into account all of
|
analysis of potential conflicts requires us to take into account all of
|
||||||
these operations.
|
these operations.
|
||||||
|
|
||||||
|
@ -585,7 +585,7 @@ stow -D emacs-21.3 -S emacs-21.4a
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
which will replace emacs-21.3 with emacs-21.4a using a single invocation.
|
which will replace emacs-21.3 with emacs-21.4a using a single invocation.
|
||||||
|
|
||||||
This is much faster and cleaner than performing two separate invocations of
|
This is much faster and cleaner than performing two separate invocations of
|
||||||
stow, because redundant folding/unfolding operations can be factored out. In
|
stow, because redundant folding/unfolding operations can be factored out. In
|
||||||
|
@ -593,7 +593,7 @@ addition, all the operations are calculated and merged before being executed
|
||||||
@pxref{Deferred Operation}, so the amount of of time in which GNU Emacs is
|
@pxref{Deferred Operation}, so the amount of of time in which GNU Emacs is
|
||||||
unavailable is minimised.
|
unavailable is minimised.
|
||||||
|
|
||||||
You can mix and match any number of actions, for example,
|
You can mix and match any number of actions, for example,
|
||||||
|
|
||||||
@example
|
@example
|
||||||
stow -S pkg1 pkg2 -D pkg3 pkg4 -S pkg5 -R pkg6
|
stow -S pkg1 pkg2 -D pkg3 pkg4 -S pkg5 -R pkg6
|
||||||
|
@ -631,7 +631,7 @@ symlink, and thus cannot remove it).
|
||||||
@chapter Target Maintenance
|
@chapter Target Maintenance
|
||||||
|
|
||||||
From time to time you will need to clean up your target tree.
|
From time to time you will need to clean up your target tree.
|
||||||
Stow includes three operational modes that performs checks that
|
Stow includes three operational modes that performs checks that
|
||||||
would generally be too expensive to performed during normal stow
|
would generally be too expensive to performed during normal stow
|
||||||
execution.
|
execution.
|
||||||
|
|
||||||
|
@ -1020,8 +1020,8 @@ the output from the command (preferably verbose output, obtained by
|
||||||
adding @samp{--verbose=3} to the Stow command line).
|
adding @samp{--verbose=3} to the Stow command line).
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
If you are really keen, consider developing a minimal test case and creating a
|
If you are really keen, consider developing a minimal test case and
|
||||||
new test. See the @file{t/} for lots of examples.
|
creating a new test. See the @file{t/} for lots of examples.
|
||||||
|
|
||||||
Before reporting a bug, please read the manual carefully, especially
|
Before reporting a bug, please read the manual carefully, especially
|
||||||
@ref{Known Bugs}, to see whether you're encountering
|
@ref{Known Bugs}, to see whether you're encountering
|
|
@ -3,7 +3,7 @@
|
||||||
% Load plain if necessary, i.e., if running under initex.
|
% Load plain if necessary, i.e., if running under initex.
|
||||||
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
|
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
|
||||||
%
|
%
|
||||||
\def\texinfoversion{2006-10-04.17}
|
\def\texinfoversion{2011-11-21.13}
|
||||||
%
|
%
|
||||||
% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
|
% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
|
||||||
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
|
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
|
||||||
|
@ -310,7 +310,7 @@
|
||||||
% We don't want .vr (or whatever) entries like this:
|
% We don't want .vr (or whatever) entries like this:
|
||||||
% \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
|
% \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
|
||||||
% "\acronym" won't work when it's read back in;
|
% "\acronym" won't work when it's read back in;
|
||||||
% it needs to be
|
% it needs to be
|
||||||
% {\code {{\tt \backslashcurfont }acronym}
|
% {\code {{\tt \backslashcurfont }acronym}
|
||||||
\shipout\vbox{%
|
\shipout\vbox{%
|
||||||
% Do this early so pdf references go to the beginning of the page.
|
% Do this early so pdf references go to the beginning of the page.
|
||||||
|
@ -661,7 +661,7 @@
|
||||||
\def\?{?\spacefactor=\endofsentencespacefactor\space}
|
\def\?{?\spacefactor=\endofsentencespacefactor\space}
|
||||||
|
|
||||||
% @frenchspacing on|off says whether to put extra space after punctuation.
|
% @frenchspacing on|off says whether to put extra space after punctuation.
|
||||||
%
|
%
|
||||||
\def\onword{on}
|
\def\onword{on}
|
||||||
\def\offword{off}
|
\def\offword{off}
|
||||||
%
|
%
|
||||||
|
@ -1216,7 +1216,7 @@ where each line of input produces a line of output.}
|
||||||
% that's what we do).
|
% that's what we do).
|
||||||
|
|
||||||
% double active backslashes.
|
% double active backslashes.
|
||||||
%
|
%
|
||||||
{\catcode`\@=0 \catcode`\\=\active
|
{\catcode`\@=0 \catcode`\\=\active
|
||||||
@gdef@activebackslashdouble{%
|
@gdef@activebackslashdouble{%
|
||||||
@catcode`@\=@active
|
@catcode`@\=@active
|
||||||
|
@ -1227,11 +1227,11 @@ where each line of input produces a line of output.}
|
||||||
% not active characters. hyperref.dtx (which has the same problem as
|
% not active characters. hyperref.dtx (which has the same problem as
|
||||||
% us) handles it with this amazing macro to replace tokens. I've
|
% us) handles it with this amazing macro to replace tokens. I've
|
||||||
% tinkered with it a little for texinfo, but it's definitely from there.
|
% tinkered with it a little for texinfo, but it's definitely from there.
|
||||||
%
|
%
|
||||||
% #1 is the tokens to replace.
|
% #1 is the tokens to replace.
|
||||||
% #2 is the replacement.
|
% #2 is the replacement.
|
||||||
% #3 is the control sequence with the string.
|
% #3 is the control sequence with the string.
|
||||||
%
|
%
|
||||||
\def\HyPsdSubst#1#2#3{%
|
\def\HyPsdSubst#1#2#3{%
|
||||||
\def\HyPsdReplace##1#1##2\END{%
|
\def\HyPsdReplace##1#1##2\END{%
|
||||||
##1%
|
##1%
|
||||||
|
@ -1420,7 +1420,7 @@ where each line of input produces a line of output.}
|
||||||
% tried to figure out what each command should do in the context
|
% tried to figure out what each command should do in the context
|
||||||
% of @url. for now, just make @/ a no-op, that's the only one
|
% of @url. for now, just make @/ a no-op, that's the only one
|
||||||
% people have actually reported a problem with.
|
% people have actually reported a problem with.
|
||||||
%
|
%
|
||||||
\normalturnoffactive
|
\normalturnoffactive
|
||||||
\def\@{@}%
|
\def\@{@}%
|
||||||
\let\/=\empty
|
\let\/=\empty
|
||||||
|
@ -1547,7 +1547,7 @@ where each line of input produces a line of output.}
|
||||||
|
|
||||||
% Definitions for a main text size of 11pt. This is the default in
|
% Definitions for a main text size of 11pt. This is the default in
|
||||||
% Texinfo.
|
% Texinfo.
|
||||||
%
|
%
|
||||||
\def\definetextfontsizexi{
|
\def\definetextfontsizexi{
|
||||||
% Text fonts (11.2pt, magstep1).
|
% Text fonts (11.2pt, magstep1).
|
||||||
\def\textnominalsize{11pt}
|
\def\textnominalsize{11pt}
|
||||||
|
@ -1672,7 +1672,7 @@ where each line of input produces a line of output.}
|
||||||
% section, chapter, etc., sizes following suit. This is for the GNU
|
% section, chapter, etc., sizes following suit. This is for the GNU
|
||||||
% Press printing of the Emacs 22 manual. Maybe other manuals in the
|
% Press printing of the Emacs 22 manual. Maybe other manuals in the
|
||||||
% future. Used with @smallbook, which sets the leading to 12pt.
|
% future. Used with @smallbook, which sets the leading to 12pt.
|
||||||
%
|
%
|
||||||
\def\definetextfontsizex{%
|
\def\definetextfontsizex{%
|
||||||
% Text fonts (10pt).
|
% Text fonts (10pt).
|
||||||
\def\textnominalsize{10pt}
|
\def\textnominalsize{10pt}
|
||||||
|
@ -1758,7 +1758,7 @@ where each line of input produces a line of output.}
|
||||||
\setfont\secsf\sfbshape{12}{1000}
|
\setfont\secsf\sfbshape{12}{1000}
|
||||||
\let\secbf\secrm
|
\let\secbf\secrm
|
||||||
\setfont\secsc\scbshape{10}{\magstep1}
|
\setfont\secsc\scbshape{10}{\magstep1}
|
||||||
\font\seci=cmmi12
|
\font\seci=cmmi12
|
||||||
\font\secsy=cmsy10 scaled \magstep1
|
\font\secsy=cmsy10 scaled \magstep1
|
||||||
|
|
||||||
% Subsection fonts (10pt).
|
% Subsection fonts (10pt).
|
||||||
|
@ -1799,7 +1799,7 @@ where each line of input produces a line of output.}
|
||||||
% We provide the user-level command
|
% We provide the user-level command
|
||||||
% @fonttextsize 10
|
% @fonttextsize 10
|
||||||
% (or 11) to redefine the text font size. pt is assumed.
|
% (or 11) to redefine the text font size. pt is assumed.
|
||||||
%
|
%
|
||||||
\def\xword{10}
|
\def\xword{10}
|
||||||
\def\xiword{11}
|
\def\xiword{11}
|
||||||
%
|
%
|
||||||
|
@ -1809,7 +1809,7 @@ where each line of input produces a line of output.}
|
||||||
%
|
%
|
||||||
% Set \globaldefs so that documents can use this inside @tex, since
|
% Set \globaldefs so that documents can use this inside @tex, since
|
||||||
% makeinfo 4.8 does not support it, but we need it nonetheless.
|
% makeinfo 4.8 does not support it, but we need it nonetheless.
|
||||||
%
|
%
|
||||||
\begingroup \globaldefs=1
|
\begingroup \globaldefs=1
|
||||||
\ifx\textsizearg\xword \definetextfontsizex
|
\ifx\textsizearg\xword \definetextfontsizex
|
||||||
\else \ifx\textsizearg\xiword \definetextfontsizexi
|
\else \ifx\textsizearg\xiword \definetextfontsizexi
|
||||||
|
@ -2094,7 +2094,7 @@ where each line of input produces a line of output.}
|
||||||
% each of the four underscores in __typeof__. This is undesirable in
|
% each of the four underscores in __typeof__. This is undesirable in
|
||||||
% some manuals, especially if they don't have long identifiers in
|
% some manuals, especially if they don't have long identifiers in
|
||||||
% general. @allowcodebreaks provides a way to control this.
|
% general. @allowcodebreaks provides a way to control this.
|
||||||
%
|
%
|
||||||
\newif\ifallowcodebreaks \allowcodebreakstrue
|
\newif\ifallowcodebreaks \allowcodebreakstrue
|
||||||
|
|
||||||
\def\keywordtrue{true}
|
\def\keywordtrue{true}
|
||||||
|
@ -2225,7 +2225,7 @@ where each line of input produces a line of output.}
|
||||||
% @acronym for "FBI", "NATO", and the like.
|
% @acronym for "FBI", "NATO", and the like.
|
||||||
% We print this one point size smaller, since it's intended for
|
% We print this one point size smaller, since it's intended for
|
||||||
% all-uppercase.
|
% all-uppercase.
|
||||||
%
|
%
|
||||||
\def\acronym#1{\doacronym #1,,\finish}
|
\def\acronym#1{\doacronym #1,,\finish}
|
||||||
\def\doacronym#1,#2,#3\finish{%
|
\def\doacronym#1,#2,#3\finish{%
|
||||||
{\selectfonts\lsize #1}%
|
{\selectfonts\lsize #1}%
|
||||||
|
@ -2237,7 +2237,7 @@ where each line of input produces a line of output.}
|
||||||
|
|
||||||
% @abbr for "Comput. J." and the like.
|
% @abbr for "Comput. J." and the like.
|
||||||
% No font change, but don't do end-of-sentence spacing.
|
% No font change, but don't do end-of-sentence spacing.
|
||||||
%
|
%
|
||||||
\def\abbr#1{\doabbr #1,,\finish}
|
\def\abbr#1{\doabbr #1,,\finish}
|
||||||
\def\doabbr#1,#2,#3\finish{%
|
\def\doabbr#1,#2,#3\finish{%
|
||||||
{\plainfrenchspacing #1}%
|
{\plainfrenchspacing #1}%
|
||||||
|
@ -2256,43 +2256,43 @@ where each line of input produces a line of output.}
|
||||||
% Theiling, which support regular, slanted, bold and bold slanted (and
|
% Theiling, which support regular, slanted, bold and bold slanted (and
|
||||||
% "outlined" (blackboard board, sort of) versions, which we don't need).
|
% "outlined" (blackboard board, sort of) versions, which we don't need).
|
||||||
% It is available from http://www.ctan.org/tex-archive/fonts/eurosym.
|
% It is available from http://www.ctan.org/tex-archive/fonts/eurosym.
|
||||||
%
|
%
|
||||||
% Although only regular is the truly official Euro symbol, we ignore
|
% Although only regular is the truly official Euro symbol, we ignore
|
||||||
% that. The Euro is designed to be slightly taller than the regular
|
% that. The Euro is designed to be slightly taller than the regular
|
||||||
% font height.
|
% font height.
|
||||||
%
|
%
|
||||||
% feymr - regular
|
% feymr - regular
|
||||||
% feymo - slanted
|
% feymo - slanted
|
||||||
% feybr - bold
|
% feybr - bold
|
||||||
% feybo - bold slanted
|
% feybo - bold slanted
|
||||||
%
|
%
|
||||||
% There is no good (free) typewriter version, to my knowledge.
|
% There is no good (free) typewriter version, to my knowledge.
|
||||||
% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide.
|
% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide.
|
||||||
% Hmm.
|
% Hmm.
|
||||||
%
|
%
|
||||||
% Also doesn't work in math. Do we need to do math with euro symbols?
|
% Also doesn't work in math. Do we need to do math with euro symbols?
|
||||||
% Hope not.
|
% Hope not.
|
||||||
%
|
%
|
||||||
%
|
%
|
||||||
\def\euro{{\eurofont e}}
|
\def\euro{{\eurofont e}}
|
||||||
\def\eurofont{%
|
\def\eurofont{%
|
||||||
% We set the font at each command, rather than predefining it in
|
% We set the font at each command, rather than predefining it in
|
||||||
% \textfonts and the other font-switching commands, so that
|
% \textfonts and the other font-switching commands, so that
|
||||||
% installations which never need the symbol don't have to have the
|
% installations which never need the symbol don't have to have the
|
||||||
% font installed.
|
% font installed.
|
||||||
%
|
%
|
||||||
% There is only one designed size (nominal 10pt), so we always scale
|
% There is only one designed size (nominal 10pt), so we always scale
|
||||||
% that to the current nominal size.
|
% that to the current nominal size.
|
||||||
%
|
%
|
||||||
% By the way, simply using "at 1em" works for cmr10 and the like, but
|
% By the way, simply using "at 1em" works for cmr10 and the like, but
|
||||||
% does not work for cmbx10 and other extended/shrunken fonts.
|
% does not work for cmbx10 and other extended/shrunken fonts.
|
||||||
%
|
%
|
||||||
\def\eurosize{\csname\curfontsize nominalsize\endcsname}%
|
\def\eurosize{\csname\curfontsize nominalsize\endcsname}%
|
||||||
%
|
%
|
||||||
\ifx\curfontstyle\bfstylename
|
\ifx\curfontstyle\bfstylename
|
||||||
% bold:
|
% bold:
|
||||||
\font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize
|
\font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize
|
||||||
\else
|
\else
|
||||||
% regular:
|
% regular:
|
||||||
\font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize
|
\font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize
|
||||||
\fi
|
\fi
|
||||||
|
@ -2316,7 +2316,7 @@ where each line of input produces a line of output.}
|
||||||
% Laurent Siebenmann reports \Orb undefined with:
|
% Laurent Siebenmann reports \Orb undefined with:
|
||||||
% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38
|
% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38
|
||||||
% so we'll define it if necessary.
|
% so we'll define it if necessary.
|
||||||
%
|
%
|
||||||
\ifx\Orb\undefined
|
\ifx\Orb\undefined
|
||||||
\def\Orb{\mathhexbox20D}
|
\def\Orb{\mathhexbox20D}
|
||||||
\fi
|
\fi
|
||||||
|
@ -2632,7 +2632,7 @@ where each line of input produces a line of output.}
|
||||||
% cause the example and the item to crash together. So we use this
|
% cause the example and the item to crash together. So we use this
|
||||||
% bizarre value of 10001 as a signal to \aboveenvbreak to insert
|
% bizarre value of 10001 as a signal to \aboveenvbreak to insert
|
||||||
% \parskip glue after all. Section titles are handled this way also.
|
% \parskip glue after all. Section titles are handled this way also.
|
||||||
%
|
%
|
||||||
\penalty 10001
|
\penalty 10001
|
||||||
\endgroup
|
\endgroup
|
||||||
\itemxneedsnegativevskipfalse
|
\itemxneedsnegativevskipfalse
|
||||||
|
@ -3428,7 +3428,7 @@ where each line of input produces a line of output.}
|
||||||
% processing continues to some further point. On the other hand, it
|
% processing continues to some further point. On the other hand, it
|
||||||
% seems \endinput does not hurt in the printed index arg, since that
|
% seems \endinput does not hurt in the printed index arg, since that
|
||||||
% is still getting written without apparent harm.
|
% is still getting written without apparent harm.
|
||||||
%
|
%
|
||||||
% Sample source (mac-idx3.tex, reported by Graham Percival to
|
% Sample source (mac-idx3.tex, reported by Graham Percival to
|
||||||
% help-texinfo, 22may06):
|
% help-texinfo, 22may06):
|
||||||
% @macro funindex {WORD}
|
% @macro funindex {WORD}
|
||||||
|
@ -3436,12 +3436,12 @@ where each line of input produces a line of output.}
|
||||||
% @end macro
|
% @end macro
|
||||||
% ...
|
% ...
|
||||||
% @funindex commtest
|
% @funindex commtest
|
||||||
%
|
%
|
||||||
% The above is not enough to reproduce the bug, but it gives the flavor.
|
% The above is not enough to reproduce the bug, but it gives the flavor.
|
||||||
%
|
%
|
||||||
% Sample whatsit resulting:
|
% Sample whatsit resulting:
|
||||||
% .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
|
% .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
|
||||||
%
|
%
|
||||||
% So:
|
% So:
|
||||||
\let\endinput = \empty
|
\let\endinput = \empty
|
||||||
%
|
%
|
||||||
|
@ -3677,11 +3677,11 @@ where each line of input produces a line of output.}
|
||||||
% makeinfo does not expand macros in the argument to @deffn, which ends up
|
% makeinfo does not expand macros in the argument to @deffn, which ends up
|
||||||
% writing an index entry, and texindex isn't prepared for an index sort entry
|
% writing an index entry, and texindex isn't prepared for an index sort entry
|
||||||
% that starts with \.
|
% that starts with \.
|
||||||
%
|
%
|
||||||
% Since macro invocations are followed by braces, we can just redefine them
|
% Since macro invocations are followed by braces, we can just redefine them
|
||||||
% to take a single TeX argument. The case of a macro invocation that
|
% to take a single TeX argument. The case of a macro invocation that
|
||||||
% goes to end-of-line is not handled.
|
% goes to end-of-line is not handled.
|
||||||
%
|
%
|
||||||
\macrolist
|
\macrolist
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3807,7 +3807,7 @@ where each line of input produces a line of output.}
|
||||||
% to re-insert the same penalty (values >10000 are used for various
|
% to re-insert the same penalty (values >10000 are used for various
|
||||||
% signals); since we just inserted a non-discardable item, any
|
% signals); since we just inserted a non-discardable item, any
|
||||||
% following glue (such as a \parskip) would be a breakpoint. For example:
|
% following glue (such as a \parskip) would be a breakpoint. For example:
|
||||||
%
|
%
|
||||||
% @deffn deffn-whatever
|
% @deffn deffn-whatever
|
||||||
% @vindex index-whatever
|
% @vindex index-whatever
|
||||||
% Description.
|
% Description.
|
||||||
|
@ -4759,11 +4759,11 @@ where each line of input produces a line of output.}
|
||||||
% glue accumulate. (Not a breakpoint because it's preceded by a
|
% glue accumulate. (Not a breakpoint because it's preceded by a
|
||||||
% discardable item.)
|
% discardable item.)
|
||||||
\vskip-\parskip
|
\vskip-\parskip
|
||||||
%
|
%
|
||||||
% This is purely so the last item on the list is a known \penalty >
|
% This is purely so the last item on the list is a known \penalty >
|
||||||
% 10000. This is so \startdefun can avoid allowing breakpoints after
|
% 10000. This is so \startdefun can avoid allowing breakpoints after
|
||||||
% section headings. Otherwise, it would insert a valid breakpoint between:
|
% section headings. Otherwise, it would insert a valid breakpoint between:
|
||||||
%
|
%
|
||||||
% @section sec-whatever
|
% @section sec-whatever
|
||||||
% @deffn def-whatever
|
% @deffn def-whatever
|
||||||
\penalty 10001
|
\penalty 10001
|
||||||
|
@ -4821,7 +4821,7 @@ where each line of input produces a line of output.}
|
||||||
% These characters do not print properly in the Computer Modern roman
|
% These characters do not print properly in the Computer Modern roman
|
||||||
% fonts, so we must take special care. This is more or less redundant
|
% fonts, so we must take special care. This is more or less redundant
|
||||||
% with the Texinfo input format setup at the end of this file.
|
% with the Texinfo input format setup at the end of this file.
|
||||||
%
|
%
|
||||||
\def\activecatcodes{%
|
\def\activecatcodes{%
|
||||||
\catcode`\"=\active
|
\catcode`\"=\active
|
||||||
\catcode`\$=\active
|
\catcode`\$=\active
|
||||||
|
@ -5416,8 +5416,8 @@ where each line of input produces a line of output.}
|
||||||
% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it
|
% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it
|
||||||
% the default, but it works for pasting with more pdf viewers (at least
|
% the default, but it works for pasting with more pdf viewers (at least
|
||||||
% evince), the lilypond developers report. xpdf does work with the
|
% evince), the lilypond developers report. xpdf does work with the
|
||||||
% regular 0x27.
|
% regular 0x27.
|
||||||
%
|
%
|
||||||
\def\codequoteright{%
|
\def\codequoteright{%
|
||||||
\expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
|
\expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
|
||||||
'%
|
'%
|
||||||
|
@ -5429,7 +5429,7 @@ where each line of input produces a line of output.}
|
||||||
% and a similar option for the left quote char vs. a grave accent.
|
% and a similar option for the left quote char vs. a grave accent.
|
||||||
% Modern fonts display ASCII 0x60 as a grave accent, so some people like
|
% Modern fonts display ASCII 0x60 as a grave accent, so some people like
|
||||||
% the code environments to do likewise.
|
% the code environments to do likewise.
|
||||||
%
|
%
|
||||||
\def\codequoteleft{%
|
\def\codequoteleft{%
|
||||||
\expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
|
\expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
|
||||||
`%
|
`%
|
||||||
|
@ -5572,7 +5572,7 @@ where each line of input produces a line of output.}
|
||||||
% by \defargscommonending, instead of 10000, since the sectioning
|
% by \defargscommonending, instead of 10000, since the sectioning
|
||||||
% commands also insert a nobreak penalty, and we don't want to allow
|
% commands also insert a nobreak penalty, and we don't want to allow
|
||||||
% a break between a section heading and a defun.
|
% a break between a section heading and a defun.
|
||||||
%
|
%
|
||||||
\ifnum\lastpenalty=10002 \penalty2000 \fi
|
\ifnum\lastpenalty=10002 \penalty2000 \fi
|
||||||
%
|
%
|
||||||
% Similarly, after a section heading, do not allow a break.
|
% Similarly, after a section heading, do not allow a break.
|
||||||
|
@ -5950,7 +5950,7 @@ where each line of input produces a line of output.}
|
||||||
% This does \let #1 = #2, with \csnames; that is,
|
% This does \let #1 = #2, with \csnames; that is,
|
||||||
% \let \csname#1\endcsname = \csname#2\endcsname
|
% \let \csname#1\endcsname = \csname#2\endcsname
|
||||||
% (except of course we have to play expansion games).
|
% (except of course we have to play expansion games).
|
||||||
%
|
%
|
||||||
\def\cslet#1#2{%
|
\def\cslet#1#2{%
|
||||||
\expandafter\let
|
\expandafter\let
|
||||||
\csname#1\expandafter\endcsname
|
\csname#1\expandafter\endcsname
|
||||||
|
@ -7420,7 +7420,7 @@ should work if nowhere else does.}
|
||||||
|
|
||||||
% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
|
% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
|
||||||
% the literal character `\'.
|
% the literal character `\'.
|
||||||
%
|
%
|
||||||
@def@normalturnoffactive{%
|
@def@normalturnoffactive{%
|
||||||
@let\=@normalbackslash
|
@let\=@normalbackslash
|
||||||
@let"=@normaldoublequote
|
@let"=@normaldoublequote
|
Loading…
Reference in a new issue