Mercurial > hg > xemacs-beta
comparison src/tooltalk.c @ 420:41dbb7a9d5f2 r21-2-18
Import from CVS: tag r21-2-18
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:24:09 +0200 |
parents | 697ef44129c6 |
children | 11054d720c21 |
comparison
equal
deleted
inserted
replaced
419:66615b78f1a5 | 420:41dbb7a9d5f2 |
---|---|
173 write_c_string (buf, printcharfun); | 173 write_c_string (buf, printcharfun); |
174 } | 174 } |
175 | 175 |
176 DEFINE_LRECORD_IMPLEMENTATION ("tooltalk-message", tooltalk_message, | 176 DEFINE_LRECORD_IMPLEMENTATION ("tooltalk-message", tooltalk_message, |
177 mark_tooltalk_message, print_tooltalk_message, | 177 mark_tooltalk_message, print_tooltalk_message, |
178 0, 0, 0, | 178 0, 0, 0, 0, |
179 struct Lisp_Tooltalk_Message); | 179 struct Lisp_Tooltalk_Message); |
180 | 180 |
181 static Lisp_Object | 181 static Lisp_Object |
182 make_tooltalk_message (Tt_message m) | 182 make_tooltalk_message (Tt_message m) |
183 { | 183 { |
247 write_c_string (buf, printcharfun); | 247 write_c_string (buf, printcharfun); |
248 } | 248 } |
249 | 249 |
250 DEFINE_LRECORD_IMPLEMENTATION ("tooltalk-pattern", tooltalk_pattern, | 250 DEFINE_LRECORD_IMPLEMENTATION ("tooltalk-pattern", tooltalk_pattern, |
251 mark_tooltalk_pattern, print_tooltalk_pattern, | 251 mark_tooltalk_pattern, print_tooltalk_pattern, |
252 0, 0, 0, | 252 0, 0, 0, 0, |
253 struct Lisp_Tooltalk_Pattern); | 253 struct Lisp_Tooltalk_Pattern); |
254 | 254 |
255 static Lisp_Object | 255 static Lisp_Object |
256 make_tooltalk_pattern (Tt_pattern p) | 256 make_tooltalk_pattern (Tt_pattern p) |
257 { | 257 { |
1254 /* This function can GC */ | 1254 /* This function can GC */ |
1255 char *retval; | 1255 char *retval; |
1256 Lisp_Object lp; | 1256 Lisp_Object lp; |
1257 Lisp_Object fil; | 1257 Lisp_Object fil; |
1258 | 1258 |
1259 | |
1260 /* tt_open() messes with our signal handler flags (at least when no | |
1261 ttsessions is running on the machine), therefore we save the | |
1262 actions and restore them after the call */ | |
1263 #ifdef HAVE_SIGPROCMASK | |
1264 { | |
1265 struct sigaction ActSIGQUIT; | |
1266 struct sigaction ActSIGINT; | |
1267 struct sigaction ActSIGCHLD; | |
1268 sigaction (SIGQUIT, NULL, &ActSIGQUIT); | |
1269 sigaction (SIGINT, NULL, &ActSIGINT); | |
1270 sigaction (SIGCHLD, NULL, &ActSIGCHLD); | |
1271 #endif | |
1259 retval = tt_open (); | 1272 retval = tt_open (); |
1273 #ifdef HAVE_SIGPROCMASK | |
1274 sigaction (SIGQUIT, &ActSIGQUIT, NULL); | |
1275 sigaction (SIGINT, &ActSIGINT, NULL); | |
1276 sigaction (SIGCHLD, &ActSIGCHLD, NULL); | |
1277 } | |
1278 #endif | |
1279 | |
1280 | |
1260 if (tt_ptr_error (retval) != TT_OK) | 1281 if (tt_ptr_error (retval) != TT_OK) |
1261 return; | 1282 return; |
1262 | 1283 |
1263 Vtooltalk_fd = make_int (tt_fd ()); | 1284 Vtooltalk_fd = make_int (tt_fd ()); |
1264 | 1285 |