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