home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / awk / awk320sr.zip / SETARGV.DIF < prev    next >
Text File  |  1988-10-02  |  3KB  |  98 lines

  1. ***** setargv.old
  2.                 inc     bx              ; BX = Nb of arguments (at least 1)
  3. Processing      label   near
  4. ***** setargv.new
  5.                 inc     bx              ; BX = Nb of arguments (at least 1)
  6.                 xor     ah, ah          ; setup for processing
  7. Processing      label   near
  8. *****
  9.  
  10. ***** setargv.old
  11.                 call    NextChar
  12.                 ja      NotQuote        ; Not a quote and there are more
  13. InString        label   near
  14.                 jb      BuildArgv       ; Command line is empty now
  15.                 call    NextChar
  16.                 ja      InString        ; Not a quote and there are more
  17. NotQuote        label   near
  18.                 cmp     al, ' '
  19. ***** setargv.new
  20.                 call    NextChar
  21.                 jb      BuildArgv       ; Command line is empty now
  22.                 jz      InString        ; Quote found
  23.                 cmp     al, ' '
  24. *****
  25.  
  26. ***** setargv.old
  27.                 cmp     al, 9
  28.                 jne     Processing      ; \t    is an argument separator
  29. EndArgument     label   near
  30. ***** setargv.new
  31.                 cmp     al, 9
  32.                 je      EndArgument     ; \t    is an argument separator
  33.                 mov     ah,1
  34.                 jmp     Processing      ; process next character
  35. EndArgument     label   near
  36. *****
  37.  
  38. ***** setargv.old
  39.                 xor     al, al          ; Space and TAB are argument separators
  40.                 jmp     short Processing
  41.  
  42. ***** setargv.new
  43.                 xor     al, al          ; Space and TAB are argument separators
  44.                 jmp     Processing      ; process next character
  45. InString        label   near
  46.                 call    NextChar
  47.                 jb      BuildArgv       ; Command line is empty now
  48.                 jnz     InString        ; Not a quote
  49.                 jmp     Processing      ; process next character
  50.  
  51. *****
  52.  
  53. ***** setargv.old
  54. NextChar        PROC    NEAR
  55.                 or      ax, ax
  56.                 jz      NextChar0
  57. ***** setargv.new
  58. NextChar        PROC    NEAR
  59.                 or      ah, ah
  60.                 jz      NextChar0
  61. *****
  62.  
  63. ***** setargv.old
  64. NextChar0       label   near
  65.                 xchg    ah, al
  66.                 xor     al, al
  67.                 stc
  68. ***** setargv.new
  69. NextChar0       label   near
  70.                 mov     ah, al
  71.                 stc
  72. *****
  73.  
  74. ***** setargv.old
  75.                 dec     cx
  76.                 sub     al, '"'
  77.                 jz      NextChar2       ; Quote found --> AL = 0 and ZF ON
  78.                 add     al, '"'
  79.                 cmp     al,'\'
  80. ***** setargv.new
  81.                 dec     cx
  82.                 cmp     al, '"'
  83.                 je      NextChar3       ; Quote found
  84.                 cmp     al,'\'
  85. *****
  86.  
  87. ***** setargv.old
  88.                 ret
  89. NextChar        ENDP
  90. ***** setargv.new
  91.                 ret
  92. NextChar3       label   near
  93.                 xor     ah, ah          ; Set ZF on AH = 0 and AL = '"'
  94.                 ret
  95. NextChar        ENDP
  96. *****
  97.  
  98.