]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
* lib/Automake/FileUtils.pm (open_quote): New function.
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sat, 8 Dec 2007 10:23:38 +0000 (11:23 +0100)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sat, 8 Dec 2007 10:23:38 +0000 (11:23 +0100)
(update_file, contents): Use it.

ChangeLog
lib/Automake/FileUtils.pm

index 45c37c624524fb86b9d30fce503ffb7e01999be9..191b99db153b5fe124e0628347d6d003c66a1a50 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2007-12-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
+       * 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  <Ralf.Wildenhues@gmx.de>
index 6a60e227d64ffb3242699511581f61e319c537a5..34c48e32eb3c82fc9f66d515a2f24cd379f47712 100644 (file)
@@ -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<open_quote ($file_name)>
+
+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<find_file ($file_name, @include)>
 
 Return the first path for a C<$file_name> in the C<include>s.
@@ -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;