comparison src/vmsfns.c @ 16:0293115a14e9 r19-15b91

Import from CVS: tag r19-15b91
author cvs
date Mon, 13 Aug 2007 08:49:20 +0200
parents 376386a54a3c
children 859a2309aef8
comparison
equal deleted inserted replaced
15:ad457d5f7d04 16:0293115a14e9
372 CHECK_INT (name); 372 CHECK_INT (name);
373 CHECK_STRING (command); 373 CHECK_STRING (command);
374 for (ptr = process_list; ptr; ptr = ptr->next) 374 for (ptr = process_list; ptr; ptr = ptr->next)
375 if (XINT (name) == ptr->name) 375 if (XINT (name) == ptr->name)
376 { 376 {
377 write_to_mbx (ptr, string_data (XSTRING (command)), 377 write_to_mbx (ptr, XSTRING_DATA (command), XSTRING_LENGTH (command));
378 string_length (XSTRING (command)));
379 return Qt; 378 return Qt;
380 } 379 }
381 return Qnil; 380 return Qnil;
382 } 381 }
383 382
590 int found, i; 589 int found, i;
591 struct privilege_list * ptr; 590 struct privilege_list * ptr;
592 591
593 CHECK_STRING (priv); 592 CHECK_STRING (priv);
594 priv = Fupcase (priv, Fcurrent_buffer ()); 593 priv = Fupcase (priv, Fcurrent_buffer ());
595 prvname = string_data (XSTRING (priv)); 594 prvname = XSTRING_DATA (priv);
596 prvlen = string_length (XSTRING (priv)); 595 prvlen = XSTRING_LENGTH (priv);
597 found = 0; 596 found = 0;
598 prvmask[0] = 0; 597 prvmask[0] = 0;
599 prvmask[1] = 0; 598 prvmask[1] = 0;
600 for (i = 0; i < sizeof (priv_list) / sizeof (priv_list[0]); i++) 599 for (i = 0; i < sizeof (priv_list) / sizeof (priv_list[0]); i++)
601 { 600 {
610 found = 1; 609 found = 1;
611 break; 610 break;
612 } 611 }
613 } 612 }
614 if (! found) 613 if (! found)
615 error ("Unknown privilege name %s", string_data (XSTRING (priv))); 614 error ("Unknown privilege name %s", XSTRING_DATA (priv));
616 if (NILP (getprv)) 615 if (NILP (getprv))
617 { 616 {
618 if (sys$setprv (NILP (value) ? 0 : 1, prvmask, 0, 0) == SS$_NORMAL) 617 if (sys$setprv (NILP (value) ? 0 : 1, prvmask, 0, 0) == SS$_NORMAL)
619 return Qt; 618 return Qt;
620 return Qnil; 619 return Qnil;
662 char * typename; 661 char * typename;
663 struct vms_objlist * ptr; 662 struct vms_objlist * ptr;
664 663
665 CHECK_STRING (type); 664 CHECK_STRING (type);
666 type = Fupcase (type, Fcurrent_buffer ()); 665 type = Fupcase (type, Fcurrent_buffer ());
667 typename = string_data (XSTRING (type)); 666 typename = XSTRING_DATA (type);
668 typelen = string_length (XSTRING (type)); 667 typelen = XSTRING_LENGTH (type);
669 for (i = 0; i < sizeof (vms_object) / sizeof (vms_object[0]); i++) 668 for (i = 0; i < sizeof (vms_object) / sizeof (vms_object[0]); i++)
670 { 669 {
671 ptr = &vms_object[i]; 670 ptr = &vms_object[i];
672 if (typelen == strlen (ptr->name) 671 if (typelen == strlen (ptr->name)
673 && memcpy (typename, ptr->name, typelen) == 0) 672 && memcpy (typename, ptr->name, typelen) == 0)
686 int status, code, id, i, numeric, size; 685 int status, code, id, i, numeric, size;
687 Bufbyte *p; 686 Bufbyte *p;
688 int prcnam[2]; 687 int prcnam[2];
689 688
690 if (NILP (pid) 689 if (NILP (pid)
691 || STRINGP (pid) && string_length (XSTRING (pid)) == 0 690 || STRINGP (pid) && XSTRING_LENGTH (pid) == 0
692 || ZEROP (pid)) 691 || ZEROP (pid))
693 { 692 {
694 code = owner ? JPI$_OWNER : JPI$_PID; 693 code = owner ? JPI$_OWNER : JPI$_PID;
695 status = lib$getjpi (&code, 0, 0, &id); 694 status = lib$getjpi (&code, 0, 0, &id);
696 if (! (status & 1)) 695 if (! (status & 1))
701 } 700 }
702 if (INTP (pid)) 701 if (INTP (pid))
703 return (XINT (pid)); 702 return (XINT (pid));
704 CHECK_STRING (pid); 703 CHECK_STRING (pid);
705 pid = Fupcase (pid, Fcurrent_buffer ()); 704 pid = Fupcase (pid, Fcurrent_buffer ());
706 size = string_length (XSTRING (pid)); 705 size = XSTRING_LENGTH (pid);
707 p = string_data (XSTRING (pid)); 706 p = XSTRING_DATA (pid);
708 numeric = 1; 707 numeric = 1;
709 id = 0; 708 id = 0;
710 for (i = 0; i < size; i++, p++) 709 for (i = 0; i < size; i++, p++)
711 if (isxdigit (*p)) 710 if (isxdigit (*p))
712 { 711 {
721 numeric = 0; 720 numeric = 0;
722 break; 721 break;
723 } 722 }
724 if (numeric) 723 if (numeric)
725 return (id); 724 return (id);
726 prcnam[0] = string_length (XSTRING (pid)); 725 prcnam[0] = XSTRING_LENGTH (pid);
727 prcnam[1] = string_data (XSTRING (pid)); 726 prcnam[1] = XSTRING_DATA (pid);
728 status = lib$getjpi (&JPI$_PID, 0, prcnam, &id); 727 status = lib$getjpi (&JPI$_PID, 0, prcnam, &id);
729 if (! (status & 1)) 728 if (! (status & 1))
730 error ("Cannot find process id: %s", 729 error ("Cannot find process id: %s",
731 vmserrstr (status)); 730 vmserrstr (status));
732 return (id); 731 return (id);
862 int status, symdsc[2]; 861 int status, symdsc[2];
863 int strdsc[2] = { sizeof (str), str }; 862 int strdsc[2] = { sizeof (str), str };
864 short length, level; 863 short length, level;
865 864
866 CHECK_STRING (arg1); 865 CHECK_STRING (arg1);
867 symdsc[0] = string_length (XSTRING (arg1)); 866 symdsc[0] = XSTRING_LENGTH (arg1);
868 symdsc[1] = string_data (XSTRING (arg1)); 867 symdsc[1] = XSTRING_DATA (arg1);
869 status = lib$sys_trnlog (symdsc, &length, strdsc); 868 status = lib$sys_trnlog (symdsc, &length, strdsc);
870 if (! (status & 1)) 869 if (! (status & 1))
871 error ("Unable to translate logical name: %s", vmserrstr (status)); 870 error ("Unable to translate logical name: %s", vmserrstr (status));
872 if (status == SS$_NOTRAN) 871 if (status == SS$_NOTRAN)
873 return (Qnil); 872 return (Qnil);
882 int status, symdsc[2]; 881 int status, symdsc[2];
883 int strdsc[2] = { sizeof (str), str }; 882 int strdsc[2] = { sizeof (str), str };
884 short length, level; 883 short length, level;
885 884
886 CHECK_STRING (arg1); 885 CHECK_STRING (arg1);
887 symdsc[0] = string_length (XSTRING (arg1)); 886 symdsc[0] = XSTRING_LENGTH (arg1);
888 symdsc[1] = string_data (XSTRING (arg1)); 887 symdsc[1] = XSTRING_DATA (arg1);
889 status = lib$get_symbol (symdsc, strdsc, &length, &level); 888 status = lib$get_symbol (symdsc, strdsc, &length, &level);
890 if (! (status & 1)) { 889 if (! (status & 1)) {
891 if (status == LIB$_NOSUCHSYM) 890 if (status == LIB$_NOSUCHSYM)
892 return (Qnil); 891 return (Qnil);
893 else 892 else