comparison src/process.c @ 40656:cdfd4d09b79a

Update usage of CHECK_ macros (remove unused second argument).
author Pavel Janík <Pavel@Janik.cz>
date Fri, 02 Nov 2001 20:46:55 +0000
parents d94fc1022312
children 0028402ed7d1
comparison
equal deleted inserted replaced
40655:45453187feeb 40656:cdfd4d09b79a
491 (name) 491 (name)
492 register Lisp_Object name; 492 register Lisp_Object name;
493 { 493 {
494 if (PROCESSP (name)) 494 if (PROCESSP (name))
495 return name; 495 return name;
496 CHECK_STRING (name, 0); 496 CHECK_STRING (name);
497 return Fcdr (Fassoc (name, Vprocess_alist)); 497 return Fcdr (Fassoc (name, Vprocess_alist));
498 } 498 }
499 499
500 DEFUN ("get-buffer-process", Fget_buffer_process, Sget_buffer_process, 1, 1, 0, 500 DEFUN ("get-buffer-process", Fget_buffer_process, Sget_buffer_process, 1, 1, 0,
501 doc: /* Return the (or a) process associated with BUFFER. 501 doc: /* Return the (or a) process associated with BUFFER.
549 if (NILP (proc)) 549 if (NILP (proc))
550 error ("Buffer %s has no process", XSTRING (XBUFFER (obj)->name)->data); 550 error ("Buffer %s has no process", XSTRING (XBUFFER (obj)->name)->data);
551 } 551 }
552 else 552 else
553 { 553 {
554 CHECK_PROCESS (obj, 0); 554 CHECK_PROCESS (obj);
555 proc = obj; 555 proc = obj;
556 } 556 }
557 return proc; 557 return proc;
558 } 558 }
559 559
632 doc: /* Return the exit status of PROCESS or the signal number that killed it. 632 doc: /* Return the exit status of PROCESS or the signal number that killed it.
633 If PROCESS has not yet exited or died, return 0. */) 633 If PROCESS has not yet exited or died, return 0. */)
634 (process) 634 (process)
635 register Lisp_Object process; 635 register Lisp_Object process;
636 { 636 {
637 CHECK_PROCESS (process, 0); 637 CHECK_PROCESS (process);
638 if (!NILP (XPROCESS (process)->raw_status_low)) 638 if (!NILP (XPROCESS (process)->raw_status_low))
639 update_status (XPROCESS (process)); 639 update_status (XPROCESS (process));
640 if (CONSP (XPROCESS (process)->status)) 640 if (CONSP (XPROCESS (process)->status))
641 return XCAR (XCDR (XPROCESS (process)->status)); 641 return XCAR (XCDR (XPROCESS (process)->status));
642 return make_number (0); 642 return make_number (0);
647 This is the pid of the Unix process which PROCESS uses or talks to. 647 This is the pid of the Unix process which PROCESS uses or talks to.
648 For a network connection, this value is nil. */) 648 For a network connection, this value is nil. */)
649 (process) 649 (process)
650 register Lisp_Object process; 650 register Lisp_Object process;
651 { 651 {
652 CHECK_PROCESS (process, 0); 652 CHECK_PROCESS (process);
653 return XPROCESS (process)->pid; 653 return XPROCESS (process)->pid;
654 } 654 }
655 655
656 DEFUN ("process-name", Fprocess_name, Sprocess_name, 1, 1, 0, 656 DEFUN ("process-name", Fprocess_name, Sprocess_name, 1, 1, 0,
657 doc: /* Return the name of PROCESS, as a string. 657 doc: /* Return the name of PROCESS, as a string.
658 This is the name of the program invoked in PROCESS, 658 This is the name of the program invoked in PROCESS,
659 possibly modified to make it unique among process names. */) 659 possibly modified to make it unique among process names. */)
660 (process) 660 (process)
661 register Lisp_Object process; 661 register Lisp_Object process;
662 { 662 {
663 CHECK_PROCESS (process, 0); 663 CHECK_PROCESS (process);
664 return XPROCESS (process)->name; 664 return XPROCESS (process)->name;
665 } 665 }
666 666
667 DEFUN ("process-command", Fprocess_command, Sprocess_command, 1, 1, 0, 667 DEFUN ("process-command", Fprocess_command, Sprocess_command, 1, 1, 0,
668 doc: /* Return the command that was executed to start PROCESS. 668 doc: /* Return the command that was executed to start PROCESS.
670 and the rest of the strings being the arguments given to it. 670 and the rest of the strings being the arguments given to it.
671 For a non-child channel, this is nil. */) 671 For a non-child channel, this is nil. */)
672 (process) 672 (process)
673 register Lisp_Object process; 673 register Lisp_Object process;
674 { 674 {
675 CHECK_PROCESS (process, 0); 675 CHECK_PROCESS (process);
676 return XPROCESS (process)->command; 676 return XPROCESS (process)->command;
677 } 677 }
678 678
679 DEFUN ("process-tty-name", Fprocess_tty_name, Sprocess_tty_name, 1, 1, 0, 679 DEFUN ("process-tty-name", Fprocess_tty_name, Sprocess_tty_name, 1, 1, 0,
680 doc: /* Return the name of the terminal PROCESS uses, or nil if none. 680 doc: /* Return the name of the terminal PROCESS uses, or nil if none.
681 This is the terminal that the process itself reads and writes on, 681 This is the terminal that the process itself reads and writes on,
682 not the name of the pty that Emacs uses to talk with that terminal. */) 682 not the name of the pty that Emacs uses to talk with that terminal. */)
683 (process) 683 (process)
684 register Lisp_Object process; 684 register Lisp_Object process;
685 { 685 {
686 CHECK_PROCESS (process, 0); 686 CHECK_PROCESS (process);
687 return XPROCESS (process)->tty_name; 687 return XPROCESS (process)->tty_name;
688 } 688 }
689 689
690 DEFUN ("set-process-buffer", Fset_process_buffer, Sset_process_buffer, 690 DEFUN ("set-process-buffer", Fset_process_buffer, Sset_process_buffer,
691 2, 2, 0, 691 2, 2, 0,
692 doc: /* Set buffer associated with PROCESS to BUFFER (a buffer, or nil). */) 692 doc: /* Set buffer associated with PROCESS to BUFFER (a buffer, or nil). */)
693 (process, buffer) 693 (process, buffer)
694 register Lisp_Object process, buffer; 694 register Lisp_Object process, buffer;
695 { 695 {
696 CHECK_PROCESS (process, 0); 696 CHECK_PROCESS (process);
697 if (!NILP (buffer)) 697 if (!NILP (buffer))
698 CHECK_BUFFER (buffer, 1); 698 CHECK_BUFFER (buffer);
699 XPROCESS (process)->buffer = buffer; 699 XPROCESS (process)->buffer = buffer;
700 return buffer; 700 return buffer;
701 } 701 }
702 702
703 DEFUN ("process-buffer", Fprocess_buffer, Sprocess_buffer, 703 DEFUN ("process-buffer", Fprocess_buffer, Sprocess_buffer,
705 doc: /* Return the buffer PROCESS is associated with. 705 doc: /* Return the buffer PROCESS is associated with.
706 Output from PROCESS is inserted in this buffer unless PROCESS has a filter. */) 706 Output from PROCESS is inserted in this buffer unless PROCESS has a filter. */)
707 (process) 707 (process)
708 register Lisp_Object process; 708 register Lisp_Object process;
709 { 709 {
710 CHECK_PROCESS (process, 0); 710 CHECK_PROCESS (process);
711 return XPROCESS (process)->buffer; 711 return XPROCESS (process)->buffer;
712 } 712 }
713 713
714 DEFUN ("process-mark", Fprocess_mark, Sprocess_mark, 714 DEFUN ("process-mark", Fprocess_mark, Sprocess_mark,
715 1, 1, 0, 715 1, 1, 0,
716 doc: /* Return the marker for the end of the last output from PROCESS. */) 716 doc: /* Return the marker for the end of the last output from PROCESS. */)
717 (process) 717 (process)
718 register Lisp_Object process; 718 register Lisp_Object process;
719 { 719 {
720 CHECK_PROCESS (process, 0); 720 CHECK_PROCESS (process);
721 return XPROCESS (process)->mark; 721 return XPROCESS (process)->mark;
722 } 722 }
723 723
724 DEFUN ("set-process-filter", Fset_process_filter, Sset_process_filter, 724 DEFUN ("set-process-filter", Fset_process_filter, Sset_process_filter,
725 2, 2, 0, 725 2, 2, 0,
732 (process, filter) 732 (process, filter)
733 register Lisp_Object process, filter; 733 register Lisp_Object process, filter;
734 { 734 {
735 struct Lisp_Process *p; 735 struct Lisp_Process *p;
736 736
737 CHECK_PROCESS (process, 0); 737 CHECK_PROCESS (process);
738 p = XPROCESS (process); 738 p = XPROCESS (process);
739 739
740 /* Don't signal an error if the process' input file descriptor 740 /* Don't signal an error if the process' input file descriptor
741 is closed. This could make debugging Lisp more difficult, 741 is closed. This could make debugging Lisp more difficult,
742 for example when doing something like 742 for example when doing something like
768 doc: /* Returns the filter function of PROCESS; nil if none. 768 doc: /* Returns the filter function of PROCESS; nil if none.
769 See `set-process-filter' for more info on filter functions. */) 769 See `set-process-filter' for more info on filter functions. */)
770 (process) 770 (process)
771 register Lisp_Object process; 771 register Lisp_Object process;
772 { 772 {
773 CHECK_PROCESS (process, 0); 773 CHECK_PROCESS (process);
774 return XPROCESS (process)->filter; 774 return XPROCESS (process)->filter;
775 } 775 }
776 776
777 DEFUN ("set-process-sentinel", Fset_process_sentinel, Sset_process_sentinel, 777 DEFUN ("set-process-sentinel", Fset_process_sentinel, Sset_process_sentinel,
778 2, 2, 0, 778 2, 2, 0,
780 The sentinel is called as a function when the process changes state. 780 The sentinel is called as a function when the process changes state.
781 It gets two arguments: the process, and a string describing the change. */) 781 It gets two arguments: the process, and a string describing the change. */)
782 (process, sentinel) 782 (process, sentinel)
783 register Lisp_Object process, sentinel; 783 register Lisp_Object process, sentinel;
784 { 784 {
785 CHECK_PROCESS (process, 0); 785 CHECK_PROCESS (process);
786 XPROCESS (process)->sentinel = sentinel; 786 XPROCESS (process)->sentinel = sentinel;
787 return sentinel; 787 return sentinel;
788 } 788 }
789 789
790 DEFUN ("process-sentinel", Fprocess_sentinel, Sprocess_sentinel, 790 DEFUN ("process-sentinel", Fprocess_sentinel, Sprocess_sentinel,
792 doc: /* Return the sentinel of PROCESS; nil if none. 792 doc: /* Return the sentinel of PROCESS; nil if none.
793 See `set-process-sentinel' for more info on sentinels. */) 793 See `set-process-sentinel' for more info on sentinels. */)
794 (process) 794 (process)
795 register Lisp_Object process; 795 register Lisp_Object process;
796 { 796 {
797 CHECK_PROCESS (process, 0); 797 CHECK_PROCESS (process);
798 return XPROCESS (process)->sentinel; 798 return XPROCESS (process)->sentinel;
799 } 799 }
800 800
801 DEFUN ("set-process-window-size", Fset_process_window_size, 801 DEFUN ("set-process-window-size", Fset_process_window_size,
802 Sset_process_window_size, 3, 3, 0, 802 Sset_process_window_size, 3, 3, 0,
803 doc: /* Tell PROCESS that it has logical window size HEIGHT and WIDTH. */) 803 doc: /* Tell PROCESS that it has logical window size HEIGHT and WIDTH. */)
804 (process, height, width) 804 (process, height, width)
805 register Lisp_Object process, height, width; 805 register Lisp_Object process, height, width;
806 { 806 {
807 CHECK_PROCESS (process, 0); 807 CHECK_PROCESS (process);
808 CHECK_NATNUM (height, 0); 808 CHECK_NATNUM (height);
809 CHECK_NATNUM (width, 0); 809 CHECK_NATNUM (width);
810 810
811 if (XINT (XPROCESS (process)->infd) < 0 811 if (XINT (XPROCESS (process)->infd) < 0
812 || set_window_size (XINT (XPROCESS (process)->infd), 812 || set_window_size (XINT (XPROCESS (process)->infd),
813 XINT (height), XINT (width)) <= 0) 813 XINT (height), XINT (width)) <= 0)
814 return Qnil; 814 return Qnil;
834 starting the process is an alternative way of setting the inherit flag 834 starting the process is an alternative way of setting the inherit flag
835 for the process which will run. */) 835 for the process which will run. */)
836 (process, flag) 836 (process, flag)
837 register Lisp_Object process, flag; 837 register Lisp_Object process, flag;
838 { 838 {
839 CHECK_PROCESS (process, 0); 839 CHECK_PROCESS (process);
840 XPROCESS (process)->inherit_coding_system_flag = flag; 840 XPROCESS (process)->inherit_coding_system_flag = flag;
841 return flag; 841 return flag;
842 } 842 }
843 843
844 DEFUN ("process-inherit-coding-system-flag", 844 DEFUN ("process-inherit-coding-system-flag",
849 associated with PROCESS will inherit the coding system used to decode 849 associated with PROCESS will inherit the coding system used to decode
850 the process output. */) 850 the process output. */)
851 (process) 851 (process)
852 register Lisp_Object process; 852 register Lisp_Object process;
853 { 853 {
854 CHECK_PROCESS (process, 0); 854 CHECK_PROCESS (process);
855 return XPROCESS (process)->inherit_coding_system_flag; 855 return XPROCESS (process)->inherit_coding_system_flag;
856 } 856 }
857 857
858 DEFUN ("process-kill-without-query", Fprocess_kill_without_query, 858 DEFUN ("process-kill-without-query", Fprocess_kill_without_query,
859 Sprocess_kill_without_query, 1, 2, 0, 859 Sprocess_kill_without_query, 1, 2, 0,
863 (process, value) 863 (process, value)
864 register Lisp_Object process, value; 864 register Lisp_Object process, value;
865 { 865 {
866 Lisp_Object tem; 866 Lisp_Object tem;
867 867
868 CHECK_PROCESS (process, 0); 868 CHECK_PROCESS (process);
869 tem = XPROCESS (process)->kill_without_query; 869 tem = XPROCESS (process)->kill_without_query;
870 XPROCESS (process)->kill_without_query = Fnull (value); 870 XPROCESS (process)->kill_without_query = Fnull (value);
871 871
872 return Fnull (tem); 872 return Fnull (tem);
873 } 873 }
877 doc: /* Return the contact info of PROCESS; t for a real child. 877 doc: /* Return the contact info of PROCESS; t for a real child.
878 For a net connection, the value is a cons cell of the form (HOST SERVICE). */) 878 For a net connection, the value is a cons cell of the form (HOST SERVICE). */)
879 (process) 879 (process)
880 register Lisp_Object process; 880 register Lisp_Object process;
881 { 881 {
882 CHECK_PROCESS (process, 0); 882 CHECK_PROCESS (process);
883 return XPROCESS (process)->childp; 883 return XPROCESS (process)->childp;
884 } 884 }
885 885
886 #if 0 /* Turned off because we don't currently record this info 886 #if 0 /* Turned off because we don't currently record this info
887 in the process. Perhaps add it. */ 887 in the process. Perhaps add it. */
1088 1088
1089 UNGCPRO; 1089 UNGCPRO;
1090 } 1090 }
1091 1091
1092 name = args[0]; 1092 name = args[0];
1093 CHECK_STRING (name, 0); 1093 CHECK_STRING (name);
1094 1094
1095 program = args[2]; 1095 program = args[2];
1096 1096
1097 CHECK_STRING (program, 2); 1097 CHECK_STRING (program);
1098 1098
1099 proc = make_process (name); 1099 proc = make_process (name);
1100 /* If an error occurs and we can't start the process, we want to 1100 /* If an error occurs and we can't start the process, we want to
1101 remove it from the process list. This means that each error 1101 remove it from the process list. This means that each error
1102 check in create_process doesn't need to call remove_process 1102 check in create_process doesn't need to call remove_process
1167 together separated by a blank. */ 1167 together separated by a blank. */
1168 len = STRING_BYTES (XSTRING (program)) + 2; 1168 len = STRING_BYTES (XSTRING (program)) + 2;
1169 for (i = 3; i < nargs; i++) 1169 for (i = 3; i < nargs; i++)
1170 { 1170 {
1171 tem = args[i]; 1171 tem = args[i];
1172 CHECK_STRING (tem, i); 1172 CHECK_STRING (tem);
1173 len += STRING_BYTES (XSTRING (tem)) + 1; /* count the blank */ 1173 len += STRING_BYTES (XSTRING (tem)) + 1; /* count the blank */
1174 } 1174 }
1175 new_argv = (unsigned char *) alloca (len); 1175 new_argv = (unsigned char *) alloca (len);
1176 strcpy (new_argv, XSTRING (program)->data); 1176 strcpy (new_argv, XSTRING (program)->data);
1177 for (i = 3; i < nargs; i++) 1177 for (i = 3; i < nargs; i++)
1178 { 1178 {
1179 tem = args[i]; 1179 tem = args[i];
1180 CHECK_STRING (tem, i); 1180 CHECK_STRING (tem);
1181 strcat (new_argv, " "); 1181 strcat (new_argv, " ");
1182 strcat (new_argv, XSTRING (tem)->data); 1182 strcat (new_argv, XSTRING (tem)->data);
1183 } 1183 }
1184 /* Need to add code here to check for program existence on VMS */ 1184 /* Need to add code here to check for program existence on VMS */
1185 1185
1218 process. */ 1218 process. */
1219 1219
1220 for (i = 3; i < nargs; i++) 1220 for (i = 3; i < nargs; i++)
1221 { 1221 {
1222 tem = args[i]; 1222 tem = args[i];
1223 CHECK_STRING (tem, i); 1223 CHECK_STRING (tem);
1224 if (STRING_MULTIBYTE (tem)) 1224 if (STRING_MULTIBYTE (tem))
1225 tem = (code_convert_string_norecord 1225 tem = (code_convert_string_norecord
1226 (tem, XPROCESS (proc)->encode_coding_system, 1)); 1226 (tem, XPROCESS (proc)->encode_coding_system, 1));
1227 new_argv[i - 2] = XSTRING (tem)->data; 1227 new_argv[i - 2] = XSTRING (tem)->data;
1228 } 1228 }
1782 /* Ensure socket support is loaded if available. */ 1782 /* Ensure socket support is loaded if available. */
1783 init_winsock (TRUE); 1783 init_winsock (TRUE);
1784 #endif 1784 #endif
1785 1785
1786 GCPRO4 (name, buffer, host, service); 1786 GCPRO4 (name, buffer, host, service);
1787 CHECK_STRING (name, 0); 1787 CHECK_STRING (name);
1788 CHECK_STRING (host, 0); 1788 CHECK_STRING (host);
1789 1789
1790 #ifdef HAVE_GETADDRINFO 1790 #ifdef HAVE_GETADDRINFO
1791 /* SERVICE can either be a string or int. 1791 /* SERVICE can either be a string or int.
1792 Convert to a C string for later use by getaddrinfo. */ 1792 Convert to a C string for later use by getaddrinfo. */
1793 if (INTEGERP (service)) 1793 if (INTEGERP (service))
1795 sprintf (portbuf, "%ld", (long) XINT (service)); 1795 sprintf (portbuf, "%ld", (long) XINT (service));
1796 portstring = portbuf; 1796 portstring = portbuf;
1797 } 1797 }
1798 else 1798 else
1799 { 1799 {
1800 CHECK_STRING (service, 0); 1800 CHECK_STRING (service);
1801 portstring = XSTRING (service)->data; 1801 portstring = XSTRING (service)->data;
1802 } 1802 }
1803 #else /* HAVE_GETADDRINFO */ 1803 #else /* HAVE_GETADDRINFO */
1804 if (INTEGERP (service)) 1804 if (INTEGERP (service))
1805 port = htons ((unsigned short) XINT (service)); 1805 port = htons ((unsigned short) XINT (service));
1806 else 1806 else
1807 { 1807 {
1808 CHECK_STRING (service, 0); 1808 CHECK_STRING (service);
1809 svc_info = getservbyname (XSTRING (service)->data, "tcp"); 1809 svc_info = getservbyname (XSTRING (service)->data, "tcp");
1810 if (svc_info == 0) 1810 if (svc_info == 0)
1811 error ("Unknown service \"%s\"", XSTRING (service)->data); 1811 error ("Unknown service \"%s\"", XSTRING (service)->data);
1812 port = svc_info->s_port; 1812 port = svc_info->s_port;
1813 } 1813 }
2248 { 2248 {
2249 int seconds; 2249 int seconds;
2250 int useconds; 2250 int useconds;
2251 2251
2252 if (! NILP (process)) 2252 if (! NILP (process))
2253 CHECK_PROCESS (process, 0); 2253 CHECK_PROCESS (process);
2254 2254
2255 if (! NILP (timeout_msecs)) 2255 if (! NILP (timeout_msecs))
2256 { 2256 {
2257 CHECK_NUMBER (timeout_msecs, 2); 2257 CHECK_NUMBER (timeout_msecs);
2258 useconds = XINT (timeout_msecs); 2258 useconds = XINT (timeout_msecs);
2259 if (!INTEGERP (timeout)) 2259 if (!INTEGERP (timeout))
2260 XSETINT (timeout, 0); 2260 XSETINT (timeout, 0);
2261 2261
2262 { 2262 {
2278 else 2278 else
2279 useconds = 0; 2279 useconds = 0;
2280 2280
2281 if (! NILP (timeout)) 2281 if (! NILP (timeout))
2282 { 2282 {
2283 CHECK_NUMBER (timeout, 1); 2283 CHECK_NUMBER (timeout);
2284 seconds = XINT (timeout); 2284 seconds = XINT (timeout);
2285 if (seconds < 0 || (seconds == 0 && useconds == 0)) 2285 if (seconds < 0 || (seconds == 0 && useconds == 0))
2286 seconds = -1; 2286 seconds = -1;
2287 } 2287 }
2288 else 2288 else
3559 Output from processes can arrive in between bunches. */) 3559 Output from processes can arrive in between bunches. */)
3560 (process, string) 3560 (process, string)
3561 Lisp_Object process, string; 3561 Lisp_Object process, string;
3562 { 3562 {
3563 Lisp_Object proc; 3563 Lisp_Object proc;
3564 CHECK_STRING (string, 1); 3564 CHECK_STRING (string);
3565 proc = get_process (process); 3565 proc = get_process (process);
3566 send_process (proc, XSTRING (string)->data, 3566 send_process (proc, XSTRING (string)->data,
3567 STRING_BYTES (XSTRING (string)), string); 3567 STRING_BYTES (XSTRING (string)), string);
3568 return Qnil; 3568 return Qnil;
3569 } 3569 }
3902 PID must be an integer. The process need not be a child of this Emacs. 3902 PID must be an integer. The process need not be a child of this Emacs.
3903 SIGCODE may be an integer, or a symbol whose name is a signal name. */) 3903 SIGCODE may be an integer, or a symbol whose name is a signal name. */)
3904 (pid, sigcode) 3904 (pid, sigcode)
3905 Lisp_Object pid, sigcode; 3905 Lisp_Object pid, sigcode;
3906 { 3906 {
3907 CHECK_NUMBER (pid, 0); 3907 CHECK_NUMBER (pid);
3908 3908
3909 #define handle_signal(NAME, VALUE) \ 3909 #define handle_signal(NAME, VALUE) \
3910 else if (!strcmp (name, NAME)) \ 3910 else if (!strcmp (name, NAME)) \
3911 XSETINT (sigcode, VALUE) 3911 XSETINT (sigcode, VALUE)
3912 3912
3914 ; 3914 ;
3915 else 3915 else
3916 { 3916 {
3917 unsigned char *name; 3917 unsigned char *name;
3918 3918
3919 CHECK_SYMBOL (sigcode, 1); 3919 CHECK_SYMBOL (sigcode);
3920 name = XSYMBOL (sigcode)->name->data; 3920 name = XSYMBOL (sigcode)->name->data;
3921 3921
3922 if (0) 3922 if (0)
3923 ; 3923 ;
3924 #ifdef SIGHUP 3924 #ifdef SIGHUP
4514 (proc, decoding, encoding) 4514 (proc, decoding, encoding)
4515 register Lisp_Object proc, decoding, encoding; 4515 register Lisp_Object proc, decoding, encoding;
4516 { 4516 {
4517 register struct Lisp_Process *p; 4517 register struct Lisp_Process *p;
4518 4518
4519 CHECK_PROCESS (proc, 0); 4519 CHECK_PROCESS (proc);
4520 p = XPROCESS (proc); 4520 p = XPROCESS (proc);
4521 if (XINT (p->infd) < 0) 4521 if (XINT (p->infd) < 0)
4522 error ("Input file descriptor of %s closed", XSTRING (p->name)->data); 4522 error ("Input file descriptor of %s closed", XSTRING (p->name)->data);
4523 if (XINT (p->outfd) < 0) 4523 if (XINT (p->outfd) < 0)
4524 error ("Output file descriptor of %s closed", XSTRING (p->name)->data); 4524 error ("Output file descriptor of %s closed", XSTRING (p->name)->data);
4537 Fprocess_coding_system, Sprocess_coding_system, 1, 1, 0, 4537 Fprocess_coding_system, Sprocess_coding_system, 1, 1, 0,
4538 doc: /* Return a cons of coding systems for decoding and encoding of PROCESS. */) 4538 doc: /* Return a cons of coding systems for decoding and encoding of PROCESS. */)
4539 (proc) 4539 (proc)
4540 register Lisp_Object proc; 4540 register Lisp_Object proc;
4541 { 4541 {
4542 CHECK_PROCESS (proc, 0); 4542 CHECK_PROCESS (proc);
4543 return Fcons (XPROCESS (proc)->decode_coding_system, 4543 return Fcons (XPROCESS (proc)->decode_coding_system,
4544 XPROCESS (proc)->encode_coding_system); 4544 XPROCESS (proc)->encode_coding_system);
4545 } 4545 }
4546 4546
4547 /* The first time this is called, assume keyboard input comes from DESC 4547 /* The first time this is called, assume keyboard input comes from DESC