/* ARGSUSED */ int compile(int f, int n) { char cprompt[NFILEN], *bufp; struct buffer *bp; struct mgwin *wp; (void)strlcpy(cprompt, compile_last_command, sizeof(cprompt)); if ((bufp = eread("Compile command: ", cprompt, NFILEN, EFDEF | EFNEW | EFCR)) == NULL) return (ABORT); else if (bufp[0] == '\0') return (FALSE); if (savebuffers(f, n) == ABORT) return (ABORT); (void)strlcpy(compile_last_command, bufp, sizeof(compile_last_command)); if ((bp = compile_mode("*compile*", cprompt)) == NULL) return (FALSE); if ((wp = popbuf(bp, WNONE)) == NULL) return (FALSE); curbp = bp; compile_win = curwp = wp; gotoline(FFARG, 0); return (TRUE); }
/* ARGSUSED */ static int gid(int f, int n) { char command[NFILEN]; char cprompt[NFILEN], *bufp; int c; struct buffer *bp; struct mgwin *wp; int i, j, len; /* catch ([^\s(){}]+)[\s(){}]* */ i = curwp->w_doto; /* Skip backwards over delimiters we are currently on */ while (i > 0) { c = lgetc(curwp->w_dotp, i); if (isalnum(c) || c == '_') break; i--; } /* Skip the symbol itself */ for (; i > 0; i--) { c = lgetc(curwp->w_dotp, i - 1); if (!isalnum(c) && c != '_') break; } /* Fill the symbol in cprompt[] */ for (j = 0; j < sizeof(cprompt) - 1 && i < llength(curwp->w_dotp); j++, i++) { c = lgetc(curwp->w_dotp, i); if (!isalnum(c) && c != '_') break; cprompt[j] = c; } cprompt[j] = '\0'; if ((bufp = eread("Run gid (with args): ", cprompt, NFILEN, (j ? EFDEF : 0) | EFNEW | EFCR)) == NULL) return (ABORT); else if (bufp[0] == '\0') return (FALSE); len = snprintf(command, sizeof(command), "gid %s", cprompt); if (len < 0 || len >= sizeof(command)) return (FALSE); if ((bp = compile_mode("*gid*", command)) == NULL) return (FALSE); if ((wp = popbuf(bp, WNONE)) == NULL) return (FALSE); curbp = bp; compile_win = curwp = wp; return (TRUE); }
/* ARGSUSED */ static int xlint(int f, int n) { char cprompt[NFILEN], *bufp; struct buffer *bp; struct mgwin *wp; (void)strlcpy(cprompt, "make lint ", sizeof(cprompt)); if ((bufp = eread("Run lint: ", cprompt, NFILEN, EFDEF | EFNEW | EFCR)) == NULL) return (ABORT); else if (bufp[0] == '\0') return (FALSE); if ((bp = compile_mode("*lint*", cprompt)) == NULL) return (FALSE); if ((wp = popbuf(bp, WNONE)) == NULL) return (FALSE); curbp = bp; compile_win = curwp = wp; return (TRUE); }
/* ARGSUSED */ static int grep(int f, int n) { char cprompt[NFILEN], *bufp; struct buffer *bp; struct mgwin *wp; (void)strlcpy(cprompt, "grep -n ", sizeof(cprompt)); if ((bufp = eread("Run grep: ", cprompt, NFILEN, EFDEF | EFNEW | EFCR)) == NULL) return (ABORT); else if (bufp[0] == '\0') return (FALSE); if (strlcat(cprompt, " /dev/null", sizeof(cprompt)) >= sizeof(cprompt)) return (FALSE); if ((bp = compile_mode("*grep*", cprompt)) == NULL) return (FALSE); if ((wp = popbuf(bp, WNONE)) == NULL) return (FALSE); curbp = bp; compile_win = curwp = wp; return (TRUE); }