Changeset 3664 for lang/perl/plum

Show
Ignore:
Timestamp:
12/28/07 11:16:03 (5 years ago)
Author:
knu
Message:

lang/perl/plum: Introduce &'abspath() and handle relative paths properly.

Location:
lang/perl/plum
Files:
11 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/plum/module/auto/package.plm

    r3394 r3664  
    88sub initialize { 
    99  $BUFFER = 65536; 
    10   $DIRECTORY = '.'; 
    1110  $CLIENTINFO = 'DCC'; 
    1211  $TIMEOUT = 3600; 
     
    443442      $sno = &'socket('S'); 
    444443      if (&'connect($sno, $params[2], $params[3])) { 
    445         $dir = &'expand(&'property($userno, 'directory') || $DIRECTORY); 
     444        $dir = &'abspath($userno, &'property($userno, 'directory')); 
    446445        $name = "$dir/" . &newfile($dir, $params[1]); 
    447446        $dcclist[$serverno] = &'remove($dcclist[$serverno], $dcc); 
  • lang/perl/plum/module/channel/join/connect.plm

    r3394 r3664  
    77 
    88sub initialize { 
    9   $DIRECTORY = '.'; 
    109} 
    1110 
     
    1817    $keylist = ''; 
    1918    local(%tbl, $_, $dir, $file); 
    20     $dir = &'expand(&'property($userno, 'directory') || $DIRECTORY); 
     19    $dir = &'abspath($userno, &'property($userno, 'directory')); 
    2120    foreach $i (&'property($userno, 'keyfile')) { 
    2221      $file = "$dir/$i"; 
     
    109108        shift(@modes); 
    110109      } elsif ($char eq 'k') { 
    111         local($userno, $key, $dir); 
     110        local($userno, $key); 
    112111        $userno = $'userno[$serverno]; 
    113112        if ($flag eq '+') { 
     
    119118        } 
    120119        local($file) = &'property($userno, 'keyfile'); 
    121         $dir = &'expand(&'property($userno, 'directory') || $DIRECTORY); 
    122         $file = "$dir/$file"; 
     120        $file = &'abspath($userno, &'property($userno, 'directory'), $file); 
    123121        if ($file) { 
    124122          if (open(H, "+< $file")) { 
  • lang/perl/plum/module/ctcp/dcc/get.plm

    r3394 r3664  
    88sub initialize { 
    99  $BUFFER = 65536; 
    10   $DIRECTORY = '.'; 
    1110  $CLIENTINFO = 'DCC'; 
    1211  $TIMEOUT = 3600; 
     
    7675  @params = split(/\s+/, $msg); 
    7776  if ("\L$params[0]\E" eq 'send') { 
    78     $dir = &'expand(&'property($userno, 'directory') || $DIRECTORY); 
     77    $dir = &'abspath($userno, &'property($userno, 'directory')); 
    7978    $name = "$dir/" . &newfile($dir, $params[1]); 
    8079    if (open(FILE, ">$name")) { 
  • lang/perl/plum/module/log/channel.plm

    r3394 r3664  
    77 
    88sub initialize { 
    9   $DIRECTORY = '.'; 
    109  $HEADER = '%H:%M'; 
    1110  $COMMAND = &'list('privmsg', 'join', 'part', 'kick' ,'invite', 'mode', 'nick', 'quit', 'topic'); 
     
    299298  $userno = $'userno[$fileno]; 
    300299  ($name, $code) = &filename($file); 
    301   if ($name !~ /^[\\\/]/) { 
    302     $dir = &'expand(&'property($userno, 'directory') || $DIRECTORY); 
    303     $name = "$dir/$name"; 
    304   } 
     300  $name = &'abspath($userno, &'property($userno, 'directory'), $name); 
    305301  $name = &'date($name); 
    306302  $header = &'property($userno, 'header'); 
  • lang/perl/plum/module/log/client.plm

    r3394 r3664  
    77 
    88sub initialize { 
    9   $DIRECTORY = '.'; 
    109  $FILE = 'client.log'; 
    1110  $HEADER = '%H:%M'; 
     
    2322  $file = &'property($userno, 'file') || $FILE; 
    2423  ($name, $code) = &filename($file); 
    25   if ($name !~ /^[\\\/]/) { 
    26     $dir = &'expand(&'property($userno, 'directory') || $DIRECTORY); 
    27     $name = "$dir/$name"; 
    28   } 
     24  $name = &'abspath($userno, &'property($userno, 'directory'), $name); 
    2925  $name = &'date($name); 
    3026  $header = &'property($userno, 'header'); 
  • lang/perl/plum/module/log/daily.plm

    r3394 r3664  
    77 
    88sub initialize { 
    9   $DIRECTORY = '.'; 
    109  $FILE = '%m%d.log'; 
    1110  $HEADER = '%H:%M'; 
     
    207206  $file = &'property($userno, 'file') || $FILE; 
    208207  ($name, $code) = &filename($file); 
    209   if ($name !~ /^[\\\/]/) { 
    210     $dir = &'expand(&'property($userno, 'directory') || $DIRECTORY); 
    211     $name = "$dir/$name"; 
    212   } 
     208  $name = &'abspath($userno, &'property($userno, 'directory'), $name); 
    213209  $name = &'date($name); 
    214210  $header = &'property($userno, 'header'); 
  • lang/perl/plum/module/log/mail.plm

    r3394 r3664  
    77 
    88sub initialize { 
    9   $DIRECTORY = '.'; 
    109  $HOST = 'localhost'; 
    1110  $PROTO = getprotobyname('tcp'); 
     
    2726      $code = ''; 
    2827    } 
    29     $name = &'expand($name); 
    30     if ($name !~ /^[\\\/]/) { 
    31       $dir = &'expand(&'property($userno, 'directory') || $DIRECTORY); 
    32       $name = "$dir/$name"; 
    33     } 
     28    $name = &'abspath($userno, &'property($userno, 'directory'), $name); 
    3429    $new = &'date($name); 
    3530    if ($filename{$name} && $new ne $filename{$name}) { 
  • lang/perl/plum/module/log/server.plm

    r3394 r3664  
    77 
    88sub initialize { 
    9   $DIRECTORY = '.'; 
    109  $FILE = 'server.log'; 
    1110  $HEADER = '%H:%M'; 
     
    2322  $file = &'property($userno, 'file') || $FILE; 
    2423  ($name, $code) = &filename($file); 
    25   if ($name !~ /^[\\\/]/) { 
    26     $dir = &'expand(&'property($userno, 'directory') || $DIRECTORY); 
    27     $name = "$dir/$name"; 
    28   } 
     24  $name = &'abspath($userno, &'property($userno, 'directory'), $name); 
    2925  $name = &'date($name); 
    3026  $header = &'property($userno, 'header'); 
  • lang/perl/plum/module/log/topic.plm

    r3394 r3664  
    44 
    55sub initialize { 
    6   $DIRECTORY = '.'; 
    76} 
    87 
     
    6564  $userno = $'userno[$serverno]; 
    6665  ($name, $code) = &filename($file); 
    67   if ($name !~ /^[\\\/]/) { 
    68     $dir = &'expand(&'property($userno, 'directory') || $DIRECTORY); 
    69     $name = "$dir/$name"; 
    70   } 
     66  $name = &'abspath($userno, &'property($userno, 'directory'), $name); 
    7167  $topic = &'utf8_code($topic, $code) if $code; 
    7268  $mode = &'property($userno, 'mode') if !-e $name; 
  • lang/perl/plum/module/log/userslist.plm

    r3394 r3664  
    44 
    55sub initialize { 
    6   $DIRECTORY = '.'; 
    76} 
    87 
     
    8685  local($userno, $dir, $name, $mode, $nick); 
    8786  $userno = $'userno[$serverno]; 
    88   $name = $file; 
    89   if ($file !~ /^[\\\/]/) { 
    90     $dir = &'expand(&'property($userno, 'directory') || $DIRECTORY); 
    91     $name = "$dir/$file"; 
    92   } 
     87  $name = &'abspath($userno, &'property($userno, 'directory'), $file); 
    9388  $mode = &'property($userno, 'mode') if !-e $name; 
    9489  if (open(FILE, ">$name")) { 
  • lang/perl/plum/plum

    r3394 r3664  
    251251        } 
    252252      } elsif ($line =~ /^\.\s+(.+)/) { 
    253         $arg = $1; 
    254         $dir = &'expand(&'property($userno, 'directory') || '.'); 
    255         $conf = "$dir/$arg"; 
     253        $conf = &'abspath($userno, $1); 
    256254        &'merge($userno, $conf) if -f $conf; 
    257255      } elsif ((($var, $arg) = split(/\s*\:\s*/, $line, 2)) == 2) { 
     
    318316    } 
    319317  } 
     318} 
     319 
     320sub 'abspath { 
     321  local($userno, @paths) = @_; 
     322 
     323  my $dir = &'property($userno, 'directory'); 
     324  unshift(@paths, $dir) if $dir ne ''; 
     325 
     326  use Cwd; 
     327  unshift(@paths, cwd); 
     328 
     329  my $abspath; 
     330 
     331  while (@paths) { 
     332      my $path = pop(@paths); 
     333 
     334      next if $path eq ''; 
     335 
     336      if ($abspath eq '') { 
     337          $abspath = &'expand($path); 
     338      } else { 
     339          $abspath = &'expand($path) . '/' . $abspath; 
     340      } 
     341 
     342      return $abspath if $abspath =~ /^\//; 
     343  } 
     344 
     345  # NOTREACHED 
     346  return '.'; 
    320347} 
    321348