* FML interpreter. Europagate, 1995
*
* $Log: fmlmem.c,v $
- * Revision 1.9 1995/02/27 09:01:20 adam
+ * Revision 1.10 1995/03/02 08:06:03 adam
+ * Fml function strsub implemented. New test files marc[45].fml.
+ * New test options in fmltest.
+ *
+ * Revision 1.9 1995/02/27 09:01:20 adam
* Regular expression support. Argument passing by name option. New FML
* function strlen.
*
if (fml->debug & 2)
printf ("<<node=%d, atom=%d>>", no_nodes, no_atoms);
}
+
+struct fml_atom *fml_atom_strsub (Fml fml, struct fml_atom *a, int o, int l)
+{
+ static char buf[512];
+ char *cp;
+ struct fml_atom *an;
+ int ol = fml_atom_len (a);
+
+ if (ol >= 510)
+ {
+ cp = malloc (ol + 1);
+ assert (cp);
+ }
+ else
+ cp = buf;
+ fml_atom_str (a, buf);
+ if (o + l < ol)
+ buf[o+l] = '\0';
+ an = fml_atom_alloc (fml, buf+o);
+ if (ol >= 510)
+ free (cp);
+ return an;
+}