You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2012/06/14 02:37:44 UTC

[lucy-commits] svn commit: r1350064 - in /lucy/trunk/charmonizer/src/Charmonizer/Core: ConfWriter.c ConfWriter.h

Author: marvin
Date: Thu Jun 14 00:37:43 2012
New Revision: 1350064

URL: http://svn.apache.org/viewvc?rev=1350064&view=rev
Log:
Add alternatives for ConfWriter_append_conf().

Start easing out ConfWriter_append_conf() by providing generic
alternatives such as ConfWriter_add_def().

Modified:
    lucy/trunk/charmonizer/src/Charmonizer/Core/ConfWriter.c
    lucy/trunk/charmonizer/src/Charmonizer/Core/ConfWriter.h

Modified: lucy/trunk/charmonizer/src/Charmonizer/Core/ConfWriter.c
URL: http://svn.apache.org/viewvc/lucy/trunk/charmonizer/src/Charmonizer/Core/ConfWriter.c?rev=1350064&r1=1350063&r2=1350064&view=diff
==============================================================================
--- lucy/trunk/charmonizer/src/Charmonizer/Core/ConfWriter.c (original)
+++ lucy/trunk/charmonizer/src/Charmonizer/Core/ConfWriter.c Thu Jun 14 00:37:43 2012
@@ -79,6 +79,62 @@ ConfWriter_append_conf(const char *fmt, 
     va_end(args);
 }
 
+static int
+S_sym_is_uppercase(const char *sym) {
+    unsigned i;
+    for (i = 0; sym[i] != 0; i++) {
+        if (!isupper(sym[i])) {
+            if (islower(sym[i])) {
+                return false;
+            }
+            else if (sym[i] != '_') {
+                return true;
+            }
+        }
+    }
+    return true;
+}
+
+void
+ConfWriter_add_def(const char *sym, const char *value) {
+    if (value) {
+        if (S_sym_is_uppercase(sym)) {
+            fprintf(charmony_fh, "#define CHY_%s %s\n", sym, value);
+        }
+        else {
+            fprintf(charmony_fh, "#define chy_%s %s\n", sym, value);
+        }
+    }
+    else {
+        if (S_sym_is_uppercase(sym)) {
+            fprintf(charmony_fh, "#define CHY_%s\n", sym);
+        }
+        else {
+            fprintf(charmony_fh, "#define chy_%s\n", sym);
+        }
+    }
+}
+
+void
+ConfWriter_add_typedef(const char *type, const char *alias) {
+    if (S_sym_is_uppercase(alias)) {
+        fprintf(charmony_fh, "typedef %s CHY_%s;\n", type, alias);
+    }
+    else {
+        fprintf(charmony_fh, "typedef %s chy_%s;\n", type, alias);
+    }
+}
+
+void
+ConfWriter_add_sys_include(const char *header) {
+    fprintf(charmony_fh, "#include <%s>\n", header);
+}
+
+void
+ConfWriter_add_local_include(const char *header) {
+    fprintf(charmony_fh, "#include \"%s\"\n", header);
+}
+
 void
 ConfWriter_start_short_names(void) {
     ConfWriter_append_conf(

Modified: lucy/trunk/charmonizer/src/Charmonizer/Core/ConfWriter.h
URL: http://svn.apache.org/viewvc/lucy/trunk/charmonizer/src/Charmonizer/Core/ConfWriter.h?rev=1350064&r1=1350063&r2=1350064&view=diff
==============================================================================
--- lucy/trunk/charmonizer/src/Charmonizer/Core/ConfWriter.h (original)
+++ lucy/trunk/charmonizer/src/Charmonizer/Core/ConfWriter.h Thu Jun 14 00:37:43 2012
@@ -56,6 +56,26 @@ chaz_ConfWriter_clean_up(void);
 void
 chaz_ConfWriter_append_conf(const char *fmt, ...);
 
+/* Add a pound-define.
+ */
+void
+chaz_ConfWriter_add_def(const char *sym, const char *value);
+
+/* Add a typedef.
+ */
+void
+chaz_ConfWriter_add_typedef(const char *type, const char *alias);
+
+/* Pound-include a system header (within angle brackets).
+ */
+void
+chaz_ConfWriter_add_sys_include(const char *header);
+
+/* Pound-include a locally created header (within quotes).
+ */
+void
+chaz_ConfWriter_add_local_include(const char *header);
+
 /* Start a short names block.
  */
 void
@@ -102,6 +122,10 @@ chaz_ConfWriter_end_module(void);
   #define ConfWriter_start_short_names      chaz_ConfWriter_start_short_names
   #define ConfWriter_end_short_names        chaz_ConfWriter_end_short_names
   #define ConfWriter_append_conf            chaz_ConfWriter_append_conf
+  #define ConfWriter_add_def                chaz_ConfWriter_add_def
+  #define ConfWriter_add_typedef            chaz_ConfWriter_add_typedef
+  #define ConfWriter_add_sys_include        chaz_ConfWriter_add_sys_include
+  #define ConfWriter_add_local_include      chaz_ConfWriter_add_local_include
   #define ConfWriter_shorten_macro          chaz_ConfWriter_shorten_macro
   #define ConfWriter_shorten_typedef        chaz_ConfWriter_shorten_typedef
   #define ConfWriter_shorten_function       chaz_ConfWriter_shorten_function