home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / rexxface.zip / xbm2icon.cmd < prev    next >
OS/2 REXX Batch file  |  1998-02-01  |  1KB  |  48 lines

  1. /*
  2.  *      xbm2icon.cmd  --- XBM to UN|X ICON converter
  3.  *
  4.  *         Copyright (C) 1997-1998  OKUNISHI Fujikazu
  5.  *
  6.  * Author:  OKUNISHI Fujikazu <fuji0924@mbox.kyoto-inet.or.jp>
  7.  * Created: Jul 30, 1997
  8.  * Revised: Feb  1, 1998
  9.  *
  10.  * how2use:
  11.  *  ex.)
  12.  *   1a. xbm2icon.cmd foo.xbm > foo.icon [RET]
  13.  *   1b. xbm2icon.cmd < foo.xbm > foo.icon [RET]
  14.  *   2.  cat foo.xbm |xbm2icon.cmd [RET]
  15.  */
  16.  
  17.   Parse Arg IN .
  18.   If IN='' Then Do; If Lines()==0 Then Exit 255; IN='STDIN'; End
  19.            Else If Stream(IN,'C','Query Exist') ='' Then Exit 255
  20.  
  21.   OUT='STDOUT'
  22.   EOL=d2c(13)||d2c(10)
  23. /*EOL=d2c(10) */
  24.   str=''  /*initialize*/
  25.  
  26.   Do i=1 By 1 While Lines(IN)
  27.     str.i= Linein(IN)
  28.     If Left(Word(str.i,1),2)<>'0x' Then Iterate
  29.     Do Until Length(str.i) = 0
  30.       Parse Var str.i '0x' strA.i ',' str.i
  31.       strA.i =Substr(strA.i,1,2)
  32.       If Datatype(strA.i,'X') <>1 Then Leave
  33.       strA.i = B2X(Reverse(X2b(strA.i)))
  34.       str = str strA.i
  35.     End
  36.   End
  37.  
  38.   Call CharOut OUT,"/* Format_version=1, Width=48, Height=48, Depth=1, Valid_bits_per_item=16 */" ||EOL
  39.  
  40.   Do n=1 By 1 While Length(str) > 0
  41.     Parse Var str strA.n strB.n str
  42.     str.n = '0x' || strA.n || strB.n || ',' /*||EOL*/
  43.     Call CharOut OUT, str.n || EOL
  44.   End
  45. Exit
  46.  
  47. /* end of procedure */
  48.