summaryrefslogtreecommitdiff
path: root/Build/source/utils/xindy/rte/ordrules/debug.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/xindy/rte/ordrules/debug.h')
-rw-r--r--Build/source/utils/xindy/rte/ordrules/debug.h166
1 files changed, 166 insertions, 0 deletions
diff --git a/Build/source/utils/xindy/rte/ordrules/debug.h b/Build/source/utils/xindy/rte/ordrules/debug.h
new file mode 100644
index 00000000000..6c59927d61a
--- /dev/null
+++ b/Build/source/utils/xindy/rte/ordrules/debug.h
@@ -0,0 +1,166 @@
+/* $Id: debug.h,v 1.3 2005/05/02 21:39:53 jschrod Exp $
+ *------------------------------------------------------------
+ *
+ * AU: Makros zur Unterstuetzung von Debug-Ausgaben
+ * with friendly permission by U. Graef
+ *
+ * ST: Um die Macros zu definieren:
+ * #define debug
+ * #include "debug.h"
+ * Im Hauptprogramm bzw. Tester mu"s dann noch debug.o dazugebunden
+ * werden, um die externe Variable Debug_Output_Indent zur Verf"ugung
+ * zu stellen.
+ * Um im Modul die Macros zu deaktivieren:
+ * #undef debug
+ * #include "debug.h"
+ *
+ * PO: HPUX, Linux, AIX
+ */
+
+
+#ifndef _debug_h
+#define _debug_h
+
+/*
+ * Beim ersten include werden folgende Deklarationen defininert:
+ *
+ * Die globale Variable f"ur die Einr"uckung wird definiert.
+ */
+extern
+int Debug_Output_Indent;
+
+#ifdef debug_special
+/*
+ * Die Funktion f"ur den Memory-Print wird definiert
+ */
+extern
+void debug_printmem_asc( char* desc, char* str, char* lenname, int len );
+#endif /* debug_special */
+
+#define Debug_Output_Indent_Step 4
+
+#endif /* _debug_h */
+
+
+/*
+ * Falls die Macros bereits definiert waren, dann werden sie jetzt
+ * zuerst wegdefiniert. Damit kann man "debug.h" benutzen um die Macros
+ * zu (de-)aktivieren.
+ */
+
+#ifdef dispstart
+
+#undef dispstart
+#undef dispend
+#undef displong
+#undef dispint
+#undef dispuint
+#undef dispdouble
+#undef dispchar
+#undef dispstr
+#undef dispmem
+#undef dispmsg
+
+#endif
+
+/*
+ * Hier werden die Macros wieder definert bzw. erstmals definiert
+ */
+#ifdef debug
+
+/* Start und Ende von Prozeduren */
+
+#define dispstart(p) \
+ { \
+ fprintf( stderr, "\n%*s%s: Start -----\n", \
+ Debug_Output_Indent, "", #p ); \
+ Debug_Output_Indent += Debug_Output_Indent_Step; \
+ }
+
+#define dispend(p) \
+ { \
+ Debug_Output_Indent -= Debug_Output_Indent_Step; \
+ fprintf( stderr, "%*s%s: End -----\n\n", \
+ Debug_Output_Indent, "", #p ); \
+ }
+
+
+/* Ausgabe von Werten verschiedenen Typs */
+/* (mit Ausgabe der Variablen bzw. des Ausdrucks) */
+
+
+#define displong(l) \
+ fprintf( stderr, "%*s%s = %ld = 0x%lX \n",\
+ Debug_Output_Indent, "", #l, (long) l, (long) l );
+
+
+#define dispint(i) \
+ fprintf( stderr, "%*s%s = %d = 0x%X \n", \
+ Debug_Output_Indent, "", #i, (int) i, (int) i );
+
+#define dispuint(i) \
+ fprintf( stderr, "%*s%s = %d = 0x%X \n", \
+ Debug_Output_Indent, "", #i, (unsigned int) i, (unsigned int) i );
+
+#define dispdouble(d) \
+ fprintf( stderr, "%*s%s = %20.10g \n",\
+ Debug_Output_Indent, "", #d, (double) d );
+
+#define dispchar(c) \
+ fprintf( stderr, "%*s%s = %d = 0x%X = '%c' \n", \
+ Debug_Output_Indent, "", #c, (char) c, \
+ (char) c, (char) c );
+
+#define dispstr(s) \
+ fprintf( stderr, "%*s%s = \"%s\"\n", \
+ Debug_Output_Indent, "", #s, (char*) s );
+
+#ifdef debug_special
+#define dispmem(str,len) \
+ debug_printmem_asc( (char*)#str, (char*)str, (char*)#len, (int) len );
+#endif /* debug_special */
+
+#define dispmsg(p) \
+ { \
+ fprintf( stderr, "%*s%s:\n", Debug_Output_Indent, "", #p ); \
+ }
+
+#else /* debug */
+
+/*
+ * Falls kein weiteres Debugging erw"unscht, dann definiere die
+ * Macros auf leer.
+ */
+#define dispstart(p)
+#define dispend(p)
+#define displong(l)
+#define dispint(i)
+#define dispuint(i)
+#define dispdouble(d)
+#define dispchar(c)
+#define dispstr(s)
+#define dispmem(str,len)
+#define dispmsg(p)
+
+#endif /* debug */
+
+
+/*======================================================================
+ *
+ * $Log: debug.h,v $
+ * Revision 1.3 2005/05/02 21:39:53 jschrod
+ * xindy run time engine 3.0; as used for CLISP 2.33.2.
+ *
+ * Revision 1.2 1996/07/18 15:56:38 kehr
+ * Checkin after all changes that resulted from the define-letter-group
+ * modification were finished. Additionally I found an ugly bug in the
+ * ordrules.c file that was discovered when running the system under
+ * Solaris (which seems to have signed chars..Whee!). This is fixed now
+ * and the Imakefiles and that stuff was improved, too.
+ *
+ * Revision 1.1 1996/03/27 20:29:03 kehr
+ * It works. Today I had my first success in getting the FFI running with
+ * the ordrules-library. The interface is defined in `ordrulei.lsp' and
+ * allows direct access to the functions in `ordrules.c'.
+ *
+ */