[BACK]Return to ext.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Kan

Diff for /OpenXM/src/kan96xx/Kan/ext.c between version 1.25 and 1.27

version 1.25, 2004/09/09 03:14:46 version 1.27, 2004/09/11 12:13:41
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/kan96xx/Kan/ext.c,v 1.24 2004/09/04 11:25:58 takayama Exp $ */  /* $OpenXM: OpenXM/src/kan96xx/Kan/ext.c,v 1.26 2004/09/09 08:50:12 takayama Exp $ */
 #include <stdio.h>  #include <stdio.h>
 #include <sys/types.h>  #include <sys/types.h>
 #include <sys/stat.h>  #include <sys/stat.h>
Line 23  extern char **environ;
Line 23  extern char **environ;
 #define MYCP_SIZE 100  #define MYCP_SIZE 100
 static int Mychildren[MYCP_SIZE];  static int Mychildren[MYCP_SIZE];
 static int Mycp = 0;  static int Mycp = 0;
   static int Verbose_mywait = 0;
 static void mywait() {  static void mywait() {
   int status;    int status;
   int pid;    int pid;
   int i,j;    int i,j;
   /* signal(SIGCHLD,SIG_IGN); */    /* signal(SIGCHLD,SIG_IGN); */
   pid = wait(&status);    pid = wait(&status);
   if (!Quiet) fprintf(stderr,"Child process %d is exiting.\n",pid);    if ((!Quiet) && (Verbose_mywait)) fprintf(stderr,"Child process %d is exiting.\n",pid);
   for (i=0; i<Mycp; i++) {    for (i=0; i<Mycp; i++) {
     if (Mychildren[i]  == pid) {      if (Mychildren[i]  == pid) {
       for (j=i; j<Mycp-1; j++) {        for (j=i; j<Mycp-1; j++) {
Line 112  struct object Kextension(struct object obj)
Line 113  struct object Kextension(struct object obj)
   FILE *fp;    FILE *fp;
   void (*oldsig)();    void (*oldsig)();
   extern SecureMode;    extern SecureMode;
     extern char *UD_str;
     extern int UD_attr;
   
   if (obj.tag != Sarray) errorKan1("%s\n","Kextension(): The argument must be an array.");    if (obj.tag != Sarray) errorKan1("%s\n","Kextension(): The argument must be an array.");
   size = getoaSize(obj);    size = getoaSize(obj);
Line 319  struct object Kextension(struct object obj)
Line 322  struct object Kextension(struct object obj)
       errorKan1("%s\n","The number must be 0, 1 or 2.");        errorKan1("%s\n","The number must be 0, 1 or 2.");
     putUserDictionary2(obj2.lc.str,(obj2.rc.op->lc).ival,(obj2.rc.op->rc).ival,      putUserDictionary2(obj2.lc.str,(obj2.rc.op->lc).ival,(obj2.rc.op->rc).ival,
                        m,CurrentContextp->userDictionary);                         m,CurrentContextp->userDictionary);
     }else if (strcmp(key,"getattr")==0) {
       if (size != 2) errorKan1("%s\n","[(getattr) symbol] extension.");
       obj1 = getoa(obj,1);
       if (obj1.tag != Sstring)  errorKan1("%s\n","[(getattr) symbol] extension.");
       rob = KfindUserDictionary(obj1.lc.str);
           if (rob.tag != NoObject.tag) {
             if (strcmp(UD_str,obj1.lc.str) == 0) {
                   rob = KpoInteger(UD_attr);
             }else errorKan1("%s\n","getattr: internal error.");
           }else rob = NullObject;
   }else if (strcmp(key,"getServerEnv")==0) {    }else if (strcmp(key,"getServerEnv")==0) {
     if (size != 2) errorKan1("%s\n","[(getServerEnv) serverName] extension.");      if (size != 2) errorKan1("%s\n","[(getServerEnv) serverName] extension.");
     obj1 = getoa(obj,1);      obj1 = getoa(obj,1);

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.27

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