home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume4 / regexp4 < prev    next >
Text File  |  1986-11-30  |  2KB  |  47 lines

  1. Subject: regexp(3) improvement
  2. Newsgroups: mod.sources
  3. Approved: jpn@panda.UUCP
  4.  
  5. Mod.sources:  Volume 4, Issue 49
  6. Submitted by: utzoo!henry (Henry Spencer)
  7.  
  8. One flaw of my regexp(3) as distributed is that there is no way to get
  9. a literal `&' or '\n' (n a digit) past regsub().  The V8 manual page
  10. made no mention of an escape convention.  It turns out that this is a
  11. deficiency in the documentation rather than the software.  Accordingly,
  12. the following update should be applied to my regexp(3) to preserve full
  13. compatibility and to add this useful facility.
  14.  
  15. In regsub.c, change the following (line numbers approximate only):
  16.  
  17. 67,69c67,71
  18. <         if (no < 0)    /* Ordinary character. */
  19. <             *dst++ = c;
  20. <         else if (prog->startp[no] != NULL && prog->endp[no] != NULL) {
  21. ---
  22. >         if (no < 0) {    /* Ordinary character. */
  23. >             if (c == '\\' && (*src == '\\' || *src == '&'))
  24. >                 c = *src++;
  25. >             *dst++ = c;
  26. >         } else if (prog->startp[no] != NULL && prog->endp[no] != NULL) {
  27.  
  28. In regexp.3, add the following sentence to the end of the paragraph
  29. describing regsub:
  30.  
  31. To get a literal `&' or `\e\fIn\fR' into \fIdest\fR, prefix it with `\e';
  32. to get a literal `\e' preceding `&' or `\e\fIn\fR', prefix it with
  33. another `\e'.
  34.  
  35. And add the following two lines to the "tests" file:
  36.  
  37. abcd    abcd    y    &-\&-\\&    abcd-&-\abcd
  38. a(bc)d    abcd    y    \1-\\1-\\\1    bc-\1-\bc
  39.  
  40. My thanks to Mike Lutz at Rochester Institute of Technology for noticing
  41. this issue and alerting me to it.
  42.  
  43.                 Henry Spencer @ U of Toronto Zoology
  44.                 {allegra,ihnp4,decvax,pyramid}!utzoo!henry
  45.  
  46.  
  47.