texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

texinfo/info session.c


From: Sergey Poznyakoff
Subject: texinfo/info session.c
Date: Wed, 06 Apr 2011 21:18:03 +0000

CVSROOT:        /cvsroot/texinfo
Module name:    texinfo
Changes by:     Sergey Poznyakoff <gray>        11/04/06 21:18:03

Modified files:
        info           : session.c 

Log message:
        (begin_info_session_with_error): Remove.
        (info_follow_menus): On errors fill in a formatted error node.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/info/session.c?cvsroot=texinfo&r1=1.47&r2=1.48

Patches:
Index: session.c
===================================================================
RCS file: /cvsroot/texinfo/texinfo/info/session.c,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- session.c   10 Feb 2011 09:15:51 -0000      1.47
+++ session.c   6 Apr 2011 21:18:03 -0000       1.48
@@ -1,5 +1,5 @@
 /* session.c -- user windowing interface to Info.
-   $Id: session.c,v 1.47 2011/02/10 09:15:51 gray Exp $
+   $Id: session.c,v 1.48 2011/04/06 21:18:03 gray Exp $
 
    Copyright (C) 1993, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
    2004, 2007, 2008, 2009 Free Software Foundation, Inc.
@@ -136,17 +136,6 @@
   display_startup_message_and_start ();
 }
 
-/* Start an info session with INITIAL_NODE, and an error message in the echo
-   area made from FORMAT and ARG. */
-void
-begin_info_session_with_error (NODE *initial_node, const char *format,
-    void *arg1, void *arg2)
-{
-  initialize_info_session (initial_node, 1);
-  info_error (format, arg1, arg2);
-  info_session ();
-}
-
 /* Start an info session with INITIAL_NODE. */
 void
 begin_info_session (NODE *initial_node)
@@ -2799,12 +2788,12 @@
    will be NULL.  */
 
 NODE *
-info_follow_menus (NODE *initial_node, char **menus,
-    const char **errstr, char **errarg1, char **errarg2)
+info_follow_menus (NODE *initial_node, char **menus, NODE **err_node)
 {
   NODE *node = NULL;
-  *errstr = *errarg1 = *errarg2 = NULL;
 
+  if (err_node)
+    *err_node = NULL;
   for (; *menus; menus++)
     {
       static char *first_arg = NULL;
@@ -2835,8 +2824,9 @@
               if (node)
                 goto maybe_got_node;
             }
-          *errstr = _("No menu in node `%s'.");
-          *errarg1 = node_printed_rep (initial_node);
+         if (err_node)
+           *err_node = format_message_node (_("No menu in node `%s'."),
+                                            node_printed_rep (initial_node));
           return initial_node;
         }
 
@@ -2881,9 +2871,10 @@
             }
 
           info_free_references (menu);
-          *errstr = _("No menu item `%s' in node `%s'.");
-          *errarg1 = arg;
-          *errarg2 = node_printed_rep (initial_node);
+         if (err_node)
+           *err_node = format_message_node (_("No menu item `%s' in node 
`%s'."),
+                                            arg,
+                                            node_printed_rep (initial_node));
           return initial_node;
         }
 
@@ -2911,9 +2902,11 @@
     maybe_got_node:
       if (!node)
         {
-          *errstr = _("Unable to find node referenced by `%s' in `%s'.");
-          *errarg1 = xstrdup (entry->label);
-          *errarg2 = node_printed_rep (initial_node);
+         if (err_node)
+           *err_node = format_message_node (
+                    _("Unable to find node referenced by `%s' in `%s'."),
+                    entry->label,
+                    node_printed_rep (initial_node));
           info_free_references (menu);
           return initial_node;
         }
@@ -2976,8 +2969,7 @@
 
   if (*line)
     {
-      const char *errstr;
-      char *errarg1, *errarg2;
+      NODE *err_node;
       NODE *dir_node = info_get_node (NULL, NULL);
       char **nodes = split_list_of_nodenames (line);
       NODE *node = NULL;
@@ -2998,13 +2990,13 @@
       if (!dir_node)
         info_error (msg_cant_find_node, "Top", NULL);
       else
-        node = info_follow_menus (dir_node, nodes, &errstr, &errarg1, 
&errarg2);
+        node = info_follow_menus (dir_node, nodes, &err_node);
 
       free (nodes);
-      if (!errstr)
-        info_set_node_of_window (1, window, node);
+      if (err_node)
+       show_error_node (err_node);
       else
-        info_error (errstr, errarg1, errarg2);
+        info_set_node_of_window (1, window, node);
     }
 
   free (line);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]