- if (-z $tmpfile)
- {
- unlink $tmpfile;
- error ("\"$cmd\" produced no data.");
- }
-
- if ($return_filename_p) {
- print STDERR "$progname: wrote \"$tmpfile\"\n" if ($verbose);
- print STDOUT "$tmpfile\n";
-
- } elsif ($use_stdout_p) {
- my $ppm = "";
- my $reader = "<$tmpfile";
-
- # horrid kludge for SGIs, since they don't use PPM...
- if ($cmd =~ m/^vidtomem\s/) {
- $reader = "sgitopnm $tmpfile";
- $reader .= " 2>/dev/null" if ($verbose <= 1);
- $reader .= " |";
- }
-
- open (my $in, $reader) || error ("reading $tmpfile: $!");
- print STDERR "$progname: reading $tmpfile\n" if ($verbose > 1);
- local $/ = undef; # read entire file
- $ppm = <$in>;
- close $in;
- unlink $tmpfile;
- print STDOUT $ppm;
-
- } else {
-
- $cmd = "xscreensaver-getimage-file";
- $cmd .= " --verbose" if ($verbose);
- $cmd .= " $tmpfile";
-
- print STDERR "$progname: executing \"$cmd\"\n" if ($verbose);
- system ($cmd);
-