Fixing path quoting in git-rebase
[gitweb.git] / help.c
diff --git a/help.c b/help.c
index fb731cc9345e197e710aea611e9519f1e04e0ab8..1cd33ece6bcec6f71c6749205c18c0f413034d89 100644 (file)
--- a/help.c
+++ b/help.c
@@ -3,18 +3,17 @@
  *
  * Builtin help-related commands (help, usage, version)
  */
-#include <sys/ioctl.h>
 #include "cache.h"
 #include "builtin.h"
 #include "exec_cmd.h"
 #include "common-cmds.h"
-
+#include <sys/ioctl.h>
 
 /* most GUI terminals set COLUMNS (although some don't export it) */
 static int term_columns(void)
 {
        char *col_string = getenv("COLUMNS");
-       int n_cols = 0;
+       int n_cols;
 
        if (col_string && (n_cols = atoi(col_string)) > 0)
                return n_cols;
@@ -32,12 +31,6 @@ static int term_columns(void)
        return 80;
 }
 
-static void oom(void)
-{
-       fprintf(stderr, "git: out of memory\n");
-       exit(1);
-}
-
 static inline void mput_char(char c, unsigned int num)
 {
        while(num--)
@@ -55,13 +48,9 @@ static void add_cmdname(const char *name, int len)
        struct cmdname *ent;
        if (cmdname_alloc <= cmdname_cnt) {
                cmdname_alloc = cmdname_alloc + 200;
-               cmdname = realloc(cmdname, cmdname_alloc * sizeof(*cmdname));
-               if (!cmdname)
-                       oom();
+               cmdname = xrealloc(cmdname, cmdname_alloc * sizeof(*cmdname));
        }
-       ent = malloc(sizeof(*ent) + len);
-       if (!ent)
-               oom();
+       ent = xmalloc(sizeof(*ent) + len);
        ent->len = len;
        memcpy(ent->name, name, len);
        ent->name[len] = 0;
@@ -131,7 +120,7 @@ static void list_commands(const char *exec_path, const char *pattern)
                struct stat st;
                int entlen;
 
-               if (strncmp(de->d_name, "git-", 4))
+               if (prefixcmp(de->d_name, "git-"))
                        continue;
                strcpy(path+dirlen, de->d_name);
                if (stat(path, &st) || /* stat, not lstat */
@@ -140,7 +129,7 @@ static void list_commands(const char *exec_path, const char *pattern)
                        continue;
 
                entlen = strlen(de->d_name);
-               if (4 < entlen && !strcmp(de->d_name + entlen - 4, ".exe"))
+               if (has_extension(de->d_name, ".exe"))
                        entlen -= 4;
 
                if (longest < entlen)
@@ -169,8 +158,8 @@ static void list_common_cmds_help(void)
 
        puts("The most commonly used git commands are:");
        for (i = 0; i < ARRAY_SIZE(common_cmds); i++) {
-               printf("    %s", common_cmds[i].name);
-               mput_char(' ', longest - strlen(common_cmds[i].name) + 4);
+               printf("   %s   ", common_cmds[i].name);
+               mput_char(' ', longest - strlen(common_cmds[i].name));
                puts(common_cmds[i].help);
        }
        puts("(use 'git help -a' to get a list of all installed git commands)");
@@ -180,11 +169,11 @@ static void show_man_page(const char *git_cmd)
 {
        const char *page;
 
-       if (!strncmp(git_cmd, "git", 3))
+       if (!prefixcmp(git_cmd, "git"))
                page = git_cmd;
        else {
                int page_len = strlen(git_cmd) + 4;
-               char *p = malloc(page_len + 1);
+               char *p = xmalloc(page_len + 1);
                strcpy(p, "git-");
                strcpy(p + 4, git_cmd);
                p[page_len] = 0;
@@ -230,5 +219,3 @@ int cmd_help(int argc, const char **argv, const char *prefix)
 
        return 0;
 }
-
-