/* Line buffer flags */
enum {
LB_NEWLINE = (1 << 0),
- LB_DELETE = (1 << 1)
+ LB_DELETE = (1 << 1)
};
typedef struct {
enum {
SUB_GLOBAL = (1 << 0),
SUB_PRINT = (1 << 1),
- IN_RANGE = (1 << 2),
+ IN_RANGE = (1 << 2),
};
typedef struct {
}
}
pos += match[0].rm_eo;
+ if (!*pos || !(cmd->flags & SUB_GLOBAL))
+ lbputsn(&out, pos, (lbuf->length - (pos - lbuf->buffer) - 1));
} else {
lbputsn(&out, pos, (lbuf->length - (pos - lbuf->buffer) - 1));
break;
}
prog_free(prog);
-// (void)argc, (void)argv, (void)rdline;
-// LineBuf buf = {0};
-// lbputsn(&buf, "foo", 3);
-// lbputsn(&buf, "bar", 3);
-// printf("%s\n", buf.buffer);
-
return 0;
}