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