git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 00/41] Add and use error_errno() and warning_errno()

From
Eric Sunshine <sunshine@sunshineco.com>
Date
May 3, 2016, 16:55 UTC
Message-ID
<CAPig+cRb6w944VrniU-Wq9ET5kvPtYXyTqkUDrNzKS=JY-Qg-g@mail.gmail.com>
In-Reply-To
<1462277054-5943-1-git-send-email-pclouds@gmail.com>
On Tue, May 3, 2016 at 8:03 AM, Nguyễn Thái Ngọc Duy <pclouds@gmail.com> wrote:
Show 10 quoted lines
> Changes are in
>
>   [01/41] usage.c: move format processing out of die_errno()
>   [02/41] usage.c: add warning_errno() and error_errno()
>   [12/41] builtin/update-index.c: prefer "err" to "errno" in process_lstat_error
>   [17/41] compat/win32/syslog.c: use warning_errno()
>   [27/41] grep.c: use error_errno()
>
> 12/41 is basically a revert with s/strerror(errno)/strerror(err)/.
> Interdiff from v1
The interdiff looks quite sensible. Thanks.
Show 120 quoted lines
> -- 8< --
> diff --git a/builtin/update-index.c b/builtin/update-index.c
> index 0c539ed..b8b8522 100644
> --- a/builtin/update-index.c
> +++ b/builtin/update-index.c
> @@ -251,11 +251,11 @@ static int remove_one_path(const char *path)
>   *    succeeds.
>   *  - permission error. That's never ok.
>   */
> -static int process_lstat_error(const char *path)
> +static int process_lstat_error(const char *path, int err)
>  {
> -       if (errno == ENOENT || errno == ENOTDIR)
> +       if (err == ENOENT || err == ENOTDIR)
>                 return remove_one_path(path);
> -       return error_errno("lstat(\"%s\")", path);
> +       return error("lstat(\"%s\"): %s", path, strerror(err));
>  }
>
>  static int add_one_path(const struct cache_entry *old, const char *path, int len, struct stat *st)
> @@ -382,7 +382,7 @@ static int process_path(const char *path)
>          * what to do about the pathname!
>          */
>         if (lstat(path, &st) < 0)
> -               return process_lstat_error(path);
> +               return process_lstat_error(path, errno);
>
>         if (S_ISDIR(st.st_mode))
>                 return process_directory(path, len, &st);
> diff --git a/compat/win32/syslog.c b/compat/win32/syslog.c
> index 1c2ae18..6c7c9b6 100644
> --- a/compat/win32/syslog.c
> +++ b/compat/win32/syslog.c
> @@ -28,7 +28,7 @@ void syslog(int priority, const char *fmt, ...)
>         va_end(ap);
>
>         if (str_len < 0) {
> -               warning_errno("vsnprintf failed:");
> +               warning_errno("vsnprintf failed");
>                 return;
>         }
>
> diff --git a/grep.c b/grep.c
> index 87c1890..4f3779a 100644
> --- a/grep.c
> +++ b/grep.c
> @@ -1732,7 +1732,7 @@ static int grep_source_load_file(struct grep_source *gs)
>         if (lstat(filename, &st) < 0) {
>         err_ret:
>                 if (errno != ENOENT)
> -                       error_errno(_("'%s'"), filename);
> +                       error_errno("'%s'", filename);
>                 return -1;
>         }
>         if (!S_ISREG(st.st_mode))
> diff --git a/usage.c b/usage.c
> index af1b7d1..1dad03f 100644
> --- a/usage.c
> +++ b/usage.c
> @@ -109,9 +109,8 @@ void NORETURN die(const char *err, ...)
>         va_end(params);
>  }
>
> -static const char *fmt_with_err(const char *fmt)
> +static const char *fmt_with_err(char *buf, int n, const char *fmt)
>  {
> -       static char fmt_with_err[1024];
>         char str_error[256], *err;
>         int i, j;
>
> @@ -129,12 +128,13 @@ static const char *fmt_with_err(const char *fmt)
>                 }
>         }
>         str_error[j] = 0;
> -       snprintf(fmt_with_err, sizeof(fmt_with_err), "%s: %s", fmt, str_error);
> -       return fmt_with_err;
> +       snprintf(buf, n, "%s: %s", fmt, str_error);
> +       return buf;
>  }
>
>  void NORETURN die_errno(const char *fmt, ...)
>  {
> +       char buf[1024];
>         va_list params;
>
>         if (die_is_recursing()) {
> @@ -144,16 +144,17 @@ void NORETURN die_errno(const char *fmt, ...)
>         }
>
>         va_start(params, fmt);
> -       die_routine(fmt_with_err(fmt), params);
> +       die_routine(fmt_with_err(buf, sizeof(buf), fmt), params);
>         va_end(params);
>  }
>
>  int error_errno(const char *fmt, ...)
>  {
> +       char buf[1024];
>         va_list params;
>
>         va_start(params, fmt);
> -       error_routine(fmt_with_err(fmt), params);
> +       error_routine(fmt_with_err(buf, sizeof(buf), fmt), params);
>         va_end(params);
>         return -1;
>  }
> @@ -171,10 +172,11 @@ int error(const char *err, ...)
>
>  void warning_errno(const char *warn, ...)
>  {
> +       char buf[1024];
>         va_list params;
>
>         va_start(params, warn);
> -       warn_routine(fmt_with_err(warn), params);
> +       warn_routine(fmt_with_err(buf, sizeof(buf), warn), params);
>         va_end(params);
>  }
>
> -- 8< --
Previous: Nguyễn Thái Ngọc DuyNext: Junio C Hamano
Message 102 of 145 in “Add and use error_errno() and warning_errno()”
  1. 00/41 Add and use error_errno() and warning_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  2. 01/41 usage.c: move format processing out of die_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  3. Eric SunshineMay 1, 2016
  4. Junio C HamanoMay 2, 2016
  5. Jeff KingMay 3, 2016
  6. Duy NguyenMay 3, 2016
  7. Jeff KingMay 3, 2016
  8. 02/41 usage.c: add warning_errno() and error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  9. 03/41 bisect.c: use die_errno() and warning_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  10. 04/41 builtin/am.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  11. 05/41 builtin/branch.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  12. 06/41 builtin/fetch.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  13. 07/41 builtin/help.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  14. 08/41 builtin/mailsplit.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  15. Eric SunshineMay 1, 2016
  16. 09/41 builtin/merge-file.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  17. 10/41 builtin/pack-objects.c: use die_errno() and warning_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  18. 11/41 builtin/rm.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  19. 12/41 builtin/update-index.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  20. Eric SunshineMay 1, 2016
  21. Duy NguyenMay 2, 2016
  22. 13/41 builtin/upload-archive.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  23. 14/41 builtin/worktree.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  24. 15/41 check-racy.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  25. 16/41 combine-diff.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  26. 17/41 compat/win32/syslog.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  27. Eric SunshineMay 1, 2016
  28. 18/41 config.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  29. 19/41 connected.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  30. 20/41 copy.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  31. 21/41 credential-cache--daemon.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  32. 22/41 diff-no-index.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  33. 23/41 editor.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  34. 24/41 entry.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  35. 25/41 fast-import.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  36. 26/41 gpg-interface.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  37. 27/41 grep.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  38. Eric SunshineMay 1, 2016
  39. 28/41 http.c: use error_errno() and warning_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  40. 29/41 ident.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  41. 30/41 mailmap.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  42. 31/41 reachable.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  43. 32/41 rerere.c: use error_errno() and warning_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  44. 33/41 run-command.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  45. 34/41 sequencer.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  46. 35/41 server-info.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  47. 36/41 sha1_file.c: use {error,die,warning}_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  48. 37/41 transport-helper.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  49. 38/41 unpack-trees.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  50. 39/41 upload-pack.c: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  51. 40/41 vcs-svn: use error_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  52. 41/41 wrapper.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 1, 2016
  53. Duy NguyenMay 1, 2016
  54. 00/41 Add and use error_errno() and warning_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  55. 01/41 usage.c: move format processing out of die_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  56. 02/41 usage.c: add warning_errno() and error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  57. 03/41 bisect.c: use die_errno() and warning_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  58. 04/41 builtin/am.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  59. 05/41 builtin/branch.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  60. 06/41 builtin/fetch.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  61. Junio C HamanoMay 3, 2016
  62. 07/41 builtin/help.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  63. 08/41 builtin/mailsplit.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  64. Junio C HamanoMay 3, 2016
  65. 09/41 builtin/merge-file.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  66. 10/41 builtin/pack-objects.c: use die_errno() and warning_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  67. Junio C HamanoMay 3, 2016
  68. 11/41 builtin/rm.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  69. Junio C HamanoMay 3, 2016
  70. 12/41 builtin/update-index.c: prefer "err" to "errno" in process_lstat_errorNguyễn Thái Ngọc Duy, May 3, 2016
  71. Eric SunshineMay 3, 2016
  72. 13/41 builtin/upload-archive.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  73. 14/41 builtin/worktree.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  74. Junio C HamanoMay 3, 2016
  75. 15/41 check-racy.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  76. 16/41 combine-diff.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  77. 17/41 compat/win32/syslog.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  78. 18/41 config.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  79. 19/41 connected.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  80. 20/41 copy.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  81. 21/41 credential-cache--daemon.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  82. 22/41 diff-no-index.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  83. 23/41 editor.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  84. 24/41 entry.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  85. 25/41 fast-import.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  86. 26/41 gpg-interface.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  87. 27/41 grep.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  88. 28/41 http.c: use error_errno() and warning_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  89. 29/41 ident.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  90. 30/41 mailmap.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  91. 31/41 reachable.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  92. 32/41 rerere.c: use error_errno() and warning_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  93. 33/41 run-command.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  94. 34/41 sequencer.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  95. 35/41 server-info.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  96. 36/41 sha1_file.c: use {error,die,warning}_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  97. 37/41 transport-helper.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  98. 38/41 unpack-trees.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  99. 39/41 upload-pack.c: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  100. 40/41 vcs-svn: use error_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  101. 41/41 wrapper.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 3, 2016
  102. Eric SunshineMay 3, 2016
  103. Junio C HamanoMay 3, 2016
  104. 00/41 Add and use error_errno() and warning_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  105. 01/41 usage.c: move format processing out of die_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  106. 02/41 usage.c: add warning_errno() and error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  107. 03/41 bisect.c: use die_errno() and warning_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  108. 04/41 builtin/am.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  109. 05/41 builtin/branch.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  110. 06/41 builtin/fetch.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  111. 07/41 builtin/help.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  112. 08/41 builtin/mailsplit.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  113. 09/41 builtin/merge-file.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  114. 10/41 builtin/pack-objects.c: use die_errno() and warning_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  115. 11/41 builtin/rm.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  116. 12/41 builtin/update-index.c: prefer "err" to "errno" in process_lstat_errorNguyễn Thái Ngọc Duy, May 8, 2016
  117. 13/41 builtin/upload-archive.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  118. 14/41 builtin/worktree.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  119. 15/41 check-racy.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  120. 16/41 combine-diff.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  121. 17/41 compat/win32/syslog.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  122. 18/41 config.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  123. 19/41 connected.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  124. 20/41 copy.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  125. 21/41 credential-cache--daemon.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  126. 22/41 diff-no-index.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  127. 23/41 editor.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  128. 24/41 entry.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  129. 25/41 fast-import.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  130. 26/41 gpg-interface.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  131. 27/41 grep.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  132. 28/41 http.c: use error_errno() and warning_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  133. 29/41 ident.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  134. 30/41 mailmap.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  135. 31/41 reachable.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  136. 32/41 rerere.c: use error_errno() and warning_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  137. 33/41 run-command.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  138. 34/41 sequencer.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  139. 35/41 server-info.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  140. 36/41 sha1_file.c: use {error,die,warning}_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  141. 37/41 transport-helper.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  142. 38/41 unpack-trees.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  143. 39/41 upload-pack.c: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  144. 40/41 vcs-svn: use error_errno()Nguyễn Thái Ngọc Duy, May 8, 2016
  145. 41/41 wrapper.c: use warning_errno()Nguyễn Thái Ngọc Duy, May 8, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.