annotate info/error.c @ 1242:5fb4ee02da70

[project @ 1995-04-10 23:05:10 by jwe]
author jwe
date Mon, 10 Apr 1995 23:08:10 +0000
parents d2ada1d8b70c
children 611d403c7f3d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
172
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
1 /* error.c -- Handle info errors. */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
2
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
3 /* This file is part of GNU Info, a program for reading online documentation
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
4 stored in Info format.
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
5
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
6 Copyright (C) 1993 Free Software Foundation, Inc.
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
7
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
8 This program is free software; you can redistribute it and/or modify
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
9 it under the terms of the GNU General Public License as published by
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
10 the Free Software Foundation; either version 2, or (at your option)
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
11 any later version.
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
12
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
13 This program is distributed in the hope that it will be useful,
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
16 GNU General Public License for more details.
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
17
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
19 along with this program; if not, write to the Free Software
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
20 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
21
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
22 Written by Brian Fox (bfox@ai.mit.edu). */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
23
1242
5fb4ee02da70 [project @ 1995-04-10 23:05:10 by jwe]
jwe
parents: 251
diff changeset
24 #ifdef HAVE_CONFIG_H
5fb4ee02da70 [project @ 1995-04-10 23:05:10 by jwe]
jwe
parents: 251
diff changeset
25 #include <config.h>
5fb4ee02da70 [project @ 1995-04-10 23:05:10 by jwe]
jwe
parents: 251
diff changeset
26 #endif
5fb4ee02da70 [project @ 1995-04-10 23:05:10 by jwe]
jwe
parents: 251
diff changeset
27
172
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
28 #include "info.h"
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
29 #include "dribble.h"
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
30 #include "terminal.h"
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
31 #include "getopt.h"
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
32
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
33 /* The version numbers of this version of Info. */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
34 int info_major_version = 2;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
35 int info_minor_version = 10;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
36 int info_patch_level = 1;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
37
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
38 /* When non-zero, the Info window system has been initialized. */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
39 int info_windows_initialized_p = 0;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
40
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
41
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
42 /* **************************************************************** */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
43 /* */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
44 /* Main Entry Point to the Info Program */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
45 /* */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
46 /* **************************************************************** */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
47
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
48 /* Return a string describing the current version of Info. */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
49 char *
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
50 version_string ()
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
51 {
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
52 static char *vstring = (char *)NULL;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
53
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
54 if (!vstring)
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
55 {
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
56 vstring = (char *)xmalloc (50);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
57 sprintf (vstring, "%d.%d", info_major_version, info_minor_version);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
58 if (info_patch_level)
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
59 sprintf (vstring + strlen (vstring), "-p%d", info_patch_level);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
60 }
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
61 return (vstring);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
62 }
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
63
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
64 /* **************************************************************** */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
65 /* */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
66 /* Error Handling for Info */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
67 /* */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
68 /* **************************************************************** */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
69
251
d2ada1d8b70c [project @ 1993-12-06 19:49:25 by jwe]
jwe
parents: 172
diff changeset
70 static char *program_name = "info";
172
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
71
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
72 /* Non-zero if an error has been signalled. */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
73 int info_error_was_printed = 0;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
74
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
75 /* Non-zero means ring terminal bell on errors. */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
76 int info_error_rings_bell_p = 1;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
77
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
78 /* Print FORMAT with ARG1 and ARG2. If the window system was initialized,
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
79 then the message is printed in the echo area. Otherwise, a message is
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
80 output to stderr. */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
81 void
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
82 info_error (format, arg1, arg2)
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
83 char *format;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
84 void *arg1, *arg2;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
85 {
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
86 info_error_was_printed = 1;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
87
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
88 if (!info_windows_initialized_p || display_inhibited)
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
89 {
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
90 fprintf (stderr, "%s: ", program_name);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
91 fprintf (stderr, format, arg1, arg2);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
92 fprintf (stderr, "\n");
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
93 fflush (stderr);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
94 }
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
95 else
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
96 {
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
97 if (!echo_area_is_active)
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
98 {
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
99 if (info_error_rings_bell_p)
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
100 terminal_ring_bell ();
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
101 window_message_in_echo_area (format, arg1, arg2);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
102 }
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
103 else
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
104 {
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
105 NODE *temp;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
106
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
107 temp = build_message_node (format, arg1, arg2);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
108 if (info_error_rings_bell_p)
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
109 terminal_ring_bell ();
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
110 inform_in_echo_area (temp->contents);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
111 free (temp->contents);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
112 free (temp);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
113 }
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
114 }
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
115 }
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
116
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
117