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

[PATCH v3 6/8] git-compat-util: move usage.c funcs to its header

From
Calvin Wan <calvinwan@google.com>
Date
Jun 6, 2023, 17:10 UTC
Message-ID
<20230606171002.914075-6-calvinwan@google.com>
In-Reply-To
<20230606170711.912972-1-calvinwan@google.com>
Signed-off-by: Calvin Wan <calvinwan@google.com>
---
 common.h          |  1 +
 git-compat-util.h | 55 -------------------------------------------
 usage.h           | 60 +++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 61 insertions(+), 55 deletions(-)
 create mode 100644 usage.h
diff --git a/common.h b/common.h
index 0f164c1071..e3b673847d 100644
--- a/common.h
+++ b/common.h
@@ -3,6 +3,7 @@
 
 #include "git-compat-util.h"
 #include "wrapper.h"
+#include "usage.h"
 
 /*
  * ARRAY_SIZE - get the number of elements in a visible array
diff --git a/git-compat-util.h b/git-compat-util.h
index f73c8727d1..481dac22b0 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -572,20 +572,6 @@ static inline int git_has_dir_sep(const char *path)
 
 #include "compat/bswap.h"
 
-#include "wrapper.h"
-
-/* General helper functions */
-NORETURN void usage(const char *err);
-NORETURN void usagef(const char *err, ...) __attribute__((format (printf, 1, 2)));
-NORETURN void die(const char *err, ...) __attribute__((format (printf, 1, 2)));
-NORETURN void die_errno(const char *err, ...) __attribute__((format (printf, 1, 2)));
-int die_message(const char *err, ...) __attribute__((format (printf, 1, 2)));
-int die_message_errno(const char *err, ...) __attribute__((format (printf, 1, 2)));
-int error(const char *err, ...) __attribute__((format (printf, 1, 2)));
-int error_errno(const char *err, ...) __attribute__((format (printf, 1, 2)));
-void warning(const char *err, ...) __attribute__((format (printf, 1, 2)));
-void warning_errno(const char *err, ...) __attribute__((format (printf, 1, 2)));
-
 #ifndef NO_OPENSSL
 #ifdef APPLE_COMMON_CRYPTO
 #include "compat/apple-common-crypto.h"
@@ -600,30 +586,6 @@ void warning_errno(const char *err, ...) __attribute__((format (printf, 1, 2)));
 #include <openssl/rand.h>
 #endif
 
-/*
- * Let callers be aware of the constant return value; this can help
- * gcc with -Wuninitialized analysis. We restrict this trick to gcc, though,
- * because other compilers may be confused by this.
- */
-#if defined(__GNUC__)
-static inline int const_error(void)
-{
-	return -1;
-}
-#define error(...) (error(__VA_ARGS__), const_error())
-#define error_errno(...) (error_errno(__VA_ARGS__), const_error())
-#endif
-
-typedef void (*report_fn)(const char *, va_list params);
-
-void set_die_routine(NORETURN_PTR report_fn routine);
-report_fn get_die_message_routine(void);
-void set_error_routine(report_fn routine);
-report_fn get_error_routine(void);
-void set_warn_routine(report_fn routine);
-report_fn get_warn_routine(void);
-void set_die_is_recursing_routine(int (*routine)(void));
-
 #if defined(NO_MMAP) || defined(USE_WIN32_MMAP)
 
 #ifndef PROT_READ
@@ -942,23 +904,6 @@ int git_regcomp(regex_t *preg, const char *pattern, int cflags);
 #endif
 #endif
 
-/* usage.c: only to be used for testing BUG() implementation (see test-tool) */
-extern int BUG_exit_code;
-
-/* usage.c: if bug() is called we should have a BUG_if_bug() afterwards */
-extern int bug_called_must_BUG;
-
-__attribute__((format (printf, 3, 4))) NORETURN
-void BUG_fl(const char *file, int line, const char *fmt, ...);
-#define BUG(...) BUG_fl(__FILE__, __LINE__, __VA_ARGS__)
-__attribute__((format (printf, 3, 4)))
-void bug_fl(const char *file, int line, const char *fmt, ...);
-#define bug(...) bug_fl(__FILE__, __LINE__, __VA_ARGS__)
-#define BUG_if_bug(...) do { \
-	if (bug_called_must_BUG) \
-		BUG_fl(__FILE__, __LINE__, __VA_ARGS__); \
-} while (0)
-
 #ifndef FSYNC_METHOD_DEFAULT
 #ifdef __APPLE__
 #define FSYNC_METHOD_DEFAULT FSYNC_METHOD_WRITEOUT_ONLY
