summaryrefslogtreecommitdiff
path: root/sys/src/ape/lib/regexp/rregsub.c
diff options
context:
space:
mode:
authorben <ben@rana>2016-04-27 07:52:41 -0500
committerben <ben@rana>2016-04-27 07:52:41 -0500
commit85824350b5f65053053245d141aaf7d668089d28 (patch)
tree075fe72eef40032c692d31194b2faac58eec5d18 /sys/src/ape/lib/regexp/rregsub.c
parent0f8168038af32828fcdc39575dea0e4de0c01122 (diff)
remove ape regexp library, add utility for awk native port
Diffstat (limited to 'sys/src/ape/lib/regexp/rregsub.c')
-rw-r--r--sys/src/ape/lib/regexp/rregsub.c64
1 files changed, 0 insertions, 64 deletions
diff --git a/sys/src/ape/lib/regexp/rregsub.c b/sys/src/ape/lib/regexp/rregsub.c
deleted file mode 100644
index 5fc3e5960..000000000
--- a/sys/src/ape/lib/regexp/rregsub.c
+++ /dev/null
@@ -1,64 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include "regexp.h"
-
-/* substitute into one string using the matches from the last regexec() */
-extern void
-rregsub(wchar_t *sp, /* source string */
- wchar_t *dp, /* destination string */
- int dlen,
- Resub *mp, /* subexpression elements */
- int ms) /* number of elements pointed to by mp */
-{
- wchar_t *ssp, *ep;
- int i;
-
- ep = dp+(dlen/sizeof(wchar_t))-1;
- while(*sp != '\0'){
- if(*sp == '\\'){
- switch(*++sp){
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- i = *sp-'0';
- if(mp[i].s.rsp != 0 && mp!=0 && ms>i)
- for(ssp = mp[i].s.rsp;
- ssp < mp[i].e.rep;
- ssp++)
- if(dp < ep)
- *dp++ = *ssp;
- break;
- case '\\':
- if(dp < ep)
- *dp++ = '\\';
- break;
- case '\0':
- sp--;
- break;
- default:
- if(dp < ep)
- *dp++ = *sp;
- break;
- }
- }else if(*sp == '&'){
- if(mp[0].s.rsp != 0 && mp!=0 && ms>0)
- if(mp[0].s.rsp != 0)
- for(ssp = mp[0].s.rsp;
- ssp < mp[0].e.rep; ssp++)
- if(dp < ep)
- *dp++ = *ssp;
- }else{
- if(dp < ep)
- *dp++ = *sp;
- }
- sp++;
- }
- *dp = '\0';
-}