]> andersk Git - splint.git/blobdiff - src/cppmain.c
Fixed configuration problem (hopefully).
[splint.git] / src / cppmain.c
index 85142e1125e6204c8de3bf57f947ae29265f453b..991ed85658ad87ca5ed3d35eff3d7984424cad4e 100644 (file)
@@ -17,8 +17,8 @@
 ** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 ** MA 02111-1307, USA.
 **
-** For information on splint: splint@cs.virginia.edu
-** To report a bug: splint-bug@cs.virginia.edu
+** For information on splint: info@splint.org
+** To report a bug: splint-bug@splint.org
 ** For more information: http://www.splint.org
 */
 /*
@@ -89,6 +89,12 @@ void cppReader_initMod ()
   /*@-compdef@*/ /* g_cppState is not yet innitialized */
 } /*@=compdef@*/
 
+void cppReader_destroyMod () 
+  /*@globals killed g_cppState@*/
+{
+  cppCleanup (&g_cppState);
+}
+
 void cppReader_initialize ()
 {
   cpplib_initializeReader (&g_cppState);
@@ -116,7 +122,7 @@ int cppProcess (/*@dependent@*/ cstring infile,
       llexit (LLFAILURE);
     }
 
-  ofile = fileTable_openFile (context_fileTable (), outfile, "w");
+  ofile = fileTable_createFile (context_fileTable (), outfile);
   
   if (ofile == NULL) 
     {
@@ -137,6 +143,8 @@ int cppProcess (/*@dependent@*/ cstring infile,
 
       if (!opts->no_output)
        {
+         DPRINTF (("Writing: %s", cstring_copyLength (g_cppState.token_buffer, cpplib_getWritten (&g_cppState))));
+
          (void) fwrite (g_cppState.token_buffer, (size_t) 1,
                         cpplib_getWritten (&g_cppState), ofile);
        }
@@ -174,6 +182,8 @@ void cppAddIncludeDir (cstring dir)
   ** Add the -I- code.  This code provided by Robin Watts <Robin.Watts@wss.co.uk>
   */
 
+  DPRINTF (("Adding include: %s", dir));
+
   if (cstring_equalLit (dir, "-I-"))
     {
       struct cppOptions *opts = CPPOPTIONS (&g_cppState);    
@@ -184,8 +194,11 @@ void cppAddIncludeDir (cstring dir)
       /* -I option (Add directory to include path) */
       struct file_name_list *dirtmp = (struct file_name_list *) dmalloc (sizeof (*dirtmp));
       
+      llassert (cstring_firstChar (dir) == 'I');
+      dir = cstring_suffix (dir, 1);
+
       DPRINTF (("Add include: %s", dir));
-      
+
       dirtmp->next = 0;                /* New one goes on the end */
       dirtmp->control_macro = 0;
       dirtmp->c_system_include_path = FALSE;
@@ -211,14 +224,14 @@ void cppDoDefine (cstring str)
 
 void cppDoUndefine (cstring str)
 {
-  int sym_length;
+  size_t sym_length;
   hashNode hp;
   char *buf = cstring_toCharsSafe (str);
 
   sym_length = cppReader_checkMacroName (&g_cppState, buf,
-                                cstring_makeLiteralTemp ("macro"));
+                                        cstring_makeLiteralTemp ("macro"));
   
-  while ((hp = cpphash_lookup (buf, sym_length, -1)) != NULL)
+  while ((hp = cpphash_lookup (buf, size_toInt (sym_length), -1)) != NULL)
     {
       /*@-exposetrans@*/ /*@-dependenttrans@*/
       cppReader_deleteMacro (hp);
This page took 0.349739 seconds and 4 git commands to generate.