annotate tests/sigpipe.c @ 4875:49de55c09f18

add "review" lines in intl-encap-win32.c for all unseen functions in processed headers -------------------- ChangeLog entries follow: -------------------- lib-src/ChangeLog addition: 2010-01-15 Ben Wing <ben@xemacs.org> * make-mswin-unicode.pl: Process the command `review'. Cause an error to happen if we try to use the command, indicating that the command needs review to determine how to handle it. src/ChangeLog addition: 2010-01-15 Ben Wing <ben@xemacs.org> * intl-encap-win32.c: Add `review' lines for all functions seen in the headers that we process but not yet associated with an encapsulation command. These will cause an error to be signaled if these functions are used. * intl-auto-encap-win32.c: * intl-auto-encap-win32.h: Regenerate.
author Ben Wing <ben@xemacs.org>
date Fri, 15 Jan 2010 05:42:21 -0600
parents 679041362cd4
children 308d34e9f07d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1231
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
1 /* code is all from loser.c and loser.el by Mly
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
2
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
3 Copyright (C) 2002 Richard Mlynarik <mly@pobox.com>
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
4
4739
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
5 This file is part of XEmacs.
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
6
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
7 XEmacs is free software; you can redistribute it and/or modify it
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
8 under the terms of the GNU General Public License as published by the
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
9 Free Software Foundation; either version 2, or (at your option) any
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
10 later version.
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
11
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
12 XEmacs is distributed in the hope that it will be useful, but WITHOUT
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
15 for more details.
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
16
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
17 You should have received a copy of the GNU General Public License
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
18 along with XEmacs; see the file COPYING. If not, write to the Free
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
19 Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
20 02110-1301, USA.
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
21
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1231
diff changeset
22 Commentary:
1231
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
23
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
24 Compile this file. Run it in the background giving it a command line
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
25 argument PORT which is a positive integer 1024 < PORT < 32768 (avoid the
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
26 numbers assigned in /etc/services).
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
27
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
28 Then start up a fresh (you're going to crash) XEmacs. Execute the following
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
29
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
30 (defun lose (port)
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
31 (interactive "nUrk: ")
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
32 (require 'comint)
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
33 (while t
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
34 (condition-case e
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
35 (let* ((name "*lose*")
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
36 (b (get-buffer-create name)))
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
37 (switch-to-buffer b)
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
38 (comint-mode)
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
39 (comint-exec b name (cons "127.0.0.1" port) nil '())
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
40 (process-send-string (get-buffer-process b) "\377\373\001")
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
41 (process-send-string (get-buffer-process b) "\377\373\001"))
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
42 (error (message "URK: %s" e)) (sit-for 1))))
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
43
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
44 Then M-x lose RET PORT RET and you lose big (in XEmacs 21.1, anyway).
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
45 Note: the error messages are proper functioning. What should eventually
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
46 happen after a number of SIGPIPEs is that you get a SIGSEGV and life is
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
47 bad and XEmacs is dead.
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
48 */
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
49
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
50 #include <arpa/inet.h>
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
51
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
52 int
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
53 main (int argc, char **argv)
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
54 {
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
55 struct sockaddr_in junk;
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
56 int s;
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
57
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
58 memset (&junk, 0, sizeof (junk));
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
59
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
60 junk.sin_family = AF_INET;
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
61 junk.sin_addr.s_addr = htonl (INADDR_ANY); /* un*x sucks */
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
62 junk.sin_port = htons (atoi (argv[1])); /* un*x blows */
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
63
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
64 s = socket (PF_INET, SOCK_STREAM, 0);
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
65
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
66 bind (s, (struct sockaddr *)&junk, sizeof (junk));
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
67
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
68 listen (s, 1);
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
69
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
70 for (;;)
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
71 {
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
72 int loser = accept (s, NULL, 0);
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
73 close (loser);
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
74 }
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
75 }
3f6adebda25c [xemacs-hg @ 2003-01-23 11:24:08 by stephent]
stephent
parents:
diff changeset
76