Mercurial > hg > xemacs-beta
comparison src/tooltalk.c @ 442:abe6d1db359e r21-2-36
Import from CVS: tag r21-2-36
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:35:02 +0200 |
parents | 8de8e3f6228a |
children | 576fb035e263 |
comparison
equal
deleted
inserted
replaced
441:72a7cfa4a488 | 442:abe6d1db359e |
---|---|
31 | 31 |
32 #include "buffer.h" | 32 #include "buffer.h" |
33 #include "elhash.h" | 33 #include "elhash.h" |
34 #include "process.h" | 34 #include "process.h" |
35 #include "tooltalk.h" | 35 #include "tooltalk.h" |
36 #include "syssignal.h" | |
36 | 37 |
37 Lisp_Object Vtooltalk_fd; | 38 Lisp_Object Vtooltalk_fd; |
38 | 39 |
39 #ifdef TT_DEBUG | 40 #ifdef TT_DEBUG |
40 static FILE *tooltalk_log_file; | 41 static FILE *tooltalk_log_file; |
769 CHECK_INT (value); | 770 CHECK_INT (value); |
770 tt_message_arg_ival_set (m, n, XINT (value)); | 771 tt_message_arg_ival_set (m, n, XINT (value)); |
771 } | 772 } |
772 else if (EQ (attribute, Qtt_arg_val)) | 773 else if (EQ (attribute, Qtt_arg_val)) |
773 { | 774 { |
774 CONST char *value_ext; | 775 const char *value_ext; |
775 CHECK_STRING (value); | 776 CHECK_STRING (value); |
776 TO_EXTERNAL_FORMAT (LISP_STRING, value, C_STRING_ALLOCA, value_ext, Qnative); | 777 LISP_STRING_TO_EXTERNAL (value, value_ext, Qnative); |
777 tt_message_arg_val_set (m, n, value_ext); | 778 tt_message_arg_val_set (m, n, value_ext); |
778 } | 779 } |
779 else if (EQ (attribute, Qtt_status)) | 780 else if (EQ (attribute, Qtt_status)) |
780 { | 781 { |
781 CHECK_INT (value); | 782 CHECK_INT (value); |
794 signal_simple_error ("Invalid value for `set-tooltalk-message-attribute'", | 795 signal_simple_error ("Invalid value for `set-tooltalk-message-attribute'", |
795 attribute); | 796 attribute); |
796 | 797 |
797 if (fun_str) | 798 if (fun_str) |
798 { | 799 { |
799 CONST char *value_ext; | 800 const char *value_ext; |
800 CHECK_STRING (value); | 801 CHECK_STRING (value); |
801 TO_EXTERNAL_FORMAT (LISP_STRING, value, C_STRING_ALLOCA, value_ext, Qnative); | 802 LISP_STRING_TO_EXTERNAL (value, value_ext, Qnative); |
802 (*fun_str) (m, value_ext); | 803 (*fun_str) (m, value_ext); |
803 } | 804 } |
804 | 805 |
805 return Qnil; | 806 return Qnil; |
806 } | 807 } |
910 n = (Tt_mode) tooltalk_constant_value (mode); | 911 n = (Tt_mode) tooltalk_constant_value (mode); |
911 | 912 |
912 if (!VALID_TOOLTALK_MESSAGEP (m)) | 913 if (!VALID_TOOLTALK_MESSAGEP (m)) |
913 return Qnil; | 914 return Qnil; |
914 { | 915 { |
915 CONST char *vtype_ext; | 916 const char *vtype_ext; |
916 | 917 |
917 TO_EXTERNAL_FORMAT (LISP_STRING, vtype, C_STRING_ALLOCA, vtype_ext, Qnative); | 918 LISP_STRING_TO_EXTERNAL (vtype, vtype_ext, Qnative); |
918 if (NILP (value)) | 919 if (NILP (value)) |
919 tt_message_arg_add (m, n, vtype_ext, NULL); | 920 tt_message_arg_add (m, n, vtype_ext, NULL); |
920 else if (STRINGP (value)) | 921 else if (STRINGP (value)) |
921 { | 922 { |
922 CONST char *value_ext; | 923 const char *value_ext; |
923 TO_EXTERNAL_FORMAT (LISP_STRING, value, C_STRING_ALLOCA, value_ext, Qnative); | 924 LISP_STRING_TO_EXTERNAL (value, value_ext, Qnative); |
924 tt_message_arg_add (m, n, vtype_ext, value_ext); | 925 tt_message_arg_add (m, n, vtype_ext, value_ext); |
925 } | 926 } |
926 else if (INTP (value)) | 927 else if (INTP (value)) |
927 tt_message_iarg_add (m, n, vtype_ext, XINT (value)); | 928 tt_message_iarg_add (m, n, vtype_ext, XINT (value)); |
928 } | 929 } |
1021 tt_pattern_disposition_add (p, ((Tt_disposition) | 1022 tt_pattern_disposition_add (p, ((Tt_disposition) |
1022 tooltalk_constant_value (value))); | 1023 tooltalk_constant_value (value))); |
1023 } | 1024 } |
1024 else if (EQ (attribute, Qtt_file)) | 1025 else if (EQ (attribute, Qtt_file)) |
1025 { | 1026 { |
1026 CONST char *value_ext; | 1027 const char *value_ext; |
1027 CHECK_STRING (value); | 1028 CHECK_STRING (value); |
1028 TO_EXTERNAL_FORMAT (LISP_STRING, value, C_STRING_ALLOCA, value_ext, Qnative); | 1029 LISP_STRING_TO_EXTERNAL (value, value_ext, Qnative); |
1029 tt_pattern_file_add (p, value_ext); | 1030 tt_pattern_file_add (p, value_ext); |
1030 } | 1031 } |
1031 else if (EQ (attribute, Qtt_object)) | 1032 else if (EQ (attribute, Qtt_object)) |
1032 { | 1033 { |
1033 CONST char *value_ext; | 1034 const char *value_ext; |
1034 CHECK_STRING (value); | 1035 CHECK_STRING (value); |
1035 TO_EXTERNAL_FORMAT (LISP_STRING, value, C_STRING_ALLOCA, value_ext, Qnative); | 1036 LISP_STRING_TO_EXTERNAL (value, value_ext, Qnative); |
1036 tt_pattern_object_add (p, value_ext); | 1037 tt_pattern_object_add (p, value_ext); |
1037 } | 1038 } |
1038 else if (EQ (attribute, Qtt_op)) | 1039 else if (EQ (attribute, Qtt_op)) |
1039 { | 1040 { |
1040 CONST char *value_ext; | 1041 const char *value_ext; |
1041 CHECK_STRING (value); | 1042 CHECK_STRING (value); |
1042 TO_EXTERNAL_FORMAT (LISP_STRING, value, C_STRING_ALLOCA, value_ext, Qnative); | 1043 LISP_STRING_TO_EXTERNAL (value, value_ext, Qnative); |
1043 tt_pattern_op_add (p, value_ext); | 1044 tt_pattern_op_add (p, value_ext); |
1044 } | 1045 } |
1045 else if (EQ (attribute, Qtt_otype)) | 1046 else if (EQ (attribute, Qtt_otype)) |
1046 { | 1047 { |
1047 CONST char *value_ext; | 1048 const char *value_ext; |
1048 CHECK_STRING (value); | 1049 CHECK_STRING (value); |
1049 TO_EXTERNAL_FORMAT (LISP_STRING, value, C_STRING_ALLOCA, value_ext, Qnative); | 1050 LISP_STRING_TO_EXTERNAL (value, value_ext, Qnative); |
1050 tt_pattern_otype_add (p, value_ext); | 1051 tt_pattern_otype_add (p, value_ext); |
1051 } | 1052 } |
1052 else if (EQ (attribute, Qtt_scope)) | 1053 else if (EQ (attribute, Qtt_scope)) |
1053 { | 1054 { |
1054 CHECK_TOOLTALK_CONSTANT (value); | 1055 CHECK_TOOLTALK_CONSTANT (value); |
1055 tt_pattern_scope_add (p, (Tt_scope) tooltalk_constant_value (value)); | 1056 tt_pattern_scope_add (p, (Tt_scope) tooltalk_constant_value (value)); |
1056 } | 1057 } |
1057 else if (EQ (attribute, Qtt_sender)) | 1058 else if (EQ (attribute, Qtt_sender)) |
1058 { | 1059 { |
1059 CONST char *value_ext; | 1060 const char *value_ext; |
1060 CHECK_STRING (value); | 1061 CHECK_STRING (value); |
1061 TO_EXTERNAL_FORMAT (LISP_STRING, value, C_STRING_ALLOCA, value_ext, Qnative); | 1062 LISP_STRING_TO_EXTERNAL (value, value_ext, Qnative); |
1062 tt_pattern_sender_add (p, value_ext); | 1063 tt_pattern_sender_add (p, value_ext); |
1063 } | 1064 } |
1064 else if (EQ (attribute, Qtt_sender_ptype)) | 1065 else if (EQ (attribute, Qtt_sender_ptype)) |
1065 { | 1066 { |
1066 CONST char *value_ext; | 1067 const char *value_ext; |
1067 CHECK_STRING (value); | 1068 CHECK_STRING (value); |
1068 TO_EXTERNAL_FORMAT (LISP_STRING, value, C_STRING_ALLOCA, value_ext, Qnative); | 1069 LISP_STRING_TO_EXTERNAL (value, value_ext, Qnative); |
1069 tt_pattern_sender_ptype_add (p, value_ext); | 1070 tt_pattern_sender_ptype_add (p, value_ext); |
1070 } | 1071 } |
1071 else if (EQ (attribute, Qtt_session)) | 1072 else if (EQ (attribute, Qtt_session)) |
1072 { | 1073 { |
1073 CONST char *value_ext; | 1074 const char *value_ext; |
1074 CHECK_STRING (value); | 1075 CHECK_STRING (value); |
1075 TO_EXTERNAL_FORMAT (LISP_STRING, value, C_STRING_ALLOCA, value_ext, Qnative); | 1076 LISP_STRING_TO_EXTERNAL (value, value_ext, Qnative); |
1076 tt_pattern_session_add (p, value_ext); | 1077 tt_pattern_session_add (p, value_ext); |
1077 } | 1078 } |
1078 else if (EQ (attribute, Qtt_state)) | 1079 else if (EQ (attribute, Qtt_state)) |
1079 { | 1080 { |
1080 CHECK_TOOLTALK_CONSTANT (value); | 1081 CHECK_TOOLTALK_CONSTANT (value); |
1109 | 1110 |
1110 if (!VALID_TOOLTALK_PATTERNP (p)) | 1111 if (!VALID_TOOLTALK_PATTERNP (p)) |
1111 return Qnil; | 1112 return Qnil; |
1112 | 1113 |
1113 { | 1114 { |
1114 CONST char *vtype_ext; | 1115 const char *vtype_ext; |
1115 | 1116 |
1116 TO_EXTERNAL_FORMAT (LISP_STRING, vtype, C_STRING_ALLOCA, vtype_ext, Qnative); | 1117 LISP_STRING_TO_EXTERNAL (vtype, vtype_ext, Qnative); |
1117 if (NILP (value)) | 1118 if (NILP (value)) |
1118 tt_pattern_arg_add (p, n, vtype_ext, NULL); | 1119 tt_pattern_arg_add (p, n, vtype_ext, NULL); |
1119 else if (STRINGP (value)) | 1120 else if (STRINGP (value)) |
1120 { | 1121 { |
1121 CONST char *value_ext; | 1122 const char *value_ext; |
1122 TO_EXTERNAL_FORMAT (LISP_STRING, value, C_STRING_ALLOCA, value_ext, Qnative); | 1123 LISP_STRING_TO_EXTERNAL (value, value_ext, Qnative); |
1123 tt_pattern_arg_add (p, n, vtype_ext, value_ext); | 1124 tt_pattern_arg_add (p, n, vtype_ext, value_ext); |
1124 } | 1125 } |
1125 else if (INTP (value)) | 1126 else if (INTP (value)) |
1126 tt_pattern_iarg_add (p, n, vtype_ext, XINT (value)); | 1127 tt_pattern_iarg_add (p, n, vtype_ext, XINT (value)); |
1127 } | 1128 } |
1299 | 1300 |
1300 | 1301 |
1301 void | 1302 void |
1302 syms_of_tooltalk (void) | 1303 syms_of_tooltalk (void) |
1303 { | 1304 { |
1305 INIT_LRECORD_IMPLEMENTATION (tooltalk_message); | |
1306 INIT_LRECORD_IMPLEMENTATION (tooltalk_pattern); | |
1307 | |
1304 defsymbol (&Qtooltalk_messagep, "tooltalk-message-p"); | 1308 defsymbol (&Qtooltalk_messagep, "tooltalk-message-p"); |
1305 DEFSUBR (Ftooltalk_message_p); | 1309 DEFSUBR (Ftooltalk_message_p); |
1306 defsymbol (&Qtooltalk_patternp, "tooltalk-pattern-p"); | 1310 defsymbol (&Qtooltalk_patternp, "tooltalk-pattern-p"); |
1307 DEFSUBR (Ftooltalk_pattern_p); | 1311 DEFSUBR (Ftooltalk_pattern_p); |
1308 defsymbol (&Qtooltalk_message_handler_hook, "tooltalk-message-handler-hook"); | 1312 defsymbol (&Qtooltalk_message_handler_hook, "tooltalk-message-handler-hook"); |
1363 defsymbol (&Qtt_plist, "plist"); | 1367 defsymbol (&Qtt_plist, "plist"); |
1364 defsymbol (&Qtt_reject, "reject"); | 1368 defsymbol (&Qtt_reject, "reject"); |
1365 defsymbol (&Qtt_reply, "reply"); | 1369 defsymbol (&Qtt_reply, "reply"); |
1366 defsymbol (&Qtt_fail, "fail"); | 1370 defsymbol (&Qtt_fail, "fail"); |
1367 | 1371 |
1368 deferror (&Qtooltalk_error, "tooltalk-error", "ToolTalk error", Qio_error); | 1372 DEFERROR (Qtooltalk_error, "ToolTalk error", Qio_error); |
1369 } | 1373 } |
1370 | 1374 |
1371 void | 1375 void |
1372 vars_of_tooltalk (void) | 1376 vars_of_tooltalk (void) |
1373 { | 1377 { |