[BACK]Return to print.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / builtin

Diff for /OpenXM_contrib2/asir2000/builtin/print.c between version 1.19 and 1.26

version 1.19, 2005/09/28 08:08:34 version 1.26, 2015/03/15 19:31:30
Line 45 
Line 45 
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  *   *
  * $OpenXM: OpenXM_contrib2/asir2000/builtin/print.c,v 1.18 2005/04/28 08:14:46 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/builtin/print.c,v 1.25 2011/06/16 08:17:15 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
   
   void Psprintf(NODE,STRING *);
   
   void Pprintf();
 void Pprint();  void Pprint();
 void Pquotetolist();  void Pquotetolist();
 void Pobjtoquote();  void Pobjtoquote();
Line 57  void Peval_variables_in_quote();
Line 60  void Peval_variables_in_quote();
 void Pset_print_function();  void Pset_print_function();
   
 struct ftab print_tab[] = {  struct ftab print_tab[] = {
           {"printf",Pprintf,-99999999},
         {"print",Pprint,-2},          {"print",Pprint,-2},
         {"objtoquote",Pobjtoquote,1},          {"objtoquote",Pobjtoquote,1},
         {"quotetolist",Pquotetolist,1},          {"quotetolist",Pquotetolist,1},
Line 65  struct ftab print_tab[] = {
Line 69  struct ftab print_tab[] = {
         {0,0,0},          {0,0,0},
 };  };
   
   extern int I_am_server;
   
   int wfep_mode;
   
   void Pprintf(NODE arg,pointer *rp)
   {
           STRING s;
           if ( arg ) {
                   Psprintf(arg,&s);
                   /* engine for wfep */
                   if ( wfep_mode ) {
                           print_to_wfep(s);
                   }else {
                           printexpr(CO,s);
                           fflush(asir_out);
                   }
           }
           *rp = 0;
           return;
   }
   
 void Pprint(NODE arg,pointer *rp)  void Pprint(NODE arg,pointer *rp)
 {  {
         Obj obj;          Obj obj;
           STRING nl;
         Q opt;          Q opt;
   
           /* engine for wfep */
           if ( wfep_mode ) {
                   if ( arg ) {
                           print_to_wfep((Obj)ARG0(arg));
                           if ( !NEXT(arg) || ARG1(arg) ) {
                                   MKSTR(nl,"\r\n");
                                   print_to_wfep((Obj)nl);
                           }
                   }
                   *rp = 0;
                   return;
           }
         if ( arg ) {          if ( arg ) {
                 obj = (Obj)ARG0(arg);                  obj = (Obj)ARG0(arg);
                 if ( NEXT(arg) ) {                  if ( NEXT(arg) ) {
Line 92  void Pprint(NODE arg,pointer *rp)
Line 130  void Pprint(NODE arg,pointer *rp)
                         putc('\n',asir_out);                          putc('\n',asir_out);
                 }                  }
         }          }
           /* XXX : if ox_asir, we have to fflush always */
           if ( I_am_server )
                   fflush(asir_out);
         *rp = 0;          *rp = 0;
 }  }
   
Line 126  void fnodetotree(FNODE f,LIST *rp)
Line 167  void fnodetotree(FNODE f,LIST *rp)
   
         if ( !f ) {          if ( !f ) {
                 MKSTR(head,"internal");                  MKSTR(head,"internal");
                 n = mknode(2,head,0);                  n = mknode(2,head,NULLP);
                 MKLIST(*rp,n);                  MKLIST(*rp,n);
                 return;                  return;
         }          }
Line 256  void fnodetotree(FNODE f,LIST *rp)
Line 297  void fnodetotree(FNODE f,LIST *rp)
                         break;                          break;
   
                 /* function */                  /* function */
                 case I_FUNC: case I_CAR: case I_CDR: case I_EV:                  case I_FUNC: case I_FUNC_QARG: case I_CAR: case I_CDR: case I_EV:
                         MKSTR(head,"function");                          MKSTR(head,"function");
                         switch ( f->id ) {                          switch ( f->id ) {
                                 case I_FUNC:                                  case I_FUNC: case I_FUNC_QARG:
                                         MKSTR(op,((FUNC)FA0(f))->fullname);                                          MKSTR(op,((FUNC)FA0(f))->fullname);
                                         fnodetotree((FNODE)FA1(f),&a1);                                          fnodetotree((FNODE)FA1(f),&a1);
                                         break;                                          break;

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.26

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>