- }
- break;
- } else if (loc1 < inline) {
- char *last;
-doques:
-
- do {
- last = loc1;
- if (loc1 == loc2)
- loc2++;
- if (!execute(1))
- break;
- } while (loc1 < inline);
- loc1 = last;
- break;
- }
- }
-nope:
- for (;;) {
- if (c == '/') {
- addr++;
- if (addr > dol) {
- if (value(WRAPSCAN) == 0)
-error("No match to BOTTOM|Address search hit BOTTOM without matching pattern");
- addr = zero;
- }
- } else {
- addr--;
- if (addr < zero) {
- if (value(WRAPSCAN) == 0)
-error("No match to TOP|Address search hit TOP without matching pattern");
- addr = dol;
- }
- }
- if (execute(0, addr)) {
- if (inline && c == '?') {
- inline = &linebuf[LBSIZE];
- goto doques;
- }
- break;
- }
- if (addr == dot)
- error("Fail|Pattern not found");
- }
- continue;
-
- case '$':
- addr = dol;
- continue;
-
- case '.':
- addr = dot;
- continue;
-
- case '\'':
- c = markreg(getchar());
- if (c == 0)
- error("Marks are ' and a-z");
- addr = getmark(c);
- if (addr == 0)
- error("Undefined mark@referenced");
- break;
-
- default:
- ungetchar(c);
- if (offset) {
- if (addr == 0)
- addr = dot;
- addr += offset;
- loc1 = 0;
- }
- if (addr == 0) {
- bigmove = 0;
- return (0);
- }
- if (addr != zero)
- notempty();
- addr += lastsign;
- if (addr < zero)
- error("Negative address@- first buffer line is 1");
- if (addr > dol)
- error("Not that many lines@in buffer");
- return (addr);
- }
- }
-}
-
-/*
- * Abbreviations to make code smaller
- * Left over from squashing ex version 1.1 into
- * 11/34's and 11/40's.
- */
-setCNL()
-{
-
- setcount();
- newline();
-}
-
-setNAEOL()
-{
-
- setnoaddr();
- eol();
-}