if (interactive) { puts("Enter macro line by line, terminating it with a null line"); }
if (interactive) puts( "Enter macro line by line, terminating it with a null line.");
macdef(argc, argv)	int argc;	char *argv[];{	char *tmp;	int c;	if (macnum == 16) {		puts("Limit of 16 macros have already been defined");		code = -1;		return;	}	if ((argc < 2 && !another(&argc, &argv, "macro name")) || argc > 2) {		printf("Usage: %s macro_name\n", argv[0]);		code = -1;		return;	}	if (interactive) {		puts("Enter macro line by line, terminating it with a null line");	}	(void)strncpy(macros[macnum].mac_name, argv[1],	    sizeof(macros[macnum].mac_name) - 1);	macros[macnum].mac_name[sizeof(macros[macnum].mac_name) - 1] = '\0';	if (macnum == 0)		macros[macnum].mac_start = macbuf;	else		macros[macnum].mac_start = macros[macnum - 1].mac_end + 1;	tmp = macros[macnum].mac_start;	while (tmp != macbuf+4096) {		if ((c = getchar()) == EOF) {			puts("macdef: end of file encountered");			code = -1;			return;		}		if ((*tmp = c) == '\n') {			if (tmp == macros[macnum].mac_start) {				macros[macnum++].mac_end = tmp;				code = 0;				return;			}			if (*(tmp-1) == '\0') {				macros[macnum++].mac_end = tmp - 1;				code = 0;				return;			}			*tmp = '\0';		}		tmp++;	}	while (1) {		while ((c = getchar()) != '\n' && c != EOF)			/* LOOP */;		if (c == EOF || getchar() == '\n') {			puts("Macro not defined - 4k buffer exceeded");			code = -1;			return;		}	}}