Basant Kukreja wrote:
+static void sed_write(sed_eval_t *eval, char *buf, int sz)
+{
+    if (eval->curoutbuf + sz >= eval->outbend) {
+        // flush current buffer
+        sed_flush_output_buffer(eval, buf, sz);
+    }
+    else {
+        memcpy(eval->curoutbuf, buf, sz);
+        eval->curoutbuf += sz;
+    }

sed is an inherently line-oriented editor. It seems wrong to buffer multiple lines within libsed. Consider, for example, how adding such multi-line buffering to libsed would complicate implementing an interactive sed like sed(1).

Instead, it seems like such buffering should occur in mod_sed. mod_sed is what couples libsed to the bucket brigade, and mod_sed knows that such such buffering is appropriate.

Reply via email to