home *** CD-ROM | disk | FTP | other *** search
/ H4CK3R 5 / hacker05 / 05_HACK_05.ISO / programacao / freewrap / TCLLIBsampleApp.exe / sample / tcllib / tcllib1.0 / textutil / tabify.tcl < prev    next >
Encoding:
Text File  |  2001-08-17  |  1.1 KB  |  54 lines

  1. namespace eval ::textutil {
  2.  
  3.     namespace eval tabify {
  4.  
  5.     variable StrRepeat [ namespace parent ]::strRepeat
  6.     variable TabLen  8
  7.     variable TabStr  [ $StrRepeat " " $TabLen ]
  8.  
  9.     namespace export tabify untabify
  10.  
  11.     # This will be redefined later. We need it just to let
  12.     # a chance for the next import subcommand to work
  13.     #
  14.     proc tabify   { string { num 8 } } { }
  15.     proc untabify { string { num 8 } } { }
  16.  
  17.     }
  18.  
  19.     namespace import -force tabify::tabify tabify::untabify
  20.     namespace export tabify untabify
  21.     
  22. }
  23.  
  24. ########################################################################
  25.  
  26. proc ::textutil::tabify::tabify { string { num 8 } } {
  27.     
  28.     set str [ MakeTabStr $num ]
  29.     regsub -all -- $str $string "\t" string
  30.     
  31.     return $string
  32. }
  33.  
  34. proc ::textutil::tabify::untabify { string { num 8 } } {
  35.     
  36.     set str [ MakeTabStr $num ]
  37.     regsub -all -- "\t" $string $str string
  38.     
  39.     return $string
  40. }
  41.  
  42. proc ::textutil::tabify::MakeTabStr { num } {
  43.     variable StrRepeat
  44.     variable TabStr
  45.     variable TabLen
  46.  
  47.     if { $TabLen != $num } then {
  48.     set TabLen $num
  49.     set TabStr [ $StrRepeat " " $num ]
  50.     }
  51.  
  52.     return $TabStr
  53. }
  54.