int aliascmd(int argc, char **argv) { char *n, *v; int ret = 0; struct alias *ap; if (argc == 1) { printaliases(); return (0); } while ((n = *++argv) != NULL) { if ((v = strchr(n+1, '=')) == NULL) /* n+1: funny ksh stuff */ if ((ap = lookupalias(n, 0)) == NULL) { outfmt(out2, "alias: %s not found\n", n); ret = 1; } else printalias(ap); else { *v++ = '\0'; setalias(n, v); } } return (ret); }
STATIC int readtoken(void) { int t; int savecheckkwd = checkkwd; struct alias *ap; #if DEBUG int alreadyseen = tokpushback; #endif top: t = xxreadtoken(); if (checkkwd) { /* * eat newlines */ if (checkkwd == 2) { checkkwd = 0; while (t == TNL) { parseheredoc(); t = xxreadtoken(); } } else checkkwd = 0; /* * check for keywords and aliases */ if (t == TWORD && !quoteflag) { const char * const *pp; for (pp = parsekwd; *pp; pp++) { if (**pp == *wordtext && equal(*pp, wordtext)) { lasttoken = t = pp - parsekwd + KWDOFFSET; TRACE(("keyword %s recognized\n", tokname[t])); goto out; } } if (noaliases == 0 && (ap = lookupalias(wordtext, 1)) != NULL) { pushstring(ap->val, strlen(ap->val), ap); checkkwd = savecheckkwd; goto top; } } out: checkkwd = (t == TNOT) ? savecheckkwd : 0; } #if DEBUG if (!alreadyseen) TRACE(("token %s %s\n", tokname[t], t == TWORD ? wordtext : "")); else TRACE(("reread token %s %s\n", tokname[t], t == TWORD ? wordtext : "")); #endif return (t); }
char * get_alias_text(char *name) { struct alias *ap; ap = lookupalias(name, 0); if (ap == NULL) return NULL; return ap->val; }
/* * TODO - sort output */ int aliascmd(int argc, char **argv) { char *n, *v; int ret = 0; struct alias *ap; if (argc == 1) { int i; for (i = 0; i < ATABSIZE; i++) for (ap = atab[i]; ap; ap = ap->next) { if (*ap->name != '\0') { out1fmt("alias %s=", ap->name); print_quoted(ap->val); out1c('\n'); } } return (0); } while ((n = *++argv) != NULL) { if ((v = strchr(n+1, '=')) == NULL) { /* n+1: funny ksh stuff */ if ((ap = lookupalias(n, 0)) == NULL) { outfmt(out2, "alias: %s not found\n", n); ret = 1; } else { out1fmt("alias %s=", n); print_quoted(ap->val); out1c('\n'); } } else { *v++ = '\0'; setalias(n, v); } } return (ret); }
if (check && (ap->flag & ALIASINUSE)) return NULL; return ap; } ap = ap->next; } return NULL; } const char * alias_text(void *dummy __unused, const char *name) { struct alias *ap; ap = lookupalias(name, 0); if (ap == NULL) return NULL; return ap->val; } STATIC int by_name(const void *a, const void *b) { return strcmp( (*(const struct alias * const *)a)->name, (*(const struct alias * const *)b)->name); } STATIC void