Changeset 472f39 in git for Singular/silink.cc


Ignore:
Timestamp:
Jul 6, 1999, 3:35:34 PM (25 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
ce7ba606241efb95de4d1ab5581428b7143b3be2
Parents:
acfbb5a85f3eb92ffdb442a04348bd0186e1785b
Message:
* hannes: gmalloc.c: 64-bit cleanups (part 1)
          ipid.h, subexpr.h: aligment changes
	  ipid.cc: new funktion: idrec::String (for idhdl)
	  silink.cc: slReadAscii2 introduced,
	  silink.cc: String-fixes for idhdl


git-svn-id: file:///usr/local/Singular/svn/trunk@3235 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/silink.cc

    racfbb5a r472f39  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: silink.cc,v 1.27 1999-04-17 12:30:24 Singular Exp $ */
     4/* $Id: silink.cc,v 1.28 1999-07-06 13:35:33 Singular Exp $ */
    55
    66/*
     
    389389}
    390390
    391 leftv slReadAscii(si_link l)
     391leftv slReadAscii2(si_link l, leftv pr)
    392392{
    393393  FILE * fp=(FILE *)l->data;
     
    415415  #endif
    416416    {
    417       //PrintS("? "); mflush();
    418       buf=(char *)AllocL(80);
    419       fe_fgets_stdin("? ",buf,80);
     417      if (pr->Typ()==STRING_CMD)
     418      {
     419        buf=(char *)AllocL(80);
     420        fe_fgets_stdin(pr->Data(),buf,80);
     421      }
     422      else
     423      {
     424        WerrorS("read(<link>,<string>) expected");
     425        buf=mstrdup("");
     426      }
    420427    }
    421428  }
     
    425432  return v;
    426433}
     434
     435leftv slReadAscii(si_link l)
     436{
     437  sleftv tmp;
     438  memset(&tmp,0,sizeof(sleftv));
     439  tmp.rtyp=STRING_CMD;
     440  tmp.data="? ";
     441  return slReadAscii2(l,&tmp);
     442}
     443
    427444BOOLEAN slWriteAscii(si_link l, leftv v)
    428445{
     
    524541    char *rhs;
    525542    rSetHdl(rhdl, TRUE);
    526     rhs = ((leftv) h)->String();
     543    rhs = h->String();
    527544
    528545#ifdef HAVE_NAMESPACES
    529     if (fprintf(fd, "setring %s::%s;\n", 
     546    if (fprintf(fd, "setring %s::%s;\n",
    530547                namespaceroot->name, IDID(rhdl)) == EOF) return TRUE;
    531     if (fprintf(fd, "%s %s::%s = %s, %s;\n", Tok2Cmdname(MAP_CMD), 
     548    if (fprintf(fd, "%s %s::%s = %s, %s;\n", Tok2Cmdname(MAP_CMD),
    532549                 namespaceroot->name, IDID(h),
    533550                IDMAP(h)->preimage, rhs) == EOF)
     
    555572  idtyp type_id = IDTYP(h);
    556573
    557   if (type_id == PACKAGE_CMD && strcmp(IDID(h), "Top") == 0) return FALSE;
    558  
     574#ifdef HAVE_NAMESPACES
     575  if ((type_id == PACKAGE_CMD) &&(strcmp(IDID(h), "Top") == 0))
     576    return FALSE;
     577#endif
     578
    559579  // we do not throw an error if a wrong type was attempted to be dumped
    560   if (type_str == NULL) return FALSE;
     580  if (type_str == NULL)
     581    return FALSE;
    561582
    562583  // handle qrings separately
    563   if (type_id == QRING_CMD) return DumpQring(fd, h, type_str);
     584  if (type_id == QRING_CMD)
     585    return DumpQring(fd, h, type_str);
    564586
    565587  // do not dump LIB string
    566588  if (type_id == STRING_CMD && strcmp("LIB", IDID(h)) == 0)
    567   {
    568589    return FALSE;
    569   }
    570 
     590
     591  // put type and name
    571592#ifdef HAVE_NAMESPACES
    572   // put type and name
    573   if (fprintf(fd, "%s %s::%s", type_str, namespaceroot->name, IDID(h)) == EOF) return TRUE;
     593  if (fprintf(fd, "%s %s::%s", type_str, namespaceroot->name, IDID(h)) == EOF)
     594    return TRUE;
    574595#else
    575   // put type and name
    576   if (fprintf(fd, "%s %s", type_str, IDID(h)) == EOF) return TRUE;
     596  if (fprintf(fd, "%s %s", type_str, IDID(h)) == EOF)
     597    return TRUE;
    577598#endif
    578599  // for matricies, append the dimension
     
    588609  }
    589610
    590   if (type_id == PACKAGE_CMD) {
     611#ifdef HAVE_NAMESPACES
     612  if (type_id == PACKAGE_CMD)
     613  {
    591614    if (fprintf(fd, ";\n") == EOF) return TRUE;
    592615    else return FALSE;
    593616  }
    594  
     617#endif
     618
    595619  // write the equal sign
    596620  if (fprintf(fd, " = ") == EOF) return TRUE;
     
    648672static BOOLEAN DumpQring(FILE *fd, idhdl h, char *type_str)
    649673{
    650   char *ring_str = ((leftv) h)->String();
     674  char *ring_str = h->String();
    651675  if (fprintf(fd, "%s temp_ring = %s;\n", Tok2Cmdname(RING_CMD), ring_str)
    652676              == EOF) return TRUE;
     
    656680  if (fprintf(fd, "attrib(temp_ideal, \"isSB\", 1);\n") == EOF) return TRUE;
    657681#ifdef HAVE_NAMESPACES
    658   if (fprintf(fd, "%s %s::%s = temp_ideal;\n", 
     682  if (fprintf(fd, "%s %s::%s = temp_ideal;\n",
    659683              type_str,  namespaceroot->name, IDID(h)) == EOF)
    660684#else
     
    722746  else
    723747  {
    724     char *rhs = ((leftv) h)->String();
     748    char *rhs = h->String();
    725749
    726750    if (rhs == NULL) return EOF;
     
    796820  si_link_root->Kill=slCloseAscii;
    797821  si_link_root->Read=slReadAscii;
     822  si_link_root->Read2=slReadAscii2;
    798823  si_link_root->Write=slWriteAscii;
    799824  si_link_root->Dump=slDumpAscii;
Note: See TracChangeset for help on using the changeset viewer.