home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / rexxuuxx.zip / UUENCODE.PLI < prev    next >
Text File  |  1997-05-11  |  2KB  |  57 lines

  1.  /*********************************************************************/
  2.  /* This program is freeware, distributed as is, without any warranty */
  3.  /* of its usefulness for any purpose. You may use it freely. You may */
  4.  /* also redistribute it, provided no charge is levied beyond the     */
  5.  /* price of its distribution medium. However, the author retains all */
  6.  /* intellectual property rights.                                     */
  7.  /*                                                                   */
  8.  /*                                                                   */
  9.  /*  Copyright (C) David W. Noon, 1995, 1997                          */
  10.  /*                                                                   */
  11.  /*********************************************************************/
  12.  
  13.  /* Program to UUENCODE encoded messages as per Unix */
  14.  /*                                                  */
  15.  /* Author: David W. Noon                            */
  16.  /*         January 1995                             */
  17.  UUENCODE:
  18.  PROC(PARM) OPTIONS(MAIN NOEXECOPS REENTRANT) REORDER;
  19.  
  20.      DCL  PARM                          CHAR(521) VAR;
  21.  
  22.      %INCLUDE UUXXCODE;
  23.  
  24.      DCL  (i,k,l,p,sp(20),ln(20))       BIN FIXED(31,0) UNSIGNED,
  25.           Parm_ptr                      PTR,
  26.           (LENGTH,SEARCH,SUBSTR,VERIFY) BUILTIN;
  27.  
  28.      i = VERIFY(PARM,' ');
  29.      l = SEARCH(PARM,' ',i+1);
  30.      p = VERIFY(PARM,' ',l+1);
  31.      IF i = 0 | l = 0 | p = 0 THEN
  32.           DISPLAY('Input & output path/filenames must be given.');
  33.      ELSE
  34.      DO;
  35.           DO Max_in = 1 UPTHRU 20 UNTIL(p = 0);
  36.                sp(Max_in) = p;
  37.                k = SEARCH(PARM,' ',p+1);
  38.                IF k = 0 THEN
  39.                     k = LENGTH(PARM) + 1;
  40.                ln(Max_in) = k - p;
  41.                p = VERIFY(PARM,' ',k+1);
  42.           END;
  43.           ALLOCATE UUXX_Encode_struct SET(Parm_ptr);
  44.           Parm_ptr->UUXX_Encode_struct.Output_filename = SUBSTR(PARM,i,l-i);
  45.           DO k = 1 UPTHRU Max_in;
  46.                Parm_ptr->UUXX_Encode_struct.Input_filename(k) =
  47.                          SUBSTR(PARM,sp(k),ln(k));
  48.           END;
  49.           FETCH UUENCODE_FILE TITLE('UUXXCODE/UUENCODE_FILE');
  50.           CALL UUENCODE_FILE(Parm_ptr);
  51.           RELEASE UUENCODE_FILE;
  52.           FREE Parm_ptr->UUXX_Encode_struct;
  53.      END;
  54.  
  55.      RETURN;
  56.  END UUENCODE;
  57.