use skip_prefix to avoid magic numbers
[gitweb.git] / test-line-buffer.c
index 19bf2d4403d03498b5c246367e59265535d2f90c..1e58f0476f3465f9b8b361cc4776abf5c051430b 100644 (file)
@@ -19,7 +19,7 @@ static void handle_command(const char *command, const char *arg, struct line_buf
 {
        switch (*command) {
        case 'b':
-               if (!prefixcmp(command, "binary ")) {
+               if (starts_with(command, "binary ")) {
                        struct strbuf sb = STRBUF_INIT;
                        strbuf_addch(&sb, '>');
                        buffer_read_binary(buf, &sb, strtouint32(arg));
@@ -28,18 +28,12 @@ static void handle_command(const char *command, const char *arg, struct line_buf
                        return;
                }
        case 'c':
-               if (!prefixcmp(command, "copy ")) {
+               if (starts_with(command, "copy ")) {
                        buffer_copy_bytes(buf, strtouint32(arg));
                        return;
                }
-       case 'r':
-               if (!prefixcmp(command, "read ")) {
-                       const char *s = buffer_read_string(buf, strtouint32(arg));
-                       fputs(s, stdout);
-                       return;
-               }
        case 's':
-               if (!prefixcmp(command, "skip ")) {
+               if (starts_with(command, "skip ")) {
                        buffer_skip_bytes(buf, strtouint32(arg));
                        return;
                }
@@ -69,13 +63,18 @@ int main(int argc, char *argv[])
        else if (argc == 2)
                filename = argv[1];
        else
-               usage("test-line-buffer [file] < script");
+               usage("test-line-buffer [file | &fd] < script");
 
        if (buffer_init(&stdin_buf, NULL))
                die_errno("open error");
        if (filename) {
-               if (buffer_init(&file_buf, filename))
-                       die_errno("error opening %s", filename);
+               if (*filename == '&') {
+                       if (buffer_fdinit(&file_buf, strtouint32(filename + 1)))
+                               die_errno("error opening fd %s", filename + 1);
+               } else {
+                       if (buffer_init(&file_buf, filename))
+                               die_errno("error opening %s", filename);
+               }
                input = &file_buf;
        }
 
@@ -88,6 +87,5 @@ int main(int argc, char *argv[])
                die("input error");
        if (ferror(stdout))
                die("output error");
-       buffer_reset(&stdin_buf);
        return 0;
 }