}
 
 static char const * const name_rev_usage[] = {
-       "git-name-rev [options] ( --all | --stdin | <commit>... )",
+       "git name-rev [options] ( --all | --stdin | <commit>... )",
        NULL
 };
 
                        unsigned char sha1[40];
                        const char *name = NULL;
                        char c = *(p+1);
+                       int p_len = p - p_start + 1;
 
                        forty = 0;
 
                        if (!name)
                                continue;
 
-                       if (data->name_only) {
-                               fwrite(p_start, p - p_start + 1 - 40, 1, stdout);
-                               printf(name);
-                       } else {
-                               fwrite(p_start, p - p_start + 1, 1, stdout);
-                               printf(" (%s)", name);
-                       }
+                       if (data->name_only)
+                               printf("%.*s%s", p_len - 40, p_start, name);
+                       else
+                               printf("%.*s (%s)", p_len, p_start, name);
                        p_start = p + 1;
                }
        }
        };
 
        git_config(git_default_config, NULL);
-       argc = parse_options(argc, argv, opts, name_rev_usage, 0);
+       argc = parse_options(argc, argv, prefix, opts, name_rev_usage, 0);
        if (!!all + !!transform_stdin + !!argc > 1) {
                error("Specify either a list, or --all, not both!");
                usage_with_options(name_rev_usage, opts);