home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 December (Special) / PCWorld_2005-12_Special_cd.bin / Bezpecnost / lsti / lsti.exe / framework-2.5.exe / vi_increment.al < prev    next >
Text File  |  2005-04-27  |  803b  |  22 lines

  1. # NOTE: Derived from lib/Term/ReadLine/Zoid/ViCommand.pm.
  2. # Changes made here will be lost when autosplit is run again.
  3. # See AutoSplit.pm.
  4. package Term::ReadLine::Zoid::ViCommand;
  5.  
  6. #line 933 "lib/Term/ReadLine/Zoid/ViCommand.pm (autosplit into blib/lib/auto/Term/ReadLine/Zoid/ViCommand/vi_increment.al)"
  7. sub vi_increment {
  8.     my ($self, $key) = @_;
  9.     my ($l, $x) = ( $$self{lines}[ $$self{pos}[1] ], $$self{pos}[0] );
  10.     my $add = ($key eq 'ctrl_A') ? 1 : -1;
  11.  
  12.     return $self->bell unless $l =~ /^(.{0,$x}?)(0x(?i:[a-f\d])+|\d+)(.*?)$/; # FIXME triple check this regexp
  13.     my ($pre, $int, $post) = ($1, $2, $3);
  14.  
  15.     $int = ($int =~ /^0x/) ? sprintf("0x%x", hex($int) + $add) : ($int + $add) ;
  16.  
  17.     $$self{lines}[ $$self{pos}[1] ] = $pre . $int . $post;
  18. }
  19.  
  20. # end of Term::ReadLine::Zoid::ViCommand::vi_increment
  21. 1;
  22.