diff --git a/usage.h b/usage.h
new file mode 100644
index 0000000000..770076e684
--- /dev/null
+++ b/usage.h
@@ -0,0 +1,60 @@
+#ifndef USAGE_H
+#define USAGE_H
+
+#include "git-compat-util.h"
+
+/* General helper functions */
+NORETURN void usage(const char *err);
+NORETURN void usagef(const char *err, ...) __attribute__((format (printf, 1, 2)));
+NORETURN void die(const char *err, ...) __attribute__((format (printf, 1, 2)));
+NORETURN void die_errno(const char *err, ...) __attribute__((format (printf, 1, 2)));
+int error(const char *err, ...) __attribute__((format (printf, 1, 2)));
+int error_errno(const char *err, ...) __attribute__((format (printf, 1, 2)));
+int die_message(const char *err, ...) __attribute__((format (printf, 1, 2)));
+int die_message_errno(const char *err, ...) __attribute__((format (printf, 1, 2)));
+
+void warning(const char *err, ...) __attribute__((format (printf, 1, 2)));
+void warning_errno(const char *err, ...) __attribute__((format (printf, 1, 2)));
+
+/*
+ * Let callers be aware of the constant return value; this can help
+ * gcc with -Wuninitialized analysis. We restrict this trick to gcc, though,
+ * because other compilers may be confused by this.
+ */
+#if defined(__GNUC__)
+static inline int const_error(void)
+{
+	return -1;
+}
+#define error(...) (error(__VA_ARGS__), const_error())
+#define error_errno(...) (error_errno(__VA_ARGS__), const_error())
+#endif
+
+typedef void (*report_fn)(const char *, va_list params);
+
+void set_die_routine(NORETURN_PTR report_fn routine);
+report_fn get_die_message_routine(void);
+void set_error_routine(report_fn routine);
+report_fn get_error_routine(void);
+void set_warn_routine(report_fn routine);
+report_fn get_warn_routine(void);
+void set_die_is_recursing_routine(int (*routine)(void));
+
+/* usage.c: only to be used for testing BUG() implementation (see test-tool) */
+extern int BUG_exit_code;
+
+/* usage.c: if bug() is called we should have a BUG_if_bug() afterwards */
+extern int bug_called_must_BUG;
+
+__attribute__((format (printf, 3, 4))) NORETURN
+void BUG_fl(const char *file, int line, const char *fmt, ...);
+#define BUG(...) BUG_fl(__FILE__, __LINE__, __VA_ARGS__)
+__attribute__((format (printf, 3, 4)))
+void bug_fl(const char *file, int line, const char *fmt, ...);
+#define bug(...) bug_fl(__FILE__, __LINE__, __VA_ARGS__)
+#define BUG_if_bug(...) do { \
+	if (bug_called_must_BUG) \
+		BUG_fl(__FILE__, __LINE__, __VA_ARGS__); \
+} while (0)
+
+#endif /* USAGE_H */
-- 
2.41.0.rc2.161.g9c6817b8e7-goog
Previous: Calvin WanNext: Calvin Wan
Message 42 of 56 in “git-compat-util cleanups”
  1. 0/6 git-compat-util cleanupsCalvin Wan, May 16, 2023
  2. 1/6 strbuf.h: move declarations for strbuf.c functions from git-compat-util.hCalvin Wan, May 16, 2023
  3. Junio C HamanoMay 16, 2023
  4. 2/6 wrapper.h: move declarations for wrapper.c functions from git-compat-util.hCalvin Wan, May 16, 2023
  5. Junio C HamanoMay 16, 2023
  6. 3/6 common.h: move non-compat specific macros and functions from git-compat-util.hCalvin Wan, May 16, 2023
  7. Junio C HamanoMay 16, 2023
  8. Calvin WanMay 17, 2023
  9. 4/6 usage.h: move declarations for usage.c functions from git-compat-util.hCalvin Wan, May 16, 2023
  10. 5/6 treewide: remove unnecessary includes for wrapper.hCalvin Wan, May 16, 2023
  11. 6/6 common: move alloc macros to common.hCalvin Wan, May 16, 2023
  12. Junio C HamanoMay 16, 2023
  13. Calvin WanMay 16, 2023
  14. 0/7 git-compat-util cleanupsCalvin Wan, May 23, 2023
  15. 1/7 strbuf.h: move declarations for strbuf.c functions from git-compat-util.hCalvin Wan, May 23, 2023
  16. Jonathan TanMay 26, 2023
  17. 2/7 wrapper.h: move declarations for wrapper.c functions from git-compat-util.hCalvin Wan, May 23, 2023
  18. Jonathan TanMay 26, 2023
  19. 3/7 sane-ctype.h: move sane-ctype macros from git-compat-util.hCalvin Wan, May 23, 2023
  20. Jonathan TanMay 26, 2023
  21. Phillip WoodMay 28, 2023
  22. Jonathan TanMay 30, 2023
  23. Junio C HamanoJun 1, 2023
  24. 5/7 usage.h: move declarations for usage.c functions from git-compat-util.hCalvin Wan, May 23, 2023
  25. 4/7 common.h: move non-compat specific macros and functions from git-compat-util.hCalvin Wan, May 23, 2023
  26. 6/7 treewide: remove unnecessary includes for wrapper.hCalvin Wan, May 23, 2023
  27. 7/7 common: move alloc macros to common.hCalvin Wan, May 23, 2023
  28. Jonathan TanMay 26, 2023
  29. Jonathan TanMay 26, 2023
  30. 0/8 git-compat-util cleanupsCalvin Wan, Jun 6, 2023
  31. 1/8 git-compat-util: move strbuf.c funcs to its headerCalvin Wan, Jun 6, 2023
  32. 2/8 git-compat-util: move wrapper.c funcs to its headerCalvin Wan, Jun 6, 2023
  33. 3/8 sane-ctype.h: create header for sane-ctype macrosCalvin Wan, Jun 6, 2023
  34. 4/8 kwset: move translation table from ctypeCalvin Wan, Jun 6, 2023
  35. 5/8 common.h: move non-compat specific macros and functionsCalvin Wan, Jun 6, 2023
  36. Ramsay JonesJun 6, 2023
  37. Calvin WanJun 7, 2023
  38. Junio C HamanoJun 12, 2023
  39. Calvin WanJun 13, 2023
  40. Junio C HamanoJun 13, 2023
  41. Calvin WanJun 14, 2023
  42. 6/8 git-compat-util: move usage.c funcs to its headerCalvin Wan, Jun 6, 2023
  43. 7/8 treewide: remove unnecessary includes for wrapper.hCalvin Wan, Jun 6, 2023
  44. 8/8 common: move alloc macros to common.hCalvin Wan, Jun 6, 2023
  45. 0/6 git-compat-util cleanupsCalvin Wan, Jun 30, 2023
  46. 1/6 git-compat-util: move strbuf.c funcs to its headerCalvin Wan, Jun 30, 2023
  47. 2/6 git-compat-util: move wrapper.c funcs to its headerCalvin Wan, Jun 30, 2023
  48. 3/6 sane-ctype.h: create header for sane-ctype macrosCalvin Wan, Jun 30, 2023
  49. 4/6 kwset: move translation table from ctypeCalvin Wan, Jun 30, 2023
  50. 5/6 treewide: remove unnecessary includes for wrapper.hCalvin Wan, Jun 30, 2023
  51. 6/6 common: move alloc macros to common.hCalvin Wan, Jun 30, 2023
  52. Junio C HamanoJun 30, 2023
  53. Calvin WanJul 5, 2023
  54. Junio C HamanoJul 5, 2023
  55. Calvin WanJul 5, 2023
  56. Junio C HamanoJun 30, 2023

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.