aboutsummaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2011-07-26 06:05:42 +0300
committerArnold D. Robbins <arnold@skeeve.com>2011-07-26 06:05:42 +0300
commit452f4efefd5511bc7dbe95b0167b10b403cdcf45 (patch)
treea0c957508537e36bb1449485d2d0881061750174 /main.c
parentfc02808c31a55f1559143ad9d8ad50e2f71a512b (diff)
downloadegawk-452f4efefd5511bc7dbe95b0167b10b403cdcf45.tar.gz
egawk-452f4efefd5511bc7dbe95b0167b10b403cdcf45.tar.bz2
egawk-452f4efefd5511bc7dbe95b0167b10b403cdcf45.zip
Fix gsub and getline pass by reference. Add tests.
Diffstat (limited to 'main.c')
-rw-r--r--main.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/main.c b/main.c
index 120d9ff8..657de326 100644
--- a/main.c
+++ b/main.c
@@ -1127,6 +1127,26 @@ is_std_var(const char *var)
return FALSE;
}
+
+/* get_spec_varname --- return the name of a special variable
+ with the given assign or update routine.
+*/
+
+const char *
+get_spec_varname(Func_ptr fptr)
+{
+ const struct varinit *vp;
+
+ if (! fptr)
+ return NULL;
+ for (vp = varinit; vp->name != NULL; vp++) {
+ if (vp->assign == fptr || vp->update == fptr)
+ return vp->name;
+ }
+ return NULL;
+}
+
+
/* arg_assign --- process a command-line assignment */
int