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 {