summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2007-08-05 10:30:23 +0200
committerJim Meyering <jim@meyering.net>2007-08-05 15:42:59 +0200
commite1e97eccb7948580cef055ae759af35683fb1152 (patch)
treef6ca96a6cf1af5f7ba347d396d4004a072516730
parent8c8f3467f5b9e6952d1640580a4d8df820a28c08 (diff)
downloadcoreutils-e1e97eccb7948580cef055ae759af35683fb1152.tar.xz
Encapsulate a static variable.
* src/system.h (opt_str_storage): Move static var into... (short_opt_str): ... new static inline function. (OPT_STR): Use the new function.
-rw-r--r--ChangeLog7
-rw-r--r--src/system.h14
2 files changed, 18 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 469ee29cb..df5ed6e13 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2007-08-05 Jim Meyering <jim@meyering.net>
+
+ Encapsulate a static variable.
+ * src/system.h (opt_str_storage): Move static var into...
+ (short_opt_str): ... new static inline function.
+ (OPT_STR): Use the new function.
+
2007-08-04 Jim Meyering <jim@meyering.net>
Exercise xstrtol's diagnostics via pr's --pages option.
diff --git a/src/system.h b/src/system.h
index cc97f2fec..dcb13bad0 100644
--- a/src/system.h
+++ b/src/system.h
@@ -594,18 +594,26 @@ emit_bug_reporting_address (void)
}
/* Use OPT_IDX to decide whether to return either a short option
- string "-C", or a long option string derived from LONG_OPTION.
+ string "-C", or a long option string derived from LONG_OPTIONS.
OPT_IDX is -1 if the short option C was used; otherwise it is an
index into LONG_OPTIONS, which should have a name preceded by two
'-' characters. */
-static char opt_str_storage[3] = {'-', 0, 0};
#define OPT_STR(opt_idx, c, long_options) \
((opt_idx) < 0 \
- ? (opt_str_storage[1] = c, opt_str_storage) \
+ ? short_opt_str (c) \
: LONG_OPT_STR (opt_idx, long_options))
/* Likewise, but assume OPT_IDX is nonnegative. */
#define LONG_OPT_STR(opt_idx, long_options) ((long_options)[opt_idx].name - 2)
+/* Given the byte, C, return the string "-C" in static storage. */
+static inline char *
+short_opt_str (char c)
+{
+ static char opt_str_storage[3] = {'-', 0, 0};
+ opt_str_storage[1] = c;
+ return opt_str_storage;
+}
+
/* Define an option string that will be used with OPT_STR or LONG_OPT_STR. */
#define OPT_STR_INIT(name) ("--" name + 2)