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

Re: [PATCH 12/41] builtin/update-index.c: use error_errno()

From
Eric Sunshine <sunshine@sunshineco.com>
Date
May 1, 2016, 18:40 UTC
Message-ID
<CAPig+cQmjXcsDsCO0A7dgeDg2ho_eFFf9wCouz528kBk_W=b9w@mail.gmail.com>
In-Reply-To
<1462101297-8610-13-git-send-email-pclouds@gmail.com>
On Sun, May 1, 2016 at 7:14 AM, Nguyễn Thái Ngọc Duy <pclouds@gmail.com> wrote:
> "err" is deleted because it just causes confusion when "errno" is also
> used directly in process_lstat_error().

Despite the function name which may imply that it is consulting errno, this change makes me feel slightly uncomfortable since it increases coupling. Whereas consulting of errno had been explicit, with this change, it becomes implicit, and someone changing the code needs to be extra careful about ensuring that errno does not get clobbered.

Not a big objection, but a nagging doubt...
Show 24 quoted lines
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
> diff --git a/builtin/update-index.c b/builtin/update-index.c
> @@ -251,11 +251,11 @@ static int remove_one_path(const char *path)
> -static int process_lstat_error(const char *path, int err)
> +static int process_lstat_error(const char *path)
>  {
> -       if (err == ENOENT || err == ENOTDIR)
> +       if (errno == ENOENT || errno == ENOTDIR)
>                 return remove_one_path(path);
> -       return error("lstat(\"%s\"): %s", path, strerror(errno));
> +       return error_errno("lstat(\"%s\")", path);
>  }
>
>  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, errno);
> +               return process_lstat_error(path);
>
>         if (S_ISDIR(st.st_mode))
>                 return process_directory(path, len, &st);
Previous: Nguyễn Thái Ngọc DuyNext: Duy Nguyen
Message 20 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.