Index: Singular/extra.cc
===================================================================
--- Singular/extra.cc	(revision 21959cfde99e2b34993ef4bb1a03e6b58939bf78)
+++ Singular/extra.cc	(revision 87cf50e9416dd9314b9a8f90febc962095c3359c)
@@ -2,5 +2,5 @@
 *  Computer Algebra System SINGULAR      *
 *****************************************/
-/* $Id: extra.cc,v 1.121 1999-11-24 18:50:36 obachman Exp $ */
+/* $Id: extra.cc,v 1.122 1999-11-29 14:46:53 Singular Exp $ */
 /*
 * ABSTRACT: general interface to internals of Singular ("system" command)
@@ -326,5 +326,5 @@
         return FALSE;
       }
-      
+
       feOptIndex opt = feGetOptIndex(&sys_cmd[2]);
       if (opt == FE_OPT_UNDEF)
@@ -334,6 +334,6 @@
         return TRUE;
       }
-      
-      // for Untyped Options (help version), 
+
+      // for Untyped Options (help version),
       // setting it just triggers action
       if (feOptSpec[opt].type == feOptUntyped)
@@ -342,5 +342,5 @@
         return FALSE;
       }
-      
+
       if (h == NULL)
       {
@@ -360,6 +360,6 @@
         return FALSE;
       }
-      
-      if (h->Typ() != STRING_CMD && 
+
+      if (h->Typ() != STRING_CMD &&
           h->Typ() != INT_CMD)
       {
@@ -376,5 +376,5 @@
         }
         errormsg = feSetOptValue(opt, (int) h->Data());
-        if (errormsg != NULL) 
+        if (errormsg != NULL)
           Werror("Option '--%s=%d' %s", sys_cmd, (int) h->Data(), errormsg);
       }
@@ -507,4 +507,20 @@
    else
    {
+/*==================== semic =============================*/
+   if(strcmp(sys_cmd,"semic") == 0)
+   {
+     if ((h->next!=NULL)
+     && (h->Typ()==LIST_CMD)
+     && (h->next->Typ()==LIST_CMD))
+     {
+       if (h->next->next==NULL)
+         return semicProc(res,h,h->next);
+       else if (h->next->next->Typ()==INT_CMD)
+         return semicProc3(res,h,h->next,h->next->next);
+     }
+     return TRUE;
+   }
+   else
+   {
    #endif
 /*================= Extended system call ========================*/
@@ -543,28 +559,28 @@
       if (h->Typ()==NUMBER_CMD )
       {
-	if ( h->next!=NULL && h->next->Typ()==INT_CMD )
-	{
-	  if ( !rField_is_long_C() )
-	    {
-	      Werror( "unsupported ground field!");
-	      return TRUE;
-	    }
-	  else
-	    {
-	      res->rtyp=INT_CMD;
-	      res->data=(void*)complexNearZero((gmp_complex*)h->Data(),(int)h->next->Data());
-	      return FALSE;
-	    }
-	}      
-	else
-	{
-	  Werror( "expected <int> as third parameter!");
-	  return TRUE;
-	}
-      }
-      else
-      {
-	Werror( "expected <number> as second parameter!");
-	return TRUE;
+        if ( h->next!=NULL && h->next->Typ()==INT_CMD )
+        {
+          if ( !rField_is_long_C() )
+            {
+              Werror( "unsupported ground field!");
+              return TRUE;
+            }
+          else
+            {
+              res->rtyp=INT_CMD;
+              res->data=(void*)complexNearZero((gmp_complex*)h->Data(),(int)h->next->Data());
+              return FALSE;
+            }
+        }
+        else
+        {
+          Werror( "expected <int> as third parameter!");
+          return TRUE;
+        }
+      }
+      else
+      {
+        Werror( "expected <number> as second parameter!");
+        return TRUE;
       }
     }
@@ -574,6 +590,6 @@
       if ( !rField_is_long_C() && !rField_is_long_R() )
       {
-	Werror( "unsupported ground field!");
-	return TRUE;
+        Werror( "unsupported ground field!");
+        return TRUE;
       }
       res->rtyp=INT_CMD;
