Code

use write_str_in_full helper to avoid literal string lengths
authorJim Meyering <jim@meyering.net>
Sat, 12 Sep 2009 08:54:32 +0000 (10:54 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sun, 13 Sep 2009 08:31:10 +0000 (01:31 -0700)
commit2b7ca830c6a6e4f0e1722e24973a026b5b867227
treefdcc68951d8e3653cfd54e02ca1c0f1742f4c8a6
parent511a3fc116799df5e3b2262f8f6e501ca73ba2fe
use write_str_in_full helper to avoid literal string lengths

In 2d14d65 (Use a clearer style to issue commands to remote helpers,
2009-09-03) I happened to notice two changes like this:

- write_in_full(helper->in, "list\n", 5);
+
+ strbuf_addstr(&buf, "list\n");
+ write_in_full(helper->in, buf.buf, buf.len);
+ strbuf_reset(&buf);

IMHO, it would be better to define a new function,

    static inline ssize_t write_str_in_full(int fd, const char *str)
    {
           return write_in_full(fd, str, strlen(str));
    }

and then use it like this:

-       strbuf_addstr(&buf, "list\n");
-       write_in_full(helper->in, buf.buf, buf.len);
-       strbuf_reset(&buf);
+       write_str_in_full(helper->in, "list\n");

Thus not requiring the added allocation, and still avoiding
the maintenance risk of literal string lengths.
These days, compilers are good enough that strlen("literal")
imposes no run-time cost.

Transformed via this:

    perl -pi -e \
        's/write_in_full\((.*?), (".*?"), \d+\)/write_str_in_full($1, $2)/'\
      $(git grep -l 'write_in_full.*"')

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-fetch.c
builtin-reflog.c
cache.h
commit.c
config.c
rerere.c
upload-pack.c