home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / lib / openoffice / program / uri-encode < prev    next >
Encoding:
AWK Script  |  2006-08-01  |  787 b   |  39 lines

  1. #!/usr/bin/awk -f
  2. BEGIN { 
  3.     FS = "\n" # handle full line as single field
  4.     for ( i=1; i<=255; ++i ) {
  5.         hex[ sprintf ("%c", i) "" ] = sprintf ("%%%x", i) ""
  6.     }
  7. }  
  8.     # usually uris are encoded segment by segment, but we make
  9.     # an exception for file uri's here
  10.     if ( $1 ~ /^file:\/\// ) {
  11.         uri = "file://"
  12.         for ( i=8; i<=length($1); ++i ) {
  13.             c = substr($1,i,1)
  14.             # valid RFC 2396 pchar characters + '/'
  15.             if ( c ~ /[a-zA-Z0-9!$'()*+,\-.:=@_~\/]/ ) {
  16.                 uri = uri c
  17.             } else {
  18.                 uri = uri hex[ c ]
  19.             }
  20.         }
  21.         print uri
  22.         exit 0
  23.     } else {
  24.         uri = ""
  25.         for ( i=0; i<=length($1); ++i ) {
  26.             c = substr($1,i,1)
  27.             # valid RFC 2396 pchar characters
  28.             if ( c ~ /[a-zA-Z0-9!$'()*+,\-.:=@_~]/ ) {
  29.                 uri = uri c
  30.             } else {
  31.                 uri = uri hex[ c ]
  32.             }
  33.         }
  34.         print uri
  35.         exit 0
  36.     } 
  37. }
  38.