groff-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[groff] 01/01: gperl: admit file name arguments and handle temporary fil


From: Bernd Warken
Subject: [groff] 01/01: gperl: admit file name arguments and handle temporary file
Date: Wed, 26 Feb 2014 11:57:49 +0000

bwarken pushed a commit to branch master
in repository groff.

commit 053de7cc8ac9dbc46fbf5d4ff83ce27e170738d0
Author: Bernd Warken <address@hidden>
Date:   Wed Feb 26 12:57:34 2014 +0100

    gperl: admit file name arguments and handle temporary file
---
 contrib/gperl/ChangeLog |    5 +++++
 contrib/gperl/gperl.pl  |   28 ++++++++++++++++++++++++----
 2 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/contrib/gperl/ChangeLog b/contrib/gperl/ChangeLog
index f2c9c66..042601f 100644
--- a/contrib/gperl/ChangeLog
+++ b/contrib/gperl/ChangeLog
@@ -1,3 +1,8 @@
+2014-02-27  Bernd Warken  <address@hidden>
+
+       * gperl.pl: Admit file name arguments.  Handle correct temporary
+       file.
+
 2014-02-25  Bernd Warken  <address@hidden>
 
        * gperl.pl, gperl.man, ChangeLog, Makefile.sub: first version 1.0
diff --git a/contrib/gperl/gperl.pl b/contrib/gperl/gperl.pl
index 83c6821..93fbb28 100755
--- a/contrib/gperl/gperl.pl
+++ b/contrib/gperl/gperl.pl
@@ -10,7 +10,7 @@
 
 # Written by Bernd Warken <address@hidden>.
 
-# Last update: 25 Feb 2014
+# Last update: 27 Feb 2014
 my $version = '1.0';
 
 # This file is part of `gperl', which is part of `groff'.
@@ -108,15 +108,35 @@ foreach (@ARGV) {
 }
 
 
+#######################################################################
+# temporary file
+#######################################################################
+
+my $out_file;
+{
+  my $template = 'gperl_' . "$$" . '_XXXX';
+  my $tmpdir;
+  foreach ($ENV{'GROFF_TMPDIR'}, $ENV{'TMPDIR'}, $ENV{'TMP'}, $ENV{'TEMP'},
+          $ENV{'TEMPDIR'}, 'tmp', $ENV{'HOME'},
+          File::Spec->catfile($ENV{'HOME'}, 'tmp')) {
+    if ($_ && -d $_ && -w $_) {
+      eval { $tmpdir = tempdir( $template,
+                               CLEANUP => 1, DIR => "$_" ); };
+      last if $tmpdir;
+    }
+  }
+  $out_file = File::Spec->catfile($tmpdir, $template);
+}
+
+
 ########################################################################
-# stdin
+# input
 #######################################################################
 
 my $perl_mode = 0;
-my $out_file = '/tmp/out';
 my %set_cmd;
 
-foreach (<STDIN>) {
+foreach (<>) {
   chomp;
   if ( /^[.']\s*Perl\s?/ ) { # .Perl ...
     my $res = &perl_request( $_ );



reply via email to

[Prev in Thread] Current Thread [Next in Thread]