Lines Matching refs:line
206 static int emit(char *line, long len, int eol) in emit() argument
208 int l, old = line[len]; in emit()
212 if (eol) line[len++] = '\n'; in emit()
214 l = writeall(TT.fdout, line, len); in emit()
215 if (eol) line[len-1] = old; in emit()
260 char *line = TT.nextline; in sed_line() local
279 if (!line || !len) return; in sed_line()
280 if (line[len-1] == '\n') line[--len] = eol++; in sed_line()
304 if (line && !regexec0(rm, line, len, 0, 0, 0)) miss = 1; in sed_line()
313 if (line && !regexec0(rm, line, len, 0, 0, 0)) command->hit++; in sed_line()
342 if (!line) { in sed_line()
369 free(line); in sed_line()
370 line = 0; in sed_line()
373 free(line); in sed_line()
374 line = 0; in sed_line()
378 str = line; in sed_line()
379 while ((str-line)<len) if (*(str++) == '\n') break; in sed_line()
380 len -= str - line; in sed_line()
381 memmove(line, str, len); in sed_line()
386 free(line); in sed_line()
387 line = 0; in sed_line()
389 line[len] = 0; in sed_line()
394 free(line); in sed_line()
395 line = xstrdup(TT.remember); in sed_line()
398 line = xrealloc(line, len+TT.rememberlen+2); in sed_line()
399 line[len++] = '\n'; in sed_line()
400 memcpy(line+len, TT.remember, TT.rememberlen); in sed_line()
401 line[len += TT.rememberlen] = 0; in sed_line()
404 TT.remember = xstrdup(line); in sed_line()
409 memcpy(TT.remember+TT.rememberlen, line, len); in sed_line()
430 x = stridx("\\\a\b\f\r\t\v", line[i]); in sed_line()
434 } else if (line[i] >= ' ') toybuf[off++] = line[i]; in sed_line()
435 else off += sprintf(toybuf+off, "\\%03o", line[i]); in sed_line()
448 extend_string(&line, TT.nextline, len, -TT.nextlen); in sed_line()
450 TT.nextline = line; in sed_line()
452 line = 0; in sed_line()
458 char *l = (c=='P') ? strchr(line, '\n') : 0; in sed_line()
460 if (emit(line, l ? l-line : len, eol)) break; in sed_line()
469 char *rline = line, *new = command->arg2 + (char *)command, *swap, *rswap; in sed_line()
516 rswap = swap+(rline-line)+match[0].rm_so; in sed_line()
517 memcpy(swap, line, (rline-line)+match[0].rm_so); in sed_line()
547 free(line); in sed_line()
548 line = swap; in sed_line()
556 if (command->sflags & 4) emit(line, len, eol); in sed_line()
577 if (emit(line, len, eol)) in sed_line()
586 TT.remember = line; in sed_line()
587 line = str; in sed_line()
598 j = stridx(from, line[i]); in sed_line()
599 if (j != -1) line[i] = to[j]; in sed_line()
609 if (line && !FLAG(n)) emit(line, len, eol); in sed_line()
626 else emit(line, 0, 0); in sed_line()
630 free(line); in sed_line()
732 char *line, *reg, c, *errstart; in parse_pattern() local
735 line = errstart = pline ? *pline : ""; in parse_pattern()
736 if (len && line[len-1]=='\n') line[--len] = 0; in parse_pattern()
765 while (isspace(*line) || *line == ';') line++; in parse_pattern()
766 if (*line == '#') while (*line && *line != '\n') line++; in parse_pattern()
769 if (!*line) return; in parse_pattern()
774 errstart = line; in parse_pattern()
781 if (*line == ',') line++; in parse_pattern()
784 if (isdigit(*line)) command->lmatch[i] = strtol(line, &line, 0); in parse_pattern()
785 else if (*line == '$') { in parse_pattern()
787 line++; in parse_pattern()
788 } else if (*line == '/' || *line == '\\') { in parse_pattern()
789 char *s = line; in parse_pattern()
791 if (!(s = unescape_delimited_string(&line, 0))) goto error; in parse_pattern()
802 while (isspace(*line)) line++; in parse_pattern()
803 if (!*line) break; in parse_pattern()
805 while (*line == '!') { in parse_pattern()
807 line++; in parse_pattern()
809 while (isspace(*line)) line++; in parse_pattern()
811 c = command->c = *(line++); in parse_pattern()
834 if (!(TT.remember = unescape_delimited_string(&line, &delim))) in parse_pattern()
843 end = line; in parse_pattern()
855 reg = extend_string((void *)&command, line, reg-(char *)command,end-line); in parse_pattern()
856 line = end; in parse_pattern()
858 if (*line == command->hit) command->hit = 0; in parse_pattern()
860 if (!*line) continue; in parse_pattern()
862 line++; in parse_pattern()
872 for (line++; *line; line++) { in parse_pattern()
875 if (isspace(*line) && *line != '\n') continue; in parse_pattern()
877 if (0 <= (l = stridx("igp", *line))) command->sflags |= 1<<l; in parse_pattern()
878 else if (!(command->sflags>>3) && 0<(l = strtol(line, &line, 10))) { in parse_pattern()
880 line--; in parse_pattern()
891 if (*line == 'w') { in parse_pattern()
892 line++; in parse_pattern()
905 while (isspace(*line)) line++; in parse_pattern()
906 if (!*line) goto error; in parse_pattern()
907 for (cc = line; *cc; cc++) if (*cc == '\\' && cc[1] == ';') break; in parse_pattern()
910 fd = xcreate(line, O_WRONLY|O_CREAT|O_TRUNC, 0644); in parse_pattern()
914 command = xrealloc(command, command->w+(cc-line)+6); in parse_pattern()
920 memcpy(reg, line, delim); in parse_pattern()
924 line = cc; in parse_pattern()
925 if (delim) line += 2; in parse_pattern()
930 if (!(s = unescape_delimited_string(&line, &delim))) goto error; in parse_pattern()
936 if (!(s = unescape_delimited_string(&line, &delim))) goto error; in parse_pattern()
944 while (isspace(*line) && *line != '\n') line++; in parse_pattern()
952 if (!(end = strcspn(line, strchr(":btT", c) ? "}; \t\r\n\v\f" : "\n"))) { in parse_pattern()
967 reg = extend_string((void *)&command, line, reg - (char *)command, end); in parse_pattern()
973 if ((*reg++ = *line++)=='\\') { in parse_pattern()
979 if (*line) { in parse_pattern()
980 line++; in parse_pattern()
986 if (!(reg[-1] = unescape(*line))) reg[-1] = *line; in parse_pattern()
987 line++; in parse_pattern()
991 } else line += end; in parse_pattern()
998 error_exit("bad pattern '%s'@%ld (%c)", errstart, line-errstart+1L, *line); in parse_pattern()