]> git.ozlabs.org Git - ccan/blobdiff - ccan/str/str.h
licence->license: US English is the standard for code.
[ccan] / ccan / str / str.h
index f633bc757e1c15655b7a06cfcd21a08922bb4e2a..8cfd7f29a5626cb7ca3a3196e545f35c3a74c0be 100644 (file)
@@ -11,7 +11,7 @@
  * This macro is arguably more readable than "!strcmp(a, b)".
  *
  * Example:
  * This macro is arguably more readable than "!strcmp(a, b)".
  *
  * Example:
- *     if (streq(str, ""))
+ *     if (streq(somestring, ""))
  *             printf("String is empty!\n");
  */
 #define streq(a,b) (strcmp((a),(b)) == 0)
  *             printf("String is empty!\n");
  */
 #define streq(a,b) (strcmp((a),(b)) == 0)
@@ -22,8 +22,8 @@
  * @prefix: prefix to look for at start of str
  *
  * Example:
  * @prefix: prefix to look for at start of str
  *
  * Example:
- *     if (strstarts(str, "foo"))
- *             printf("String %s begins with 'foo'!\n", str);
+ *     if (strstarts(somestring, "foo"))
+ *             printf("String %s begins with 'foo'!\n", somestring);
  */
 #define strstarts(str,prefix) (strncmp((str),(prefix),strlen(prefix)) == 0)
 
  */
 #define strstarts(str,prefix) (strncmp((str),(prefix),strlen(prefix)) == 0)
 
@@ -33,8 +33,8 @@
  * @postfix: postfix to look for at end of str
  *
  * Example:
  * @postfix: postfix to look for at end of str
  *
  * Example:
- *     if (strends(str, "foo"))
- *             printf("String %s end with 'foo'!\n", str);
+ *     if (strends(somestring, "foo"))
+ *             printf("String %s end with 'foo'!\n", somestring);
  */
 static inline bool strends(const char *str, const char *postfix)
 {
  */
 static inline bool strends(const char *str, const char *postfix)
 {
@@ -43,4 +43,16 @@ static inline bool strends(const char *str, const char *postfix)
 
        return streq(str + strlen(str) - strlen(postfix), postfix);
 }
 
        return streq(str + strlen(str) - strlen(postfix), postfix);
 }
+
+/**
+ * stringify - Turn expression into a string literal
+ * @expr: any C expression
+ *
+ * Example:
+ *     #define PRINT_COND_IF_FALSE(cond) \
+ *             ((cond) || printf("%s is false!", stringify(cond)))
+ */
+#define stringify(expr)                stringify_1(expr)
+/* Double-indirection required to stringify expansions */
+#define stringify_1(expr)      #expr
 #endif /* CCAN_STR_H */
 #endif /* CCAN_STR_H */