]> andersk Git - splint.git/blobdiff - src/metaStateSpecifier.c
noexpand always false.
[splint.git] / src / metaStateSpecifier.c
index 152a9b5a7486aaac5a5312502000e8f8b950dc78..7e4151788044cd229add4a6733dafcf981c7164d 100644 (file)
@@ -1,6 +1,6 @@
 /*
-** LCLint - annotation-assisted static program checker
-** Copyright (C) 1994-2001 University of Virginia,
+** Splint - annotation-assisted static program checker
+** Copyright (C) 1994-2003 University of Virginia,
 **         Massachusetts Institute of Technology
 **
 ** This program is free software; you can redistribute it and/or modify it
 ** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 ** MA 02111-1307, USA.
 **
-** For information on lclint: lclint-request@cs.virginia.edu
-** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.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
 */
 /*
 ** metaStateSpecifier.c
 */
 
-# include "lclintMacros.nf"
+# include "splintMacros.nf"
 # include "basic.h"
-# include "mtincludes.h"
 
 metaStateSpecifier 
 metaStateSpecifier_create (/*@only@*/ sRef sr, /*@observer@*/ metaStateInfo msinfo)
@@ -35,12 +34,30 @@ metaStateSpecifier_create (/*@only@*/ sRef sr, /*@observer@*/ metaStateInfo msin
   metaStateSpecifier res = (metaStateSpecifier) dmalloc (sizeof (*res));
   res->sr = sr;
   res->msinfo = msinfo;
+  res->elipsis = FALSE;
   return res;
 }
 
+metaStateSpecifier 
+metaStateSpecifier_createElipsis (/*@observer@*/ metaStateInfo msinfo)
+{
+  metaStateSpecifier res = (metaStateSpecifier) dmalloc (sizeof (*res));
+  res->sr = sRef_undefined;
+  res->msinfo = msinfo;
+  res->elipsis = TRUE;
+  return res;
+}
+
+bool
+metaStateSpecifier_isElipsis (metaStateSpecifier m)
+{
+  return m->elipsis;
+}
+
 sRef
 metaStateSpecifier_getSref (metaStateSpecifier m)
 {
+  llassert (!metaStateSpecifier_isElipsis (m));
   return m->sr;
 }
 
@@ -53,14 +70,29 @@ metaStateSpecifier_getMetaStateInfo (metaStateSpecifier m)
 metaStateSpecifier 
 metaStateSpecifier_copy (metaStateSpecifier m)
 {
-  return metaStateSpecifier_create (sRef_saveCopy (m->sr), m->msinfo);
+  if (metaStateSpecifier_isElipsis (m))
+    {
+      return metaStateSpecifier_createElipsis (m->msinfo);
+    }
+  else
+    {
+      return metaStateSpecifier_create (sRef_saveCopy (m->sr), m->msinfo);
+    }
 }
 
 cstring metaStateSpecifier_unparse (metaStateSpecifier m) 
 {
-  return message ("%q:%s", 
-                 sRef_unparse (m->sr),
-                 metaStateInfo_getName (m->msinfo));
+  if (m->elipsis)
+    {
+      return message ("...:%s", 
+                     metaStateInfo_getName (m->msinfo));
+    }
+  else
+    {
+      return message ("%q:%s", 
+                     sRef_unparse (m->sr),
+                     metaStateInfo_getName (m->msinfo));
+    }
 }
 
 void metaStateSpecifier_free (/*@only@*/ metaStateSpecifier m) 
This page took 0.032254 seconds and 4 git commands to generate.