annotate info/error.c @ 172:0597476bbe6d

[project @ 1993-10-21 22:43:36 by jwe] Initial revision
author jwe
date Thu, 21 Oct 1993 22:43:36 +0000
parents
children d2ada1d8b70c
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
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
24 #include "info.h"
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
25 #include "dribble.h"
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
26 #include "terminal.h"
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
27 #include "getopt.h"
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
28
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
29 /* The version numbers of this version of Info. */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
30 int info_major_version = 2;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
31 int info_minor_version = 10;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
32 int info_patch_level = 1;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
33
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
34 /* When non-zero, the Info window system has been initialized. */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
35 int info_windows_initialized_p = 0;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
36
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 /* **************************************************************** */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
39 /* */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
40 /* Main Entry Point to the Info Program */
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 /* Return a string describing the current version of Info. */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
45 char *
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
46 version_string ()
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 static char *vstring = (char *)NULL;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
49
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
50 if (!vstring)
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 vstring = (char *)xmalloc (50);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
53 sprintf (vstring, "%d.%d", info_major_version, info_minor_version);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
54 if (info_patch_level)
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
55 sprintf (vstring + strlen (vstring), "-p%d", info_patch_level);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
56 }
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
57 return (vstring);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
58 }
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
59
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 /* */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
62 /* Error Handling for Info */
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 static char *program_name = (char *)NULL;
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 /* Non-zero if an error has been signalled. */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
69 int info_error_was_printed = 0;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
70
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
71 /* Non-zero means ring terminal bell on errors. */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
72 int info_error_rings_bell_p = 1;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
73
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
74 /* 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
75 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
76 output to stderr. */
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
77 void
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
78 info_error (format, arg1, arg2)
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
79 char *format;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
80 void *arg1, *arg2;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
81 {
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
82 info_error_was_printed = 1;
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
83
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
84 if (!info_windows_initialized_p || display_inhibited)
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 fprintf (stderr, "%s: ", program_name);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
87 fprintf (stderr, format, arg1, arg2);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
88 fprintf (stderr, "\n");
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
89 fflush (stderr);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
90 }
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
91 else
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
92 {
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
93 if (!echo_area_is_active)
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 if (info_error_rings_bell_p)
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
96 terminal_ring_bell ();
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
97 window_message_in_echo_area (format, arg1, arg2);
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 else
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
100 {
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
101 NODE *temp;
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 temp = build_message_node (format, arg1, arg2);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
104 if (info_error_rings_bell_p)
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
105 terminal_ring_bell ();
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
106 inform_in_echo_area (temp->contents);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
107 free (temp->contents);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
108 free (temp);
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
109 }
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
110 }
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
111 }
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
112
0597476bbe6d [project @ 1993-10-21 22:43:36 by jwe]
jwe
parents:
diff changeset
113