- dp = token->token_from = nmem_strdup (zms->nmem, cp = argv[1]);
- while (*cp)
- {
- if (*cp == '$')
- {
- *dp++ = ' ';
- cp++;
- }
- else
- *dp++ = zebra_prim(&cp);
+ token->token_from = 0;
+ if (argc >= 2)
+ {
+ char *cp = argv[1];
+ int *dp = token->token_from = (int *)
+ nmem_malloc (zms->nmem, (1+strlen(cp))*sizeof(int));
+ while (*cp)
+ if (*cp == '$')
+ {
+ *dp++ = ' ';
+ cp++;
+ }
+ else if (*cp == '.')
+ {
+ *dp++ = ZEBRA_REPLACE_ANY;
+ cp++;
+ }
+ else
+ *dp++ = zebra_prim(&cp);
+ *dp = '\0';