From 0ceb06bf5497507cd772b3018a92c106deecf808 Mon Sep 17 00:00:00 2001 From: Ralf Wildenhues Date: Sat, 8 Dec 2007 11:23:38 +0100 Subject: [PATCH] * lib/Automake/FileUtils.pm (open_quote): New function. (update_file, contents): Use it. --- ChangeLog | 3 +++ lib/Automake/FileUtils.pm | 34 ++++++++++++++++++++++++++++++---- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 45c37c624..191b99db1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2007-12-08 Ralf Wildenhues + * lib/Automake/FileUtils.pm (open_quote): New function. + (update_file, contents): Use it. + Reword the copyright notices to match what's suggested in GPLv3. 2007-12-08 Ralf Wildenhues diff --git a/lib/Automake/FileUtils.pm b/lib/Automake/FileUtils.pm index 6a60e227d..34c48e32e 100644 --- a/lib/Automake/FileUtils.pm +++ b/lib/Automake/FileUtils.pm @@ -1,4 +1,4 @@ -# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -44,12 +44,38 @@ use Automake::ChannelDefs; use vars qw (@ISA @EXPORT); @ISA = qw (Exporter); -@EXPORT = qw (&contents +@EXPORT = qw (&open_quote &contents &find_file &mtime &update_file &up_to_date_p &xsystem &xqx &dir_has_case_matching_file &reset_dir_cache); +=item C + +Quote C<$file_name> for open. + +=cut + +# $FILE_NAME +# open_quote ($FILE_NAME) +# ----------------------- +# If the string $S is a well-behaved file name, simply return it. +# If it starts with white space, prepend `./', if it ends with +# white space, add `\0'. Return the new string. +sub open_quote($) +{ + my ($s) = @_; + if ($s =~ m/^\s/) + { + $s = "./$s"; + } + if ($s =~ m/\s$/) + { + $s = "$s\0"; + } + return $s; +} + =item C Return the first path for a C<$file_name> in the Cs. @@ -139,7 +165,7 @@ sub update_file ($$;$) if ($to eq '-') { - my $in = new IO::File ("$from"); + my $in = new IO::File ("< " . open_quote ($from)); my $out = new IO::File (">-"); while ($_ = $in->getline) { @@ -303,7 +329,7 @@ sub contents ($) my ($file) = @_; verb "reading $file"; local $/; # Turn on slurp-mode. - my $f = new Automake::XFile "< $file"; + my $f = new Automake::XFile "< " . open_quote ($file); my $contents = $f->getline; $f->close; return $contents; -- 2.47.2