Mercurial > hg > xemacs-beta
annotate tests/tooltalk/load-file.c @ 5740:00a421d2b2ba
Fix no-Mule build.
* paragraphs.el (sentence-end): Use octal, not Unicode, escapes.
* (sentence-end-base): Use non-ASCII only in Mule.
| author | Stephen J. Turnbull <stephen@xemacs.org> |
|---|---|
| date | Fri, 21 Jun 2013 18:45:06 +0900 |
| parents | 9fc91aa3a927 |
| children |
| rev | line source |
|---|---|
|
5408
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
1 /* load-file.c - load & execute an Emacs Lisp file in XEmacs using ToolTalk |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
2 Copyright (C) 1995 Sun Microsystems, Inc |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
3 |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
4 Author: Vladimir Ivanovic <vladimir@Eng.Sun.COM> |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
5 |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
6 This file is part of XEmacs. |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
7 |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
8 XEmacs is free software: you can redistribute it and/or modify it |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
9 under the terms of the GNU General Public License as published by the |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
10 Free Software Foundation, either version 3 of the License, or (at your |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
11 option) any later version. |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
12 |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
13 XEmacs is distributed in the hope that it will be useful, but WITHOUT |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
16 for more details. |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
17 |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
18 You should have received a copy of the GNU General Public License |
|
9fc91aa3a927
Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents:
70
diff
changeset
|
19 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */ |
| 70 | 20 |
| 21 /* See `tooltalk-load-file-handler' in the file lisp/tooltalk/tooltalk-init.el | |
| 22 for the receiver side. */ | |
| 23 | |
| 24 #include <desktop/tt_c.h> | |
| 25 #include <stdio.h> | |
| 26 #include <stdlib.h> | |
| 27 #include <sys/wait.h> | |
| 28 | |
| 29 Tt_status tter; | |
| 30 | |
| 31 #define exit_err_ptr(ptr) \ | |
| 32 if ((tter = tt_ptr_error(ptr)) != TT_OK) \ | |
| 33 { fprintf(stderr, "%d:%s\n", __LINE__, tt_status_message(tter)); exit(1); } | |
| 34 | |
| 35 #define exit_err(stat) \ | |
| 36 if ((tter = stat) != TT_OK) \ | |
| 37 { fprintf(stderr, "%d:%s\n", __LINE__, tt_status_message(tter)); exit(1); } | |
| 38 | |
| 39 Tt_callback_action callback_fn(Tt_message msg, Tt_pattern pat); | |
| 40 static Tt_message create_new_message(char *pathname); | |
| 41 static int initialize_tooltalk(void); | |
| 42 static void usage(void); | |
| 43 | |
| 44 static char* tt_procid; | |
| 45 | |
| 46 Tt_callback_action | |
| 47 callback_fn(Tt_message msg, Tt_pattern pat) | |
| 48 { | |
| 49 tt_message_destroy(msg); | |
| 50 return TT_CALLBACK_PROCESSED; | |
| 51 } | |
| 52 | |
| 53 static Tt_message | |
| 54 create_new_message(char *pathname) | |
| 55 { | |
| 56 Tt_message msg; | |
| 57 | |
| 58 msg = tt_message_create(); | |
| 59 exit_err_ptr(msg); | |
| 60 | |
| 61 exit_err(tt_message_address_set (msg, TT_PROCEDURE)); | |
| 62 exit_err(tt_message_class_set (msg, TT_REQUEST)); | |
| 63 exit_err(tt_message_scope_set (msg, TT_SESSION)); | |
| 64 exit_err(tt_message_op_set (msg, "emacs-load-file")); | |
| 65 exit_err(tt_message_arg_add (msg, TT_IN, "file", pathname)); | |
| 66 exit_err(tt_message_callback_add(msg, callback_fn)); | |
| 67 | |
| 68 return msg; | |
| 69 } | |
| 70 | |
| 71 static int | |
| 72 initialize_tooltalk(void) { | |
| 73 int rcode; | |
| 74 | |
| 75 tt_procid = tt_open(); | |
| 76 if ((rcode = tt_ptr_error(tt_procid)) != TT_OK) { | |
| 77 return rcode; | |
| 78 } | |
| 79 | |
| 80 if ((rcode = tt_session_join(tt_default_session())) != TT_OK) { | |
| 81 return (rcode); | |
| 82 } | |
| 83 } | |
| 84 | |
| 85 | |
| 86 static void | |
| 87 usage(void) | |
| 88 { | |
| 89 fprintf(stderr, | |
| 90 "Usage: load-file pathname\n\n"); | |
| 91 } | |
| 92 | |
| 93 void | |
| 94 main(argc, argv) | |
| 95 int argc; | |
| 96 char *argv[]; | |
| 97 { | |
| 98 | |
| 99 Tt_message msg; | |
| 100 | |
| 101 if (argc != 2) { | |
| 102 usage(); | |
| 103 exit(0); | |
| 104 } | |
| 105 | |
| 106 exit_err(initialize_tooltalk()); | |
| 107 | |
| 108 msg = create_new_message(argv[1]); | |
| 109 | |
| 110 exit_err(tt_message_send(msg)); | |
| 111 | |
| 112 return; | |
| 113 } |
