home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / rexxface.zip / xface.cmd.in < prev   
Text File  |  1998-02-01  |  2KB  |  89 lines

  1. /*
  2.  *     xface.cmd -- XBM generator from raw message file
  3.  *
  4.  *         Copyright (C) 1997-1998  OKUNISHI Fujikazu
  5.  *
  6.  * Author:  OKUNISHI Fujikazu <fuji0924@mbox.kyoto-inet.or.jp>
  7.  * Created: Jul 31, 1997
  8.  * Revised: Feb  1, 1998
  9.  *
  10.  * how2use:
  11.  *  ex.)
  12.  *   1.  xface.cmd e:\foo\message [RET]
  13.  *   2.  xface.cmd +x-face/mail [RET]
  14.  *   3a. xface.cmd =some/news/group/article [RET]
  15.  *   3b. xface.cmd =some.news.group/article [RET]
  16.  *   4.  xface.cmd ~/foo/file > foo.xbm [RET]
  17.  *
  18.  */
  19.  
  20. /* ----------------------------------------------------------------- *
  21.  * site-dependencies (relative path from $HOME)
  22.  * ----------------------------------------------------------------- */
  23. MAILDIR  = '@MAIL@'   /* Mail directory */
  24. NEWSSPOOL= '@NEWS@'   /* saved News spool */
  25.  
  26. /* ----------------------------------------------------------------- */
  27.   Trace Off
  28.   '@echo off'
  29.  
  30.   If RxFuncQuery('SysLoadFuncs') Then Do
  31.     Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  32.     Call SysLoadFuncs
  33.   End
  34.  
  35.   Parse Arg file .
  36.  
  37.   UNCOMPFACE= SysSearchPath('PATH','uncompface.exe')
  38.   IKON2XBM  = SysSearchPath('PATH','icon2xbm.cmd')
  39.   If UNCOMPFACE='' | IKON2XBM ='' Then Exit 255
  40.  
  41.   env ='OS2ENVIRONMENT'
  42.   HOME=Value('HOME',,env)
  43.   TMP=Value('TMP',,env)
  44.     If TMP='' Then TMP=Value('TEMP',,env)
  45.     If TMP='' Then TMP='.'
  46.   XFaceTemp= Translate(TMP,'\','/') || '\' || SysTempFileName(')xface(.???')
  47.  
  48.   file = Translate(file,'\','/')
  49.   Select
  50.     When file=''           Then Do
  51.       If Lines()==0 Then Exit 255
  52.       src='STDIN'
  53.     End
  54.     When Left(file,1)='~' Then src= HOME||Delstr(file,1,1)
  55.     When Left(file,1)='+' Then src= HOME'/'MAIL'/'Delstr(file,1,1)
  56.     When Left(file,1)='=' Then Do   /* fj.editor.mule ==> fj/editor/mule */
  57.       src.rev=Reverse(file)
  58.       Parse Var src.rev fn.rev '\' dir.rev
  59.       src=Translate(Delstr(Reverse(dir.rev),1,1),'\','.') ||'\'|| Reverse(fn.rev)
  60.       src= HOME'\'NEWSSPOOL'\'src
  61.     End
  62.     Otherwise NOP
  63.   End
  64.  
  65.   If src<>'STDIN' & Stream(src,'C','Query Exist') ='' Then Exit
  66.  
  67.   Do While Lines(src)
  68.     Rec = Translate(Linein(src),'',D2C(9))
  69.     If Translate(Left(Rec,7))='X-FACE:' Then Signal CUT_FACE
  70.   End
  71.   Exit /* no X-Face: */
  72.  
  73. CUT_FACE:
  74.   Do i=1 by 1 While Lines(src)
  75.     Rec.i = Linein(src)
  76.     If Left(Rec.i,1) <> '20'x Then Leave
  77.     Rec= Rec || Rec.i
  78.   End
  79.  
  80.   Parse Var Rec 'X-Face:' Rec
  81.  
  82.   Call LineOut XFaceTemp,Rec; Call LineOut XFaceTemp /*close*/
  83.   UNCOMPFACE XFaceTemp '|' IKON2XBM
  84.  
  85.   rc=SysFileDelete(XFaceTemp)
  86. Exit
  87.  
  88. /* end of procedure */
  89.