Mercurial > emacs
comparison src/process.c @ 49114:c87af62cc6b4
(format-network-address): Added optional OMIT-PORT arg. Callers changed.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Wed, 08 Jan 2003 15:35:03 +0000 |
parents | 32c767302a23 |
children | 938f153410ae |
comparison
equal
deleted
inserted
replaced
49113:fd13501a746f | 49114:c87af62cc6b4 |
---|---|
1050 } | 1050 } |
1051 #endif | 1051 #endif |
1052 | 1052 |
1053 #ifdef HAVE_SOCKETS | 1053 #ifdef HAVE_SOCKETS |
1054 DEFUN ("format-network-address", Fformat_network_address, Sformat_network_address, | 1054 DEFUN ("format-network-address", Fformat_network_address, Sformat_network_address, |
1055 1, 1, 0, | 1055 1, 2, 0, |
1056 doc: /* Convert network ADDRESS from internal format to a string. | 1056 doc: /* Convert network ADDRESS from internal format to a string. |
1057 Returns nil if format of ADDRESS is invalid. */) | 1057 If optional second argument OMIT-PORT is non-nil, don't include a port |
1058 (address) | 1058 number in the string; in this case, interpret a 4 element vector as an |
1059 Lisp_Object address; | 1059 IP address. Returns nil if format of ADDRESS is invalid. */) |
1060 (address, omit_port) | |
1061 Lisp_Object address, omit_port; | |
1060 { | 1062 { |
1061 if (NILP (address)) | 1063 if (NILP (address)) |
1062 return Qnil; | 1064 return Qnil; |
1063 | 1065 |
1064 if (STRINGP (address)) /* AF_LOCAL */ | 1066 if (STRINGP (address)) /* AF_LOCAL */ |
1066 | 1068 |
1067 if (VECTORP (address)) /* AF_INET */ | 1069 if (VECTORP (address)) /* AF_INET */ |
1068 { | 1070 { |
1069 register struct Lisp_Vector *p = XVECTOR (address); | 1071 register struct Lisp_Vector *p = XVECTOR (address); |
1070 Lisp_Object args[6]; | 1072 Lisp_Object args[6]; |
1071 | 1073 int nargs, i; |
1072 if (p->size != 5) | 1074 |
1075 if (!NILP (omit_port) && (p->size == 4 || p->size == 5)) | |
1076 { | |
1077 args[0] = build_string ("%d.%d.%d.%d"); | |
1078 nargs = 4; | |
1079 } | |
1080 else if (p->size == 5) | |
1081 { | |
1082 args[0] = build_string ("%d.%d.%d.%d:%d"); | |
1083 nargs = 5; | |
1084 } | |
1085 else | |
1073 return Qnil; | 1086 return Qnil; |
1074 | 1087 |
1075 args[0] = build_string ("%d.%d.%d.%d:%d"); | 1088 for (i = 0; i < nargs; i++) |
1076 args[1] = p->contents[0]; | 1089 args[i+1] = p->contents[i]; |
1077 args[2] = p->contents[1]; | 1090 return Fformat (nargs+1, args); |
1078 args[3] = p->contents[2]; | |
1079 args[4] = p->contents[3]; | |
1080 args[5] = p->contents[4]; | |
1081 return Fformat (6, args); | |
1082 } | 1091 } |
1083 | 1092 |
1084 if (CONSP (address)) | 1093 if (CONSP (address)) |
1085 { | 1094 { |
1086 Lisp_Object args[2]; | 1095 Lisp_Object args[2]; |
1253 { | 1262 { |
1254 Lisp_Object port = Fplist_get (p->childp, QCservice); | 1263 Lisp_Object port = Fplist_get (p->childp, QCservice); |
1255 if (INTEGERP (port)) | 1264 if (INTEGERP (port)) |
1256 port = Fnumber_to_string (port); | 1265 port = Fnumber_to_string (port); |
1257 if (NILP (port)) | 1266 if (NILP (port)) |
1258 port = Fformat_network_address (Fplist_get (p->childp, QClocal)); | 1267 port = Fformat_network_address (Fplist_get (p->childp, QClocal), Qnil); |
1259 sprintf (tembuf, "(network %s server on %s)\n", | 1268 sprintf (tembuf, "(network %s server on %s)\n", |
1260 (DATAGRAM_CHAN_P (XINT (p->infd)) ? "datagram" : "stream"), | 1269 (DATAGRAM_CHAN_P (XINT (p->infd)) ? "datagram" : "stream"), |
1261 (STRINGP (port) ? (char *)SDATA (port) : "?")); | 1270 (STRINGP (port) ? (char *)SDATA (port) : "?")); |
1262 insert_string (tembuf); | 1271 insert_string (tembuf); |
1263 } | 1272 } |
1271 host = Fplist_get (p->childp, QCservice); | 1280 host = Fplist_get (p->childp, QCservice); |
1272 if (INTEGERP (host)) | 1281 if (INTEGERP (host)) |
1273 host = Fnumber_to_string (host); | 1282 host = Fnumber_to_string (host); |
1274 } | 1283 } |
1275 if (NILP (host)) | 1284 if (NILP (host)) |
1276 host = Fformat_network_address (Fplist_get (p->childp, QCremote)); | 1285 host = Fformat_network_address (Fplist_get (p->childp, QCremote), Qnil); |
1277 sprintf (tembuf, "(network %s connection to %s)\n", | 1286 sprintf (tembuf, "(network %s connection to %s)\n", |
1278 (DATAGRAM_CHAN_P (XINT (p->infd)) ? "datagram" : "stream"), | 1287 (DATAGRAM_CHAN_P (XINT (p->infd)) ? "datagram" : "stream"), |
1279 (STRINGP (host) ? (char *)SDATA (host) : "?")); | 1288 (STRINGP (host) ? (char *)SDATA (host) : "?")); |
1280 insert_string (tembuf); | 1289 insert_string (tembuf); |
1281 } | 1290 } |