@@ -599,5 +615,5 @@
     {
 #ifdef MLIST
-      FILE *fd = NULL; 
+      FILE *fd = NULL;
       if ((h!=NULL) &&(h->Typ()==STRING_CMD))
       {
@@ -610,7 +626,7 @@
       return FALSE;
 #else
-     WerrorS("mtrack not supported without MLIST"); 
+     WerrorS("mtrack not supported without MLIST");
      return TRUE;
-#endif     
+#endif
     }
     else
Index: Singular/iparith.cc
===================================================================
--- Singular/iparith.cc	(revision 21959cfde99e2b34993ef4bb1a03e6b58939bf78)
+++ Singular/iparith.cc	(revision 87cf50e9416dd9314b9a8f90febc962095c3359c)
@@ -2,5 +2,5 @@
 *  Computer Algebra System SINGULAR     *
 ****************************************/
-/* $Id: iparith.cc,v 1.191 1999-11-24 18:13:21 Singular Exp $ */
+/* $Id: iparith.cc,v 1.192 1999-11-29 14:46:54 Singular Exp $ */
 
 /*
@@ -284,7 +284,4 @@
   { "size",        0, COUNT_CMD ,         CMD_1},
   { "sortvec",     0, SORTVEC_CMD ,       CMD_1},
-  #ifdef HAVE_SPECTRUM
-  { "semic",       0, SEMIC_CMD ,         CMD_23},
-  #endif
   #ifdef OLD_RES
   { "sres",        0, SRES_CMD ,          CMD_23},
@@ -2295,7 +2292,4 @@
 ,{jjSIMPL_ID,  SIMPLIFY_CMD,   IDEAL_CMD,      IDEAL_CMD,  INT_CMD PROFILER}
 ,{jjSIMPL_ID,  SIMPLIFY_CMD,   MODUL_CMD,      MODUL_CMD,  INT_CMD PROFILER}
-#ifdef HAVE_SPECTRUM
-,{semicProc,   SEMIC_CMD,      INT_CMD,        LIST_CMD,   LIST_CMD PROFILER}
-#endif
 //,{jjRES,       SRES_CMD,       LIST_CMD,       IDEAL_CMD,  INT_CMD PROFILER}
 //,{jjRES,       SRES_CMD,       LIST_CMD,       MODUL_CMD,  INT_CMD PROFILER}
@@ -4338,5 +4332,4 @@
 ,{jjRING3,          RING_CMD,   RING_CMD,   DEF_CMD,    DEF_CMD,    DEF_CMD }
 #ifdef HAVE_SPECTRUM
-,{semicProc3,       SEMIC_CMD,  INT_CMD,    LIST_CMD,   LIST_CMD,   INT_CMD }
 ,{spectrumOp3,      SPECTRUM_CMD, LIST_CMD, LIST_CMD,   STRING_CMD, INT_CMD }
 ,{spectrumOp3,      SPECTRUM_CMD, LIST_CMD, LIST_CMD,   STRING_CMD, LIST_CMD }
Index: Singular/tok.h
===================================================================
--- Singular/tok.h	(revision 21959cfde99e2b34993ef4bb1a03e6b58939bf78)
+++ Singular/tok.h	(revision 87cf50e9416dd9314b9a8f90febc962095c3359c)
@@ -7,5 +7,5 @@
 * ABSTRACT: tokens, types for interpreter; general macros
 */
-/* $Id: tok.h,v 1.32 1999-11-24 18:13:23 Singular Exp $ */
+/* $Id: tok.h,v 1.33 1999-11-29 14:46:55 Singular Exp $ */
 
 #ifndef MYYSTYPE
@@ -106,7 +106,4 @@
   RESULTANT_CMD,
   ROWS_CMD,
-#ifdef HAVE_SPECTRUM
-  SEMIC_CMD,
-#endif
   SQR_FREE_DEC_CMD,
   STATUS_CMD,
