REXX Tips & Tricks, Version 2.80


Inf-HTML [About][Toc][Index] 0.9b (c) 1995 Peter Childs


NNTP client and SMTP client/daemon for use with WARP IAK


Name     NNTP client and SMTP 
         client/daemon for use 
         with WARP IAK 
Version  Version 2.1 10/17/1996
Author   Alex Chapman 
         (see EMail Addresses)
Distrib. Freeware 
Type     REXX CMDs 
Price    -
Source   BBS or 
         ftp://ftp.demon.co.uk/pub/os2/tcpip/wrpdis21.zip
         Name: WRPDIS21.* 

Description from the author: 
"This package contains three rexx utilities that can be used to collect 
news and mail, and/or deliver mail.  They are written in OS/2 Rexx using 
RxSock.  They can be used interchangeably with KA9Q." 
Note that this package also contains a REXX DLL with a routine to handle 
regular-expressions (including the source). Following is the description 
for this routine taken from the source code: 

 
From: rs@mirror.TMC.COM (Rich Salz)
Newsgroups: net.sources
Subject: Small shell-style pattern matcher
Message-ID: <596@mirror.TMC.COM>
Date: 27 Nov 86 00:06:40 GMT

There have been several regular-expression subroutines and one or two
filename-globbing routines in mod.sources.  They handle lots of
complicated patterns.  This small piece of code handles the *?[]\
wildcard characters the way the standard Unix(tm) shells do, with the
addition that "[^.....]" is an inverse character class -- it matches
any character not in the range ".....".  Read the comments for more
info.

For my application, I had first ripped off a copy of the "glob" routine
from within the find(1) source, but that code is bad news:  it recurses
on every character in the pattern.  I'm putting this replacement in the
public domain.  It's small, tight, and iterative.  Compile with -DTEST
to get a test driver.  After you're convinced it works, install in
whatever way is appropriate for you.

I would like to hear of bugs, but am not interested in additions; if I
were, I'd use the code I mentioned above.
*/
/*
**  Do shell-style pattern matching for ?, \, [], and * characters.
**  Might not be robust in face of malformed patterns; e.g., "foo[a-"
**  could cause a segmentation violation.
**
**  Written by Rich $alz, mirror!rs, Wed Nov 26 19:03:17 EST 1986.
*/

/*
 * Modified 6Nov87 by John Gilmore (hoptoad!gnu) to return a "match"
 * if the pattern is immediately followed by a "/", as well as \0.
 * This matches what "tar" does for matching whole subdirectories.
 *
 * The "*" code could be sped up by only recursing one level instead
 * of two for each trial pattern, perhaps, and not recursing at all
 * if a literal match of the next 2 chars would fail.
 */

/* Modified by Anders Klemets to take an array of pointers as an optional
   argument. Each part of the string that matches '*' is returned as a
   null-terminated, malloced string in this array.
 */

  

Inf-HTML End Run - Successful