/[emacs]/emacs/src/process.c
ViewVC logotype

Diff of /emacs/src/process.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.375 by rms, Fri Jul 12 11:13:47 2002 UTC revision 1.376 by raeburn, Mon Jul 15 00:00:37 2002 UTC
# Line 419  status_message (status) Line 419  status_message (status)
419          signame = "unknown";          signame = "unknown";
420        string = build_string (signame);        string = build_string (signame);
421        string2 = build_string (coredump ? " (core dumped)\n" : "\n");        string2 = build_string (coredump ? " (core dumped)\n" : "\n");
422        XSTRING (string)->data[0] = DOWNCASE (XSTRING (string)->data[0]);        SREF (string, 0) = DOWNCASE (SREF (string, 0));
423        return concat2 (string, string2);        return concat2 (string, string2);
424      }      }
425    else if (EQ (symbol, Qexit))    else if (EQ (symbol, Qexit))
# Line 637  get_process (name) Line 637  get_process (name)
637        if (NILP (obj))        if (NILP (obj))
638          obj = Fget_buffer (name);          obj = Fget_buffer (name);
639        if (NILP (obj))        if (NILP (obj))
640          error ("Process %s does not exist", XSTRING (name)->data);          error ("Process %s does not exist", SDATA (name));
641      }      }
642    else if (NILP (name))    else if (NILP (name))
643      obj = Fcurrent_buffer ();      obj = Fcurrent_buffer ();
# Line 650  get_process (name) Line 650  get_process (name)
650      {      {
651        proc = Fget_buffer_process (obj);        proc = Fget_buffer_process (obj);
652        if (NILP (proc))        if (NILP (proc))
653          error ("Buffer %s has no process", XSTRING (XBUFFER (obj)->name)->data);          error ("Buffer %s has no process", SDATA (XBUFFER (obj)->name));
654      }      }
655    else    else
656      {      {
# Line 1070  list_processes_1 (query_only) Line 1070  list_processes_1 (query_only)
1070        if (!NILP (query_only) && !NILP (p->kill_without_query))        if (!NILP (query_only) && !NILP (p->kill_without_query))
1071          continue;          continue;
1072        if (STRINGP (p->name)        if (STRINGP (p->name)
1073            && ( i = XSTRING (p->name)->size, (i > w_proc)))            && ( i = SCHARS (p->name), (i > w_proc)))
1074          w_proc = i;          w_proc = i;
1075        if (!NILP (p->buffer))        if (!NILP (p->buffer))
1076          {          {
1077            if (NILP (XBUFFER (p->buffer)->name) && w_buffer < 8)            if (NILP (XBUFFER (p->buffer)->name) && w_buffer < 8)
1078              w_buffer = 8;  /* (Killed) */              w_buffer = 8;  /* (Killed) */
1079            else if ((i = XSTRING (XBUFFER (p->buffer)->name)->size, (i > w_buffer)))            else if ((i = SCHARS (XBUFFER (p->buffer)->name), (i > w_buffer)))
1080              w_buffer = i;              w_buffer = i;
1081          }          }
1082        if (STRINGP (p->tty_name)        if (STRINGP (p->tty_name)
1083            && (i = XSTRING (p->tty_name)->size, (i > w_tty)))            && (i = SCHARS (p->tty_name), (i > w_tty)))
1084          w_tty = i;          w_tty = i;
1085      }      }
1086    
# Line 1206  list_processes_1 (query_only) Line 1206  list_processes_1 (query_only)
1206              port = Fnumber_to_string (port);              port = Fnumber_to_string (port);
1207            sprintf (tembuf, "(network %s server on %s)\n",            sprintf (tembuf, "(network %s server on %s)\n",
1208                     (DATAGRAM_CHAN_P (XINT (p->infd)) ? "datagram" : "stream"),                     (DATAGRAM_CHAN_P (XINT (p->infd)) ? "datagram" : "stream"),
1209                     XSTRING (port)->data);                     SDATA (port));
1210            insert_string (tembuf);            insert_string (tembuf);
1211          }          }
1212        else if (NETCONN1_P (p))        else if (NETCONN1_P (p))
# Line 1222  list_processes_1 (query_only) Line 1222  list_processes_1 (query_only)
1222              }              }
1223            sprintf (tembuf, "(network %s connection to %s)\n",            sprintf (tembuf, "(network %s connection to %s)\n",
1224                     (DATAGRAM_CHAN_P (XINT (p->infd)) ? "datagram" : "stream"),                     (DATAGRAM_CHAN_P (XINT (p->infd)) ? "datagram" : "stream"),
1225                     XSTRING (host)->data);                     SDATA (host));
1226            insert_string (tembuf);            insert_string (tembuf);
1227          }          }
1228        else        else
# Line 1400  usage: (start-process NAME BUFFER PROGRA Line 1400  usage: (start-process NAME BUFFER PROGRA
1400  #ifdef VMS  #ifdef VMS
1401    /* Make a one member argv with all args concatenated    /* Make a one member argv with all args concatenated
1402       together separated by a blank.  */       together separated by a blank.  */
1403    len = STRING_BYTES (XSTRING (program)) + 2;    len = SBYTES (program) + 2;
1404    for (i = 3; i < nargs; i++)    for (i = 3; i < nargs; i++)
1405      {      {
1406        tem = args[i];        tem = args[i];
1407        CHECK_STRING (tem);        CHECK_STRING (tem);
1408        len += STRING_BYTES (XSTRING (tem)) + 1;  /* count the blank */        len += SBYTES (tem) + 1;  /* count the blank */
1409      }      }
1410    new_argv = (unsigned char *) alloca (len);    new_argv = (unsigned char *) alloca (len);
1411    strcpy (new_argv, XSTRING (program)->data);    strcpy (new_argv, SDATA (program));
1412    for (i = 3; i < nargs; i++)    for (i = 3; i < nargs; i++)
1413      {      {
1414        tem = args[i];        tem = args[i];
1415        CHECK_STRING (tem);        CHECK_STRING (tem);
1416        strcat (new_argv, " ");        strcat (new_argv, " ");
1417        strcat (new_argv, XSTRING (tem)->data);        strcat (new_argv, SDATA (tem));
1418      }      }
1419    /* Need to add code here to check for program existence on VMS */    /* Need to add code here to check for program existence on VMS */
1420        
# Line 1422  usage: (start-process NAME BUFFER PROGRA Line 1422  usage: (start-process NAME BUFFER PROGRA
1422    new_argv = (unsigned char **) alloca ((nargs - 1) * sizeof (char *));    new_argv = (unsigned char **) alloca ((nargs - 1) * sizeof (char *));
1423    
1424    /* If program file name is not absolute, search our path for it */    /* If program file name is not absolute, search our path for it */
1425    if (!IS_DIRECTORY_SEP (XSTRING (program)->data[0])    if (!IS_DIRECTORY_SEP (SREF (program, 0))
1426        && !(XSTRING (program)->size > 1        && !(SCHARS (program) > 1
1427             && IS_DEVICE_SEP (XSTRING (program)->data[1])))             && IS_DEVICE_SEP (SREF (program, 1))))
1428      {      {
1429        struct gcpro gcpro1, gcpro2, gcpro3, gcpro4;        struct gcpro gcpro1, gcpro2, gcpro3, gcpro4;
1430    
# Line 1436  usage: (start-process NAME BUFFER PROGRA Line 1436  usage: (start-process NAME BUFFER PROGRA
1436          report_file_error ("Searching for program", Fcons (program, Qnil));          report_file_error ("Searching for program", Fcons (program, Qnil));
1437        tem = Fexpand_file_name (tem, Qnil);        tem = Fexpand_file_name (tem, Qnil);
1438        tem = ENCODE_FILE (tem);        tem = ENCODE_FILE (tem);
1439        new_argv[0] = XSTRING (tem)->data;        new_argv[0] = SDATA (tem);
1440      }      }
1441    else    else
1442      {      {
# Line 1444  usage: (start-process NAME BUFFER PROGRA Line 1444  usage: (start-process NAME BUFFER PROGRA
1444          error ("Specified program for new process is a directory");          error ("Specified program for new process is a directory");
1445    
1446        tem = ENCODE_FILE (program);        tem = ENCODE_FILE (program);
1447        new_argv[0] = XSTRING (tem)->data;        new_argv[0] = SDATA (tem);
1448      }      }
1449    
1450    /* Here we encode arguments by the coding system used for sending    /* Here we encode arguments by the coding system used for sending
# Line 1459  usage: (start-process NAME BUFFER PROGRA Line 1459  usage: (start-process NAME BUFFER PROGRA
1459        if (STRING_MULTIBYTE (tem))        if (STRING_MULTIBYTE (tem))
1460          tem = (code_convert_string_norecord          tem = (code_convert_string_norecord
1461                 (tem, XPROCESS (proc)->encode_coding_system, 1));                 (tem, XPROCESS (proc)->encode_coding_system, 1));
1462        new_argv[i - 2] = XSTRING (tem)->data;        new_argv[i - 2] = SDATA (tem);
1463      }      }
1464    new_argv[i - 2] = 0;    new_argv[i - 2] = 0;
1465  #endif /* not VMS */  #endif /* not VMS */
# Line 2092  conv_lisp_to_sockaddr (family, address, Line 2092  conv_lisp_to_sockaddr (family, address,
2092        if (family == AF_LOCAL)        if (family == AF_LOCAL)
2093          {          {
2094            struct sockaddr_un *sockun = (struct sockaddr_un *) sa;            struct sockaddr_un *sockun = (struct sockaddr_un *) sa;
2095            cp = XSTRING (address)->data;            cp = SDATA (address);
2096            for (i = 0; i < sizeof (sockun->sun_path) && *cp; i++)            for (i = 0; i < sizeof (sockun->sun_path) && *cp; i++)
2097              sockun->sun_path[i] = *cp++;              sockun->sun_path[i] = *cp++;
2098          }          }
# Line 2232  set_socket_options (s, opts, no_error) Line 2232  set_socket_options (s, opts, no_error)
2232            opt = XCAR (opt);            opt = XCAR (opt);
2233          }          }
2234        if (STRINGP (opt))        if (STRINGP (opt))
2235          name = (char *) XSTRING (opt)->data;          name = (char *) SDATA (opt);
2236        else if (SYMBOLP (opt))        else if (SYMBOLP (opt))
2237          name = (char *) XSTRING (SYMBOL_NAME (opt))->data;          name = (char *) SDATA (SYMBOL_NAME (opt));
2238        else {        else {
2239          error ("Mal-formed option list");          error ("Mal-formed option list");
2240          return 0;          return 0;
# Line 2300  set_socket_options (s, opts, no_error) Line 2300  set_socket_options (s, opts, no_error)
2300                  if (NILP (val))                  if (NILP (val))
2301                    arg = "";                    arg = "";
2302                  else if (STRINGP (val))                  else if (STRINGP (val))
2303                    arg = (char *) XSTRING (val)->data;                    arg = (char *) SDATA (val);
2304                  else if (XSYMBOL (val))                  else if (XSYMBOL (val))
2305                    arg = (char *) XSTRING (SYMBOL_NAME (val))->data;                    arg = (char *) SDATA (SYMBOL_NAME (val));
2306                  else                  else
2307                    error ("Invalid argument to %s option", name);                    error ("Invalid argument to %s option", name);
2308                }                }
# Line 2632  usage: (make-network-process &rest ARGS) Line 2632  usage: (make-network-process &rest ARGS)
2632      {      {
2633        struct servent *svc_info;        struct servent *svc_info;
2634        CHECK_STRING (service);        CHECK_STRING (service);
2635        svc_info = getservbyname (XSTRING (service)->data, "tcp");        svc_info = getservbyname (SDATA (service), "tcp");
2636        if (svc_info == 0)        if (svc_info == 0)
2637          error ("Unknown service: %s", XSTRING (service)->data);          error ("Unknown service: %s", SDATA (service));
2638        port = svc_info->s_port;        port = svc_info->s_port;
2639      }      }
2640    
2641    s = connect_server (0);    s = connect_server (0);
2642    if (s < 0)    if (s < 0)
2643      report_file_error ("error creating socket", Fcons (name, Qnil));      report_file_error ("error creating socket", Fcons (name, Qnil));
2644    send_command (s, C_PORT, 0, "%s:%d", XSTRING (host)->data, ntohs (port));    send_command (s, C_PORT, 0, "%s:%d", SDATA (host), ntohs (port));
2645    send_command (s, C_DUMB, 1, 0);    send_command (s, C_DUMB, 1, 0);
2646    
2647  #else  /* not TERM */  #else  /* not TERM */
# Line 2694  usage: (make-network-process &rest ARGS) Line 2694  usage: (make-network-process &rest ARGS)
2694        CHECK_STRING (service);        CHECK_STRING (service);
2695        bzero (&address_un, sizeof address_un);        bzero (&address_un, sizeof address_un);
2696        address_un.sun_family = AF_LOCAL;        address_un.sun_family = AF_LOCAL;
2697        strncpy (address_un.sun_path, XSTRING (service)->data, sizeof address_un.sun_path);        strncpy (address_un.sun_path, SDATA (service), sizeof address_un.sun_path);
2698        ai.ai_addr = (struct sockaddr *) &address_un;        ai.ai_addr = (struct sockaddr *) &address_un;
2699        ai.ai_addrlen = sizeof address_un;        ai.ai_addrlen = sizeof address_un;
2700        goto open_socket;        goto open_socket;
# Line 2739  usage: (make-network-process &rest ARGS) Line 2739  usage: (make-network-process &rest ARGS)
2739        else        else
2740          {          {
2741            CHECK_STRING (service);            CHECK_STRING (service);
2742            portstring = XSTRING (service)->data;            portstring = SDATA (service);
2743          }          }
2744    
2745        immediate_quit = 1;        immediate_quit = 1;
# Line 2749  usage: (make-network-process &rest ARGS) Line 2749  usage: (make-network-process &rest ARGS)
2749        hints.ai_family = NILP (Fplist_member (contact, QCfamily)) ? AF_UNSPEC : family;        hints.ai_family = NILP (Fplist_member (contact, QCfamily)) ? AF_UNSPEC : family;
2750        hints.ai_socktype = socktype;        hints.ai_socktype = socktype;
2751        hints.ai_protocol = 0;        hints.ai_protocol = 0;
2752        ret = getaddrinfo (XSTRING (host)->data, portstring, &hints, &res);        ret = getaddrinfo (SDATA (host), portstring, &hints, &res);
2753        if (ret)        if (ret)
2754  #ifdef HAVE_GAI_STRERROR  #ifdef HAVE_GAI_STRERROR
2755          error ("%s/%s %s", XSTRING (host)->data, portstring, gai_strerror(ret));          error ("%s/%s %s", SDATA (host), portstring, gai_strerror(ret));
2756  #else  #else
2757          error ("%s/%s getaddrinfo error %d", XSTRING (host)->data, portstring, ret);          error ("%s/%s getaddrinfo error %d", SDATA (host), portstring, ret);
2758  #endif  #endif
2759        immediate_quit = 0;        immediate_quit = 0;
2760    
# Line 2773  usage: (make-network-process &rest ARGS) Line 2773  usage: (make-network-process &rest ARGS)
2773      {      {
2774        struct servent *svc_info;        struct servent *svc_info;
2775        CHECK_STRING (service);        CHECK_STRING (service);
2776        svc_info = getservbyname (XSTRING (service)->data,        svc_info = getservbyname (SDATA (service),
2777                                  (socktype == SOCK_DGRAM ? "udp" : "tcp"));                                  (socktype == SOCK_DGRAM ? "udp" : "tcp"));
2778        if (svc_info == 0)        if (svc_info == 0)
2779          error ("Unknown service: %s", XSTRING (service)->data);          error ("Unknown service: %s", SDATA (service));
2780        port = svc_info->s_port;        port = svc_info->s_port;
2781      }      }
2782    
# Line 2794  usage: (make-network-process &rest ARGS) Line 2794  usage: (make-network-process &rest ARGS)
2794           as it may `hang' emacs for a very long time.  */           as it may `hang' emacs for a very long time.  */
2795        immediate_quit = 1;        immediate_quit = 1;
2796        QUIT;        QUIT;
2797        host_info_ptr = gethostbyname (XSTRING (host)->data);        host_info_ptr = gethostbyname (SDATA (host));
2798        immediate_quit = 0;        immediate_quit = 0;
2799        
2800        if (host_info_ptr)        if (host_info_ptr)
# Line 2808  usage: (make-network-process &rest ARGS) Line 2808  usage: (make-network-process &rest ARGS)
2808          /* Attempt to interpret host as numeric inet address */          /* Attempt to interpret host as numeric inet address */
2809          {          {
2810            IN_ADDR numeric_addr;            IN_ADDR numeric_addr;
2811            numeric_addr = inet_addr ((char *) XSTRING (host)->data);            numeric_addr = inet_addr ((char *) SDATA (host));
2812            if (NUMERIC_ADDR_ERROR)            if (NUMERIC_ADDR_ERROR)
2813              error ("Unknown host \"%s\"", XSTRING (host)->data);              error ("Unknown host \"%s\"", SDATA (host));
2814    
2815            bcopy ((char *)&numeric_addr, (char *) &address_in.sin_addr,            bcopy ((char *)&numeric_addr, (char *) &address_in.sin_addr,
2816                   sizeof (address_in.sin_addr));                   sizeof (address_in.sin_addr));
# Line 4283  read_process_output (proc, channel) Line 4283  read_process_output (proc, channel)
4283           the tail of decoding buffer) should be prepended to the new           the tail of decoding buffer) should be prepended to the new
4284           data read to decode all together.  */           data read to decode all together.  */
4285        chars = (char *) alloca (nbytes + carryover);        chars = (char *) alloca (nbytes + carryover);
4286        bcopy (XSTRING (p->decoding_buf)->data, buf, carryover);        bcopy (SDATA (p->decoding_buf), buf, carryover);
4287        bcopy (vs->inputBuffer, chars + carryover, nbytes);        bcopy (vs->inputBuffer, chars + carryover, nbytes);
4288      }      }
4289  #else /* not VMS */  #else /* not VMS */
# Line 4301  read_process_output (proc, channel) Line 4301  read_process_output (proc, channel)
4301    chars = (char *) alloca (carryover + readmax);    chars = (char *) alloca (carryover + readmax);
4302    if (carryover)    if (carryover)
4303      /* See the comment above.  */      /* See the comment above.  */
4304      bcopy (XSTRING (p->decoding_buf)->data, chars, carryover);      bcopy (SDATA (p->decoding_buf), chars, carryover);
4305    
4306  #ifdef DATAGRAM_SOCKETS  #ifdef DATAGRAM_SOCKETS
4307    /* We have a working select, so proc_buffered_char is always -1.  */    /* We have a working select, so proc_buffered_char is always -1.  */
# Line 4414  read_process_output (proc, channel) Line 4414  read_process_output (proc, channel)
4414          }          }
4415    
4416        carryover = nbytes - coding->consumed;        carryover = nbytes - coding->consumed;
4417        bcopy (chars + coding->consumed, XSTRING (p->decoding_buf)->data,        bcopy (chars + coding->consumed, SDATA (p->decoding_buf),
4418               carryover);               carryover);
4419        XSETINT (p->decoding_carryover, carryover);        XSETINT (p->decoding_carryover, carryover);
4420        nbytes = STRING_BYTES (XSTRING (text));        nbytes = SBYTES (text);
4421        nchars = XSTRING (text)->size;        nchars = SCHARS (text);
4422        if (nbytes > 0)        if (nbytes > 0)
4423          internal_condition_case_1 (read_process_output_call,          internal_condition_case_1 (read_process_output_call,
4424                                     Fcons (outstream,                                     Fcons (outstream,
# Line 4515  read_process_output (proc, channel) Line 4515  read_process_output (proc, channel)
4515              }              }
4516          }          }
4517        carryover = nbytes - coding->consumed;        carryover = nbytes - coding->consumed;
4518        bcopy (chars + coding->consumed, XSTRING (p->decoding_buf)->data,        bcopy (chars + coding->consumed, SDATA (p->decoding_buf),
4519               carryover);               carryover);
4520        XSETINT (p->decoding_carryover, carryover);        XSETINT (p->decoding_carryover, carryover);
4521        /* Adjust the multibyteness of TEXT to that of the buffer.  */        /* Adjust the multibyteness of TEXT to that of the buffer.  */
# Line 4524  read_process_output (proc, channel) Line 4524  read_process_output (proc, channel)
4524          text = (STRING_MULTIBYTE (text)          text = (STRING_MULTIBYTE (text)
4525                  ? Fstring_as_unibyte (text)                  ? Fstring_as_unibyte (text)
4526                  : Fstring_as_multibyte (text));                  : Fstring_as_multibyte (text));
4527        nbytes = STRING_BYTES (XSTRING (text));        nbytes = SBYTES (text);
4528        nchars = XSTRING (text)->size;        nchars = SCHARS (text);
4529        /* Insert before markers in case we are inserting where        /* Insert before markers in case we are inserting where
4530           the buffer's mark is, and the user's next command is Meta-y.  */           the buffer's mark is, and the user's next command is Meta-y.  */
4531        insert_from_string_before_markers (text, 0, 0, nchars, nbytes, 0);        insert_from_string_before_markers (text, 0, 0, nchars, nbytes, 0);
# Line 4633  send_process (proc, buf, len, object) Line 4633  send_process (proc, buf, len, object)
4633      update_status (XPROCESS (proc));      update_status (XPROCESS (proc));
4634    if (! EQ (XPROCESS (proc)->status, Qrun))    if (! EQ (XPROCESS (proc)->status, Qrun))
4635      error ("Process %s not running",      error ("Process %s not running",
4636             XSTRING (XPROCESS (proc)->name)->data);             SDATA (XPROCESS (proc)->name));
4637    if (XINT (XPROCESS (proc)->outfd) < 0)    if (XINT (XPROCESS (proc)->outfd) < 0)
4638      error ("Output file descriptor of %s is closed",      error ("Output file descriptor of %s is closed",
4639             XSTRING (XPROCESS (proc)->name)->data);             SDATA (XPROCESS (proc)->name));
4640    
4641    coding = proc_encode_coding_system[XINT (XPROCESS (proc)->outfd)];    coding = proc_encode_coding_system[XINT (XPROCESS (proc)->outfd)];
4642    Vlast_coding_system_used = coding->symbol;    Vlast_coding_system_used = coding->symbol;
# Line 4691  send_process (proc, buf, len, object) Line 4691  send_process (proc, buf, len, object)
4691          }          }
4692        else if (STRINGP (object))        else if (STRINGP (object))
4693          {          {
4694            from_byte = buf - XSTRING (object)->data;            from_byte = buf - SDATA (object);
4695            from = string_byte_to_char (object, from_byte);            from = string_byte_to_char (object, from_byte);
4696            to =  string_byte_to_char (object, from_byte + len);            to =  string_byte_to_char (object, from_byte + len);
4697          }          }
# Line 4704  send_process (proc, buf, len, object) Line 4704  send_process (proc, buf, len, object)
4704              coding->composing = COMPOSITION_DISABLED;              coding->composing = COMPOSITION_DISABLED;
4705          }          }
4706    
4707        if (STRING_BYTES (XSTRING (XPROCESS (proc)->encoding_buf)) < require)        if (SBYTES (XPROCESS (proc)->encoding_buf) < require)
4708          XPROCESS (proc)->encoding_buf = make_uninit_string (require);          XPROCESS (proc)->encoding_buf = make_uninit_string (require);
4709    
4710        if (from_byte >= 0)        if (from_byte >= 0)
4711          buf = (BUFFERP (object)          buf = (BUFFERP (object)
4712                 ? BUF_BYTE_ADDRESS (XBUFFER (object), from_byte)                 ? BUF_BYTE_ADDRESS (XBUFFER (object), from_byte)
4713                 : XSTRING (object)->data + from_byte);                 : SDATA (object) + from_byte);
4714    
4715        object = XPROCESS (proc)->encoding_buf;        object = XPROCESS (proc)->encoding_buf;
4716        encode_coding (coding, (char *) buf, XSTRING (object)->data,        encode_coding (coding, (char *) buf, SDATA (object),
4717                       len, STRING_BYTES (XSTRING (object)));                       len, SBYTES (object));
4718        len = coding->produced;        len = coding->produced;
4719        buf = XSTRING (object)->data;        buf = SDATA (object);
4720        if (temp_buf)        if (temp_buf)
4721          xfree (temp_buf);          xfree (temp_buf);
4722      }      }
# Line 4849  send_process (proc, buf, len, object) Line 4849  send_process (proc, buf, len, object)
4849                        if (BUFFERP (object))                        if (BUFFERP (object))
4850                          offset = BUF_PTR_BYTE_POS (XBUFFER (object), buf);                          offset = BUF_PTR_BYTE_POS (XBUFFER (object), buf);
4851                        else if (STRINGP (object))                        else if (STRINGP (object))
4852                          offset = buf - XSTRING (object)->data;                          offset = buf - SDATA (object);
4853    
4854                        XSETFASTINT (zero, 0);                        XSETFASTINT (zero, 0);
4855  #ifdef EMACS_HAS_USECS  #ifdef EMACS_HAS_USECS
# Line 4861  send_process (proc, buf, len, object) Line 4861  send_process (proc, buf, len, object)
4861                        if (BUFFERP (object))                        if (BUFFERP (object))
4862                          buf = BUF_BYTE_ADDRESS (XBUFFER (object), offset);                          buf = BUF_BYTE_ADDRESS (XBUFFER (object), offset);
4863                        else if (STRINGP (object))                        else if (STRINGP (object))
4864                          buf = offset + XSTRING (object)->data;                          buf = offset + SDATA (object);
4865    
4866                        rv = 0;                        rv = 0;
4867                      }                      }
# Line 4893  send_process (proc, buf, len, object) Line 4893  send_process (proc, buf, len, object)
4893        deactivate_process (proc);        deactivate_process (proc);
4894  #ifdef VMS  #ifdef VMS
4895        error ("Error writing to process %s; closed it",        error ("Error writing to process %s; closed it",
4896               XSTRING (XPROCESS (proc)->name)->data);               SDATA (XPROCESS (proc)->name));
4897  #else  #else
4898        error ("SIGPIPE raised on process %s; closed it",        error ("SIGPIPE raised on process %s; closed it",
4899               XSTRING (XPROCESS (proc)->name)->data);               SDATA (XPROCESS (proc)->name));
4900  #endif  #endif
4901      }      }
4902    
# Line 4946  Output from processes can arrive in betw Line 4946  Output from processes can arrive in betw
4946    Lisp_Object proc;    Lisp_Object proc;
4947    CHECK_STRING (string);    CHECK_STRING (string);
4948    proc = get_process (process);    proc = get_process (process);
4949    send_process (proc, XSTRING (string)->data,    send_process (proc, SDATA (string),
4950                  STRING_BYTES (XSTRING (string)), string);                  SBYTES (string), string);
4951    return Qnil;    return Qnil;
4952  }  }
4953    
# Line 4970  return t unconditionally.  */) Line 4970  return t unconditionally.  */)
4970    
4971    if (!EQ (p->childp, Qt))    if (!EQ (p->childp, Qt))
4972      error ("Process %s is not a subprocess",      error ("Process %s is not a subprocess",
4973             XSTRING (p->name)->data);             SDATA (p->name));
4974    if (XINT (p->infd) < 0)    if (XINT (p->infd) < 0)
4975      error ("Process %s is not active",      error ("Process %s is not active",
4976             XSTRING (p->name)->data);             SDATA (p->name));
4977    
4978  #ifdef TIOCGPGRP  #ifdef TIOCGPGRP
4979    if (!NILP (p->subtty))    if (!NILP (p->subtty))
# Line 5018  process_send_signal (process, signo, cur Line 5018  process_send_signal (process, signo, cur
5018    
5019    if (!EQ (p->childp, Qt))    if (!EQ (p->childp, Qt))
5020      error ("Process %s is not a subprocess",      error ("Process %s is not a subprocess",
5021             XSTRING (p->name)->data);             SDATA (p->name));
5022    if (XINT (p->infd) < 0)    if (XINT (p->infd) < 0)
5023      error ("Process %s is not active",      error ("Process %s is not active",
5024             XSTRING (p->name)->data);             SDATA (p->name));
5025    
5026    if (NILP (p->pty_flag))    if (NILP (p->pty_flag))
5027      current_group = Qnil;      current_group = Qnil;
# Line 5337  SIGCODE may be an integer, or a symbol w Line 5337  SIGCODE may be an integer, or a symbol w
5337        unsigned char *name;        unsigned char *name;
5338    
5339        CHECK_SYMBOL (sigcode);        CHECK_SYMBOL (sigcode);
5340        name = XSTRING (SYMBOL_NAME (sigcode))->data;        name = SDATA (SYMBOL_NAME (sigcode));
5341    
5342        if (0)        if (0)
5343          ;          ;
# Line 5464  text to PROCESS after you call this func Line 5464  text to PROCESS after you call this func
5464    if (! NILP (XPROCESS (proc)->raw_status_low))    if (! NILP (XPROCESS (proc)->raw_status_low))
5465      update_status (XPROCESS (proc));      update_status (XPROCESS (proc));
5466    if (! EQ (XPROCESS (proc)->status, Qrun))    if (! EQ (XPROCESS (proc)->status, Qrun))
5467      error ("Process %s not running", XSTRING (XPROCESS (proc)->name)->data);      error ("Process %s not running", SDATA (XPROCESS (proc)->name));
5468    
5469    if (CODING_REQUIRE_FLUSHING (coding))    if (CODING_REQUIRE_FLUSHING (coding))
5470      {      {
# Line 5946  encode subprocess input.  */) Line 5946  encode subprocess input.  */)
5946    CHECK_PROCESS (proc);    CHECK_PROCESS (proc);
5947    p = XPROCESS (proc);    p = XPROCESS (proc);
5948    if (XINT (p->infd) < 0)    if (XINT (p->infd) < 0)
5949      error ("Input file descriptor of %s closed", XSTRING (p->name)->data);      error ("Input file descriptor of %s closed", SDATA (p->name));
5950    if (XINT (p->outfd) < 0)    if (XINT (p->outfd) < 0)
5951      error ("Output file descriptor of %s closed", XSTRING (p->name)->data);      error ("Output file descriptor of %s closed", SDATA (p->name));
5952    
5953    p->decode_coding_system = Fcheck_coding_system (decoding);    p->decode_coding_system = Fcheck_coding_system (decoding);
5954    p->encode_coding_system = Fcheck_coding_system (encoding);    p->encode_coding_system = Fcheck_coding_system (encoding);

Legend:
Removed from v.1.375  
changed lines
  Added in v.1.376

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26