[Pinfo-devel] r41 - pinfo/branches/cxx/src

Nathanael Nerode neroden-guest at costa.debian.org
Fri Aug 26 08:41:43 UTC 2005


Author: neroden-guest
Date: 2005-08-26 08:41:40 +0000 (Fri, 26 Aug 2005)
New Revision: 41

Modified:
   pinfo/branches/cxx/src/colors.cxx
   pinfo/branches/cxx/src/datatypes.cxx
   pinfo/branches/cxx/src/datatypes.h
   pinfo/branches/cxx/src/filehandling_functions.cxx
   pinfo/branches/cxx/src/filehandling_functions.h
   pinfo/branches/cxx/src/initializelinks.cxx
   pinfo/branches/cxx/src/mainfunction.cxx
   pinfo/branches/cxx/src/mainfunction.h
   pinfo/branches/cxx/src/manual.cxx
   pinfo/branches/cxx/src/menu_and_note_utils.cxx
   pinfo/branches/cxx/src/parse_config.cxx
   pinfo/branches/cxx/src/parse_config.h
   pinfo/branches/cxx/src/pinfo.cxx
   pinfo/branches/cxx/src/printinfo.cxx
   pinfo/branches/cxx/src/regexp_search.cxx
   pinfo/branches/cxx/src/sigblock.cxx
   pinfo/branches/cxx/src/signal_handler.cxx
   pinfo/branches/cxx/src/signal_handler.h
   pinfo/branches/cxx/src/snprintf.cxx
   pinfo/branches/cxx/src/utils.cxx
   pinfo/branches/cxx/src/video.cxx
   pinfo/branches/cxx/src/video.h
Log:
Reindent according to *my* preference.


Modified: pinfo/branches/cxx/src/colors.cxx
===================================================================
--- pinfo/branches/cxx/src/colors.cxx	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/colors.cxx	2005-08-26 08:41:40 UTC (rev 41)
@@ -21,144 +21,141 @@
 
 #include "common_includes.h"
 
-RCSID("$Id$")
-
+RCSID ("$Id$")
 #ifndef NO_COLOR_CURSES
-extern struct colours cols;
+     extern struct colours cols;
 #endif /* NO_COLOR_CURSES */
 
-int normal;
-int menuselected;
-int menu;
-int noteselected;
-int note;
-int topline;
-int bottomline;
-int manualbold;
-int manualitalic;
-int url;
-int urlselected;
-int infohighlight;
-int searchhighlight;
+     int normal;
+     int menuselected;
+     int menu;
+     int noteselected;
+     int note;
+     int topline;
+     int bottomline;
+     int manualbold;
+     int manualitalic;
+     int url;
+     int urlselected;
+     int infohighlight;
+     int searchhighlight;
 
-void
-initcolors()
+     void initcolors ()
 {
 #ifndef NO_COLOR_CURSES
-	if (has_colors())
-	{
-		start_color();
+  if (has_colors ()) {
+    start_color ();
 #ifdef HAVE_USE_DEFAULT_COLORS
-		use_default_colors();
+    use_default_colors ();
 #endif
-		normal = COLOR_PAIR(NORMAL);	/* normal text */
-		init_pair(NORMAL, cols.normal_fore, cols.normal_back);
-		if (cols.normal_bold)
-			normal |= A_BOLD;
-		if (cols.normal_blink)
-			normal |= A_BLINK;
+    normal = COLOR_PAIR (NORMAL);	/* normal text */
+    init_pair (NORMAL, cols.normal_fore, cols.normal_back);
+    if (cols.normal_bold)
+      normal |= A_BOLD;
+    if (cols.normal_blink)
+      normal |= A_BLINK;
 
-		menuselected = COLOR_PAIR(MENUSELECTED);		/* selected menu */
-		init_pair(MENUSELECTED, cols.menuselected_fore, cols.menuselected_back);
-		if (cols.menuselected_bold)
-			menuselected |= A_BOLD;
-		if (cols.menuselected_blink)
-			menuselected |= A_BLINK;
+    menuselected = COLOR_PAIR (MENUSELECTED);	/* selected menu */
+    init_pair (MENUSELECTED, cols.menuselected_fore, cols.menuselected_back);
+    if (cols.menuselected_bold)
+      menuselected |= A_BOLD;
+    if (cols.menuselected_blink)
+      menuselected |= A_BLINK;
 
-		menu = COLOR_PAIR(MENU);	/* just menu */
-		init_pair(MENU, cols.menu_fore, cols.menu_back);
-		if (cols.menu_bold)
-			menu |= A_BOLD;
-		if (cols.menu_blink)
-			menu |= A_BLINK;
+    menu = COLOR_PAIR (MENU);	/* just menu */
+    init_pair (MENU, cols.menu_fore, cols.menu_back);
+    if (cols.menu_bold)
+      menu |= A_BOLD;
+    if (cols.menu_blink)
+      menu |= A_BLINK;
 
-		noteselected = COLOR_PAIR(NOTESELECTED);		/* selected note */
-		init_pair(NOTESELECTED, cols.noteselected_fore, cols.noteselected_back);
-		if (cols.noteselected_bold)
-			noteselected |= A_BOLD;
-		if (cols.noteselected_blink)
-			noteselected |= A_BLINK;
+    noteselected = COLOR_PAIR (NOTESELECTED);	/* selected note */
+    init_pair (NOTESELECTED, cols.noteselected_fore, cols.noteselected_back);
+    if (cols.noteselected_bold)
+      noteselected |= A_BOLD;
+    if (cols.noteselected_blink)
+      noteselected |= A_BLINK;
 
-		note = COLOR_PAIR(NOTE);	/* just note */
-		init_pair(NOTE, cols.note_fore, cols.note_back);
-		if (cols.note_bold)
-			note |= A_BOLD;
-		if (cols.note_blink)
-			note |= A_BLINK;
+    note = COLOR_PAIR (NOTE);	/* just note */
+    init_pair (NOTE, cols.note_fore, cols.note_back);
+    if (cols.note_bold)
+      note |= A_BOLD;
+    if (cols.note_blink)
+      note |= A_BLINK;
 
-		topline = COLOR_PAIR(TOPLINE);	/* topline color */
-		init_pair(TOPLINE, cols.topline_fore, cols.topline_back);
-		if (cols.topline_bold)
-			topline |= A_BOLD;
-		if (cols.topline_blink)
-			topline |= A_BLINK;
+    topline = COLOR_PAIR (TOPLINE);	/* topline color */
+    init_pair (TOPLINE, cols.topline_fore, cols.topline_back);
+    if (cols.topline_bold)
+      topline |= A_BOLD;
+    if (cols.topline_blink)
+      topline |= A_BLINK;
 
-		bottomline = COLOR_PAIR(BOTTOMLINE);	/* bottomline color */
-		init_pair(BOTTOMLINE, cols.bottomline_fore, cols.bottomline_back);
-		if (cols.bottomline_bold)
-			bottomline |= A_BOLD;
-		if (cols.bottomline_blink)
-			bottomline |= A_BLINK;
+    bottomline = COLOR_PAIR (BOTTOMLINE);	/* bottomline color */
+    init_pair (BOTTOMLINE, cols.bottomline_fore, cols.bottomline_back);
+    if (cols.bottomline_bold)
+      bottomline |= A_BOLD;
+    if (cols.bottomline_blink)
+      bottomline |= A_BLINK;
 
-		manualbold = COLOR_PAIR(MANUALBOLD);	/* manual bold color */
-		init_pair(MANUALBOLD, cols.manualbold_fore, cols.manualbold_back);
-		if (cols.manualbold_bold)
-			manualbold |= A_BOLD;
-		if (cols.manualbold_blink)
-			manualbold |= A_BLINK;
+    manualbold = COLOR_PAIR (MANUALBOLD);	/* manual bold color */
+    init_pair (MANUALBOLD, cols.manualbold_fore, cols.manualbold_back);
+    if (cols.manualbold_bold)
+      manualbold |= A_BOLD;
+    if (cols.manualbold_blink)
+      manualbold |= A_BLINK;
 
-		manualitalic = COLOR_PAIR(MANUALITALIC);		/* manual italic color */
-		init_pair(MANUALITALIC, cols.manualitalic_fore, cols.manualitalic_back);
-		if (cols.manualitalic_bold)
-			manualitalic |= A_BOLD;
-		if (cols.manualitalic_blink)
-			manualitalic |= A_BLINK;
+    manualitalic = COLOR_PAIR (MANUALITALIC);	/* manual italic color */
+    init_pair (MANUALITALIC, cols.manualitalic_fore, cols.manualitalic_back);
+    if (cols.manualitalic_bold)
+      manualitalic |= A_BOLD;
+    if (cols.manualitalic_blink)
+      manualitalic |= A_BLINK;
 
-		url = COLOR_PAIR(URL);	/* url(http, ftp) color */
-		init_pair(URL, cols.url_fore, cols.url_back);
-		if (cols.url_bold)
-			url |= A_BOLD;
-		if (cols.url_blink)
-			url |= A_BLINK;
+    url = COLOR_PAIR (URL);	/* url(http, ftp) color */
+    init_pair (URL, cols.url_fore, cols.url_back);
+    if (cols.url_bold)
+      url |= A_BOLD;
+    if (cols.url_blink)
+      url |= A_BLINK;
 
-		urlselected = COLOR_PAIR(URLSELECTED);	/* selected url */
-		init_pair(URLSELECTED, cols.urlselected_fore, cols.urlselected_back);
-		if (cols.urlselected_bold)
-			urlselected |= A_BOLD;
-		if (cols.urlselected_blink)
-			urlselected |= A_BLINK;
+    urlselected = COLOR_PAIR (URLSELECTED);	/* selected url */
+    init_pair (URLSELECTED, cols.urlselected_fore, cols.urlselected_back);
+    if (cols.urlselected_bold)
+      urlselected |= A_BOLD;
+    if (cols.urlselected_blink)
+      urlselected |= A_BLINK;
 
-		infohighlight = COLOR_PAIR(INFOHIGHLIGHT);	/* highlight for info quotes */
-		init_pair(INFOHIGHLIGHT, cols.infohighlight_fore, cols.infohighlight_back);
-		if (cols.infohighlight_bold)
-			infohighlight |= A_BOLD;
-		if (cols.infohighlight_blink)
-			infohighlight |= A_BLINK;
+    infohighlight = COLOR_PAIR (INFOHIGHLIGHT);	/* highlight for info quotes */
+    init_pair (INFOHIGHLIGHT, cols.infohighlight_fore,
+	       cols.infohighlight_back);
+    if (cols.infohighlight_bold)
+      infohighlight |= A_BOLD;
+    if (cols.infohighlight_blink)
+      infohighlight |= A_BLINK;
 
-		searchhighlight = COLOR_PAIR(SEARCHHIGHLIGHT);	/* highlight for info quotes */
-		init_pair(SEARCHHIGHLIGHT, cols.searchhighlight_fore, cols.searchhighlight_back);
-		if (cols.searchhighlight_bold)
-			searchhighlight |= A_BOLD;
-		if (cols.searchhighlight_blink)
-			searchhighlight |= A_BLINK;
-	}
-	else
-	{
+    searchhighlight = COLOR_PAIR (SEARCHHIGHLIGHT);	/* highlight for info quotes */
+    init_pair (SEARCHHIGHLIGHT, cols.searchhighlight_fore,
+	       cols.searchhighlight_back);
+    if (cols.searchhighlight_bold)
+      searchhighlight |= A_BOLD;
+    if (cols.searchhighlight_blink)
+      searchhighlight |= A_BLINK;
+  } else {
 #endif /* NO_COLOR_CURSES */
-		normal = A_NORMAL;
-		menu = A_BOLD;
-		note = A_BOLD;
-		url = A_BOLD;
-		menuselected = A_REVERSE;
-		noteselected = A_REVERSE;
-		urlselected = A_REVERSE;
-		topline = A_REVERSE;
-		bottomline = A_REVERSE;
-		manualbold = A_BOLD;
-		manualitalic = A_BOLD;
-		infohighlight = A_BOLD;
-		searchhighlight = A_BOLD;
+    normal = A_NORMAL;
+    menu = A_BOLD;
+    note = A_BOLD;
+    url = A_BOLD;
+    menuselected = A_REVERSE;
+    noteselected = A_REVERSE;
+    urlselected = A_REVERSE;
+    topline = A_REVERSE;
+    bottomline = A_REVERSE;
+    manualbold = A_BOLD;
+    manualitalic = A_BOLD;
+    infohighlight = A_BOLD;
+    searchhighlight = A_BOLD;
 #ifndef NO_COLOR_CURSES
-	}
+  }
 #endif /* NO_COLOR_CURSES */
 }

Modified: pinfo/branches/cxx/src/datatypes.cxx
===================================================================
--- pinfo/branches/cxx/src/datatypes.cxx	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/datatypes.cxx	2005-08-26 08:41:40 UTC (rev 41)
@@ -20,172 +20,177 @@
  ***************************************************************************/
 #include "common_includes.h"
 
-RCSID("$Id$")
+RCSID ("$Id$")
 
-int verbose = 1;
+     int verbose = 1;
 
-char *filenameprefix = 0;
+     char *filenameprefix = 0;
 
-char *httpviewer = "lynx";
-char *ftpviewer = "lynx";
-char *maileditor = "mail";
-char *printutility = "lpr";
-char *manlinks = "1:8:2:3:4:5:6:7:9:n:l:p:o:3X11:3Xt:3X:3x";
-char *configuredinfopath = "/usr/share/info:/usr/local/share/info:/opt/info";
-char *ignoredmacros = 0;
-char *rcfile = NULL;
+     char *httpviewer = "lynx";
+     char *ftpviewer = "lynx";
+     char *maileditor = "mail";
+     char *printutility = "lpr";
+     char *manlinks = "1:8:2:3:4:5:6:7:9:n:l:p:o:3X11:3Xt:3X:3x";
+     char *configuredinfopath =
+       "/usr/share/info:/usr/local/share/info:/opt/info";
+     char *ignoredmacros = 0;
+     char *rcfile = NULL;
 
-char *tmpfilename1 = 0;
-char *tmpfilename2 = 0;
+     char *tmpfilename1 = 0;
+     char *tmpfilename2 = 0;
 
-SearchAgain searchagain;
+     SearchAgain searchagain;
 
-HyperObject *hyperobjects = 0;
-int hyperobjectcount = 0;
+     HyperObject *hyperobjects = 0;
+     int hyperobjectcount = 0;
 
-Indirect *indirect = 0;
-TagTable *tag_table = 0;
-long FirstNodeOffset = 0;
-char FirstNodeName[256];
-int IndirectEntries = 0;
-int TagTableEntries = 0;
-int maxx, maxy;
-int CutManHeaders = 0;
-int CutEmptyManLines = 0;
-int ForceManualTagTable = 0;
-int LongManualLinks = 0;
-char *ManOptions = "";
-char *StderrRedirection = "2> /dev/null";
-int FilterB7 = 0;
-int ConfirmQuit = 0;
-int QuitConfirmDefault = 0;
-int ClearScreenAtExit = 0;
-int CallReadlineHistory = 1;
+     Indirect *indirect = 0;
+     TagTable *tag_table = 0;
+     long FirstNodeOffset = 0;
+     char FirstNodeName[256];
+     int IndirectEntries = 0;
+     int TagTableEntries = 0;
+     int maxx, maxy;
+     int CutManHeaders = 0;
+     int CutEmptyManLines = 0;
+     int ForceManualTagTable = 0;
+     int LongManualLinks = 0;
+     char *ManOptions = "";
+     char *StderrRedirection = "2> /dev/null";
+     int FilterB7 = 0;
+     int ConfirmQuit = 0;
+     int QuitConfirmDefault = 0;
+     int ClearScreenAtExit = 0;
+     int CallReadlineHistory = 1;
 
-InfoHistory infohistory;
+     InfoHistory infohistory;
 
-int npos = -1;
-int ncursor = -1;
-int nmenu = -1;
-int use_apropos = 0;
-int plain_apropos = 0;
-int use_manual = 0;
-int use_raw_filename = 0;
-int quote_ignored = 0;
+     int npos = -1;
+     int ncursor = -1;
+     int nmenu = -1;
+     int use_apropos = 0;
+     int plain_apropos = 0;
+     int use_manual = 0;
+     int use_raw_filename = 0;
+     int quote_ignored = 0;
 
-int winchanged = 0;
+     int winchanged = 0;
 
-void
-inithistory()
+     void inithistory ()
 {
-	infohistory.length = 0;
-	infohistory.node = 0;
-	infohistory.file = 0;
-	infohistory.pos = 0;
-	infohistory.cursor = 0;
-	infohistory.menu = 0;
+  infohistory.length = 0;
+  infohistory.node = 0;
+  infohistory.file = 0;
+  infohistory.pos = 0;
+  infohistory.cursor = 0;
+  infohistory.menu = 0;
 }
 
 /*
  * Add history entry
  */
 void
-addinfohistory(char *file, char *node, int cursor, int menu, int pos)
+addinfohistory (char *file, char *node, int cursor, int menu, int pos)
 {
-	if (!infohistory.length)
-	{
-		infohistory.length++;
-		infohistory.node = (char**)xmalloc(sizeof(char *) * 2);
-		infohistory.node[0] = 0;
-		infohistory.file = (char**)xmalloc(sizeof(char *) * 2);
-		infohistory.file[0] = 0;
-		infohistory.pos = (int*)xmalloc(sizeof(int) * 2);
-		infohistory.cursor = (int*)xmalloc(sizeof(int) * 2);
-		infohistory.menu = (int*)xmalloc(sizeof(int) * 2);
-	}
-	else
-	{
-		infohistory.length++;
-		infohistory.node = (char**)xrealloc(infohistory.node, sizeof(char *) *(infohistory.length + 1));
-		infohistory.file = (char**)xrealloc(infohistory.file, sizeof(char *) *(infohistory.length + 1));
-		infohistory.pos = (int*)xrealloc(infohistory.pos, sizeof(int) *(infohistory.length + 1));
-		infohistory.cursor = (int*)xrealloc(infohistory.cursor, sizeof(int) *(infohistory.length + 1));
-		infohistory.menu = (int*)xrealloc(infohistory.menu, sizeof(int) *(infohistory.length + 1));
-	}
-	infohistory.node[infohistory.length] = (char*)xmalloc(strlen(node) + 1);
-	strcpy(infohistory.node[infohistory.length], node);
-	infohistory.file[infohistory.length] = (char*)xmalloc(strlen(file) + 1);
-	strcpy(infohistory.file[infohistory.length], file);
-	infohistory.pos[infohistory.length] = pos;
-	infohistory.cursor[infohistory.length] = cursor;
-	infohistory.menu[infohistory.length] = menu;
+  if (!infohistory.length) {
+    infohistory.length++;
+    infohistory.node = (char **) xmalloc (sizeof (char *) * 2);
+    infohistory.node[0] = 0;
+    infohistory.file = (char **) xmalloc (sizeof (char *) * 2);
+    infohistory.file[0] = 0;
+    infohistory.pos = (int *) xmalloc (sizeof (int) * 2);
+    infohistory.cursor = (int *) xmalloc (sizeof (int) * 2);
+    infohistory.menu = (int *) xmalloc (sizeof (int) * 2);
+  } else {
+    infohistory.length++;
+    infohistory.node =
+      (char **) xrealloc (infohistory.node,
+			  sizeof (char *) * (infohistory.length + 1));
+    infohistory.file =
+      (char **) xrealloc (infohistory.file,
+			  sizeof (char *) * (infohistory.length + 1));
+    infohistory.pos =
+      (int *) xrealloc (infohistory.pos,
+			sizeof (int) * (infohistory.length + 1));
+    infohistory.cursor =
+      (int *) xrealloc (infohistory.cursor,
+			sizeof (int) * (infohistory.length + 1));
+    infohistory.menu =
+      (int *) xrealloc (infohistory.menu,
+			sizeof (int) * (infohistory.length + 1));
+  }
+  infohistory.node[infohistory.length] = (char *) xmalloc (strlen (node) + 1);
+  strcpy (infohistory.node[infohistory.length], node);
+  infohistory.file[infohistory.length] = (char *) xmalloc (strlen (file) + 1);
+  strcpy (infohistory.file[infohistory.length], file);
+  infohistory.pos[infohistory.length] = pos;
+  infohistory.cursor[infohistory.length] = cursor;
+  infohistory.menu[infohistory.length] = menu;
 }
 
 /*
  * Delete last history entry
  */
 void
-dellastinfohistory()
+dellastinfohistory ()
 {
-	if (infohistory.length)
-	{
-		if (infohistory.node[infohistory.length])
-		{
-			xfree(infohistory.node[infohistory.length]);
-			infohistory.node[infohistory.length] = 0;
-		}
-		if (infohistory.file[infohistory.length])
-		{
-			xfree(infohistory.file[infohistory.length]);
-			infohistory.file[infohistory.length] = 0;
-		}
-		if (infohistory.length)
-			infohistory.length--;
-		if (infohistory.length)
-		{
-			infohistory.node = (char**)xrealloc(infohistory.node, sizeof(char *) *(infohistory.length + 1));
-			infohistory.file = (char**)xrealloc(infohistory.file, sizeof(char *) *(infohistory.length + 1));
-			infohistory.pos = (int*)xrealloc(infohistory.pos, sizeof(int) *(infohistory.length + 1));
-			infohistory.cursor = (int*)xrealloc(infohistory.cursor, sizeof(int) *(infohistory.length + 1));
-			infohistory.menu = (int*)xrealloc(infohistory.menu, sizeof(int) *(infohistory.length + 1));
-		}
-		else
-		{
-			if (infohistory.node)
-			{
-				xfree(infohistory.node);
-				infohistory.node = 0;
-			}
-			if (infohistory.file)
-			{
-				xfree(infohistory.file);
-				infohistory.file = 0;
-			}
-			if (infohistory.pos)
-			{
-				xfree(infohistory.pos);
-				infohistory.pos = 0;
-			}
-			if (infohistory.cursor)
-			{
-				xfree(infohistory.cursor);
-				infohistory.cursor = 0;
-			}
-			if (infohistory.menu)
-			{
-				xfree(infohistory.menu);
-				infohistory.menu = 0;
-			}
-		}
-	}
+  if (infohistory.length) {
+    if (infohistory.node[infohistory.length]) {
+      xfree (infohistory.node[infohistory.length]);
+      infohistory.node[infohistory.length] = 0;
+    }
+    if (infohistory.file[infohistory.length]) {
+      xfree (infohistory.file[infohistory.length]);
+      infohistory.file[infohistory.length] = 0;
+    }
+    if (infohistory.length)
+      infohistory.length--;
+    if (infohistory.length) {
+      infohistory.node =
+	(char **) xrealloc (infohistory.node,
+			    sizeof (char *) * (infohistory.length + 1));
+      infohistory.file =
+	(char **) xrealloc (infohistory.file,
+			    sizeof (char *) * (infohistory.length + 1));
+      infohistory.pos =
+	(int *) xrealloc (infohistory.pos,
+			  sizeof (int) * (infohistory.length + 1));
+      infohistory.cursor =
+	(int *) xrealloc (infohistory.cursor,
+			  sizeof (int) * (infohistory.length + 1));
+      infohistory.menu =
+	(int *) xrealloc (infohistory.menu,
+			  sizeof (int) * (infohistory.length + 1));
+    } else {
+      if (infohistory.node) {
+	xfree (infohistory.node);
+	infohistory.node = 0;
+      }
+      if (infohistory.file) {
+	xfree (infohistory.file);
+	infohistory.file = 0;
+      }
+      if (infohistory.pos) {
+	xfree (infohistory.pos);
+	infohistory.pos = 0;
+      }
+      if (infohistory.cursor) {
+	xfree (infohistory.cursor);
+	infohistory.cursor = 0;
+      }
+      if (infohistory.menu) {
+	xfree (infohistory.menu);
+	infohistory.menu = 0;
+      }
+    }
+  }
 }
 
 void
-clearfilenameprefix()
+clearfilenameprefix ()
 {
-	if (filenameprefix)
-	{
-		xfree(filenameprefix);
-		filenameprefix = 0;
-	}
+  if (filenameprefix) {
+    xfree (filenameprefix);
+    filenameprefix = 0;
+  }
 }

Modified: pinfo/branches/cxx/src/datatypes.h
===================================================================
--- pinfo/branches/cxx/src/datatypes.h	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/datatypes.h	2005-08-26 08:41:40 UTC (rev 41)
@@ -35,54 +35,54 @@
 
 typedef struct
 {
-	char lastsearch[256];	/* last searched regexp */
-	char type;				/* type of the last search (global/local) */
-	int search;				/* if true -- search again */
+  char lastsearch[256];		/* last searched regexp */
+  char type;			/* type of the last search (global/local) */
+  int search;			/* if true -- search again */
 }
 SearchAgain;
 
 typedef struct
 {
-	char filename[256];		/* name of file, where's the given offset */
-	long offset;			/* offset of the node */
+  char filename[256];		/* name of file, where's the given offset */
+  long offset;			/* offset of the node */
 }
 Indirect;
 
 typedef struct
 {
-	char nodename[256];		/* name of the node */
-	long offset;			/* offset of the node */
+  char nodename[256];		/* name of the node */
+  long offset;			/* offset of the node */
 }
 TagTable;
 
 typedef struct
 {
-	int length;
-	char **node;	/* array of history of nodes */
-	char **file;	/* array of history of files, associated with given nodes */
-	int *pos;		/* history of pos offsets in viewed nodes */
-	int *cursor;	/* history of cursor offsets in viewed nodes */
-	int *menu;		/* history of menu positions (in sequential reading) in viewed nodes */
+  int length;
+  char **node;			/* array of history of nodes */
+  char **file;			/* array of history of files, associated with given nodes */
+  int *pos;			/* history of pos offsets in viewed nodes */
+  int *cursor;			/* history of cursor offsets in viewed nodes */
+  int *menu;			/* history of menu positions (in sequential reading) in viewed nodes */
 }
 InfoHistory;
 
 typedef struct
 {
-	int line;			/* line number of the place where the link is */
-	int col;			/* column number ----||---- */
-	int breakpos;		/* col number, where the links breaks to next line */
-	int type;			/* type of link: 0 -  * menu::,
-						   1 -  * Comment: menu.
-						   2 -  *note note::
-						   3 -  *note Comment: note.
-						   4 -  http url
-						   5 -  ftp url
-						   6 -  mailto url */
-	char node[256];		/* name of the referenced node */
-	int nodelen;		/* length of string node */
-	char file[256];		/* name of the referenced file -- none=this file */
-	int filelen;		/* length of string file */
-	int tagtableoffset;	/* offset in tag table */
+  int line;			/* line number of the place where the link is */
+  int col;			/* column number ----||---- */
+  int breakpos;			/* col number, where the links breaks to next line */
+  int type;			/* type of link: 0 -  * menu::,
+				   1 -  * Comment: menu.
+				   2 -  *note note::
+				   3 -  *note Comment: note.
+				   4 -  http url
+				   5 -  ftp url
+				   6 -  mailto url */
+  char node[256];		/* name of the referenced node */
+  int nodelen;			/* length of string node */
+  char file[256];		/* name of the referenced file -- none=this file */
+  int filelen;			/* length of string file */
+  int tagtableoffset;		/* offset in tag table */
 }
 HyperObject;
 

Modified: pinfo/branches/cxx/src/filehandling_functions.cxx
===================================================================
--- pinfo/branches/cxx/src/filehandling_functions.cxx	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/filehandling_functions.cxx	2005-08-26 08:41:40 UTC (rev 41)
@@ -22,17 +22,22 @@
 
 #include "common_includes.h"
 #include <string>
-using std::string;
-RCSID("$Id$")
+using
+  std::string;
+RCSID
+  ("$Id$")
 
-typedef struct
-{
-	char *suffix;
-	char *command;
-}
+     typedef struct
+     {
+       char *
+	 suffix;
+       char *
+	 command;
+     }
 Suffixes;
 
-char * basename(char *filename);
+     char *
+     basename (char *filename);
 
 
 /******************************************************************************
@@ -44,617 +49,588 @@
 
 #define SuffixesNumber 4
 
-Suffixes suffixes[SuffixesNumber] =
-{
-	{"", 		"cat"},
-	{".gz",		"gzip -d -q -c"},
-	{".Z",		"gzip -d -q -c"},
-	{".bz2",	"bzip2 -d -c"}
-};
+     Suffixes
+       suffixes[SuffixesNumber] = {
+       {"", "cat"},
+       {".gz", "gzip -d -q -c"},
+       {".Z", "gzip -d -q -c"},
+       {".bz2", "bzip2 -d -c"}
+     };
 
 /*****************************************************************************/
 
-char **infopaths = 0;
-int infopathcount = 0;
+char **
+  infopaths = 0;
+int
+  infopathcount = 0;
 
 int
-qsort_cmp(const void *base, const void *compared)
+qsort_cmp (const void *base, const void *compared)
 {
-	char *cbase =((TagTable *) base)->nodename;
-	char *ccompared =((TagTable *) compared)->nodename;
-	return compare_tag_table_string(cbase, ccompared);
+  char *
+    cbase = ((TagTable *) base)->nodename;
+  char *
+    ccompared = ((TagTable *) compared)->nodename;
+  return compare_tag_table_string (cbase, ccompared);
 }
 
 int
-matchfile(char **buf, char *name)
+matchfile (char **buf, char *name)
 {
 #define Buf	(*buf)
-	DIR *dir;
-	char *bname=basename(name);
-	struct dirent *dp;
-	int namelen = strlen(bname);
-	int matched = 0;
-	if (Buf[strlen(Buf)-1]!='/')
-		strcat(Buf,"/");
-	strncat(Buf,name,bname-name);
-	dir = opendir(Buf);	/* here we always have '/' at end */
-	if (dir == NULL)
-		return 1;
-	while ((dp = readdir(dir)) != NULL)
-	{
-		if (strncmp(dp->d_name, bname, namelen) == 0)
-		{
-			char *tmp = strdup(dp->d_name);
-			int dl;
-			strip_compression_suffix(tmp);
-			dl = strlen(tmp);
-			if ((!isdigit(tmp[dl - 1])) &&(!isalpha(tmp[namelen])))
-				/* if it's not eg. info-2.gz, but info.gz, the primary page
-				 * && it's not a different name(eg. gdbm instead gdb) */
-			{
-				if ((!matched) ||(strlen(tmp) < matched))
-				{
-					Buf[strlen(Buf) - matched - 1] = '\0';
-					strcat(Buf, "/");
-					strcat(Buf, tmp);
-					matched = strlen(tmp);
-				}
-			}
-		}
+  DIR *
+    dir;
+  char *
+    bname = basename (name);
+  struct dirent *
+    dp;
+  int
+    namelen = strlen (bname);
+  int
+    matched = 0;
+  if (Buf[strlen (Buf) - 1] != '/')
+    strcat (Buf, "/");
+  strncat (Buf, name, bname - name);
+  dir = opendir (Buf);		/* here we always have '/' at end */
+  if (dir == NULL)
+    return 1;
+  while ((dp = readdir (dir)) != NULL) {
+    if (strncmp (dp->d_name, bname, namelen) == 0) {
+      char *
+	tmp = strdup (dp->d_name);
+      int
+	dl;
+      strip_compression_suffix (tmp);
+      dl = strlen (tmp);
+      if ((!isdigit (tmp[dl - 1])) && (!isalpha (tmp[namelen])))
+	/* if it's not eg. info-2.gz, but info.gz, the primary page
+	 * && it's not a different name(eg. gdbm instead gdb) */
+      {
+	if ((!matched) || (strlen (tmp) < matched)) {
+	  Buf[strlen (Buf) - matched - 1] = '\0';
+	  strcat (Buf, "/");
+	  strcat (Buf, tmp);
+	  matched = strlen (tmp);
 	}
-	closedir(dir);
-	if (matched)
-		return 0;
-	return 1;
+      }
+    }
+  }
+  closedir (dir);
+  if (matched)
+    return 0;
+  return 1;
 #undef Buf
 }
 
 FILE *
-dirpage_lookup(char **type, char ***message, long *lines,
+dirpage_lookup (char **type, char ***message, long *lines,
 		char *filename, char **first_node)
 {
 #define Type	(*type)
 #define Message	(*message)
 #define Lines	(*lines)
-	FILE *id = 0;
-	int filenamelen = strlen(filename);
-	int goodHit = 0, perfectHit = 0;
-	char name[256];
-	char file[256];
-	int i;
-	id = opendirfile(0);
-	if (!id)
-		return 0;
-	read_item(id, type, message, lines);
-	for (i = 1; i < Lines; i++)	/* initialize node-links for every line */
-	{
-		if ((Message[i][0] == '*') &&(Message[i][1] == ' ') &&(!perfectHit))
-		{
-			char *nameend = strchr(Message[i], ':');
-			if (nameend)
-			{
-				if (*(nameend + 1) != ':')	/* form: `* name:(file)node.' */
-				{
-					char *filestart = strchr(nameend, '(');
-					if (filestart)
-					{
-						char *fileend = strchr(filestart, ')');
-						if (fileend)
-						{
-							char *dot = strchr(fileend, '.');
-							if (dot)
-							{
-								if (strncmp(filename, Message[i] + 2, filenamelen) == 0)
-								{
-									char *tmp = name;
-									strncpy(file, filestart + 1, fileend - filestart - 1);
-									file[fileend - filestart - 1] = 0;
-									strncpy(name, fileend + 1, dot - fileend - 1);
-									name[dot - fileend - 1] = 0;
-									while (isspace(*tmp))
-										tmp++;
-									if (strlen(name))
-									{
-										*first_node = (char*)xmalloc(strlen(tmp) + 1);
-										strcpy((*first_node), tmp);
-									}
-									if (id)
-										fclose(id);	/* we don't need dirfile/badly matched infofile open anymore */
-									id = 0;
-									if (!strstr(file, ".info"))
-										strcat(file, ".info");
-									id = openinfo(file, 0);
-									goodHit = 1;
-									if ((nameend - Message[i]) - 2 == filenamelen)	/* the name matches perfectly to the query */
-										perfectHit = 1;	/* stop searching for another matches, and use this one */
-								}
-							}
-						}
-					}
-				}
-			}
+  FILE *
+    id = 0;
+  int
+    filenamelen = strlen (filename);
+  int
+    goodHit = 0, perfectHit = 0;
+  char
+    name[256];
+  char
+    file[256];
+  int
+    i;
+  id = opendirfile (0);
+  if (!id)
+    return 0;
+  read_item (id, type, message, lines);
+  for (i = 1; i < Lines; i++) {	/* initialize node-links for every line */
+    if ((Message[i][0] == '*') && (Message[i][1] == ' ') && (!perfectHit)) {
+      char *
+	nameend = strchr (Message[i], ':');
+      if (nameend) {
+	if (*(nameend + 1) != ':') {	/* form: `* name:(file)node.' */
+	  char *
+	    filestart = strchr (nameend, '(');
+	  if (filestart) {
+	    char *
+	      fileend = strchr (filestart, ')');
+	    if (fileend) {
+	      char *
+		dot = strchr (fileend, '.');
+	      if (dot) {
+		if (strncmp (filename, Message[i] + 2, filenamelen) == 0) {
+		  char *
+		    tmp = name;
+		  strncpy (file, filestart + 1, fileend - filestart - 1);
+		  file[fileend - filestart - 1] = 0;
+		  strncpy (name, fileend + 1, dot - fileend - 1);
+		  name[dot - fileend - 1] = 0;
+		  while (isspace (*tmp))
+		    tmp++;
+		  if (strlen (name)) {
+		    *first_node = (char *) xmalloc (strlen (tmp) + 1);
+		    strcpy ((*first_node), tmp);
+		  }
+		  if (id)
+		    fclose (id);	/* we don't need dirfile/badly matched infofile open anymore */
+		  id = 0;
+		  if (!strstr (file, ".info"))
+		    strcat (file, ".info");
+		  id = openinfo (file, 0);
+		  goodHit = 1;
+		  if ((nameend - Message[i]) - 2 == filenamelen)	/* the name matches perfectly to the query */
+		    perfectHit = 1;	/* stop searching for another matches, and use this one */
 		}
+	      }
+	    }
+	  }
 	}
-	if (!goodHit)
-	{
-		fclose(id);
-		id = 0;
-	}
-	return id;
+      }
+    }
+  }
+  if (!goodHit) {
+    fclose (id);
+    id = 0;
+  }
+  return id;
 #undef Lines
 #undef Message
 #undef Type
 }
 
 void
-freeitem(char **type, char ***buf, long *lines)
+freeitem (char **type, char ***buf, long *lines)
 {
 #define Type	(*type)
 #define Buf		(*buf)
 #define Lines	(*lines)
-	long i;
+  long i;
 
-	if (Type != 0)
-	{
-		xfree(Type);
-		Type = 0;
-	}
-	if (Buf != 0)
-	{
-		for (i = 1; i <= Lines; i++)
-			if (Buf[i] != 0)
-			{
-				xfree(Buf[i]);
-				Buf[i] = 0;
-			}
-		xfree(Buf);
-		Buf = 0;
-	}
+  if (Type != 0) {
+    xfree (Type);
+    Type = 0;
+  }
+  if (Buf != 0) {
+    for (i = 1; i <= Lines; i++)
+      if (Buf[i] != 0) {
+	xfree (Buf[i]);
+	Buf[i] = 0;
+      }
+    xfree (Buf);
+    Buf = 0;
+  }
 #undef Type
 #undef Buf
 #undef Lines
 }
 
 void
-read_item(FILE * id, char **type, char ***buf, long *lines)
+read_item (FILE * id, char **type, char ***buf, long *lines)
 {
 
 #define Type	(*type)
 #define Buf		(*buf)
 #define Lines	(*lines)
 
-	freeitem(type, buf, lines);	/* free previously allocated memory */
+  freeitem (type, buf, lines);	/* free previously allocated memory */
 
-	while (fgetc(id) != INFO_TAG);	/*
-									 * seek precisely on the INFO_TAG
-									 *(the seeknode function may be
-									 * imprecise in combination with
-									 * some weird tag_tables).
-									 */
-	while (fgetc(id) != '\n');	/* then skip the trailing `\n' */
+  while (fgetc (id) != INFO_TAG);	/*
+					 * seek precisely on the INFO_TAG
+					 *(the seeknode function may be
+					 * imprecise in combination with
+					 * some weird tag_tables).
+					 */
+  while (fgetc (id) != '\n');	/* then skip the trailing `\n' */
 
-	Type = (char*)xmalloc(1024);	/* read the header line */
-	fgets(Type, 1024, id);
-	Type = (char*)xrealloc(Type, strlen(Type) + 1);
-	Lines = 0;			/* set number of lines to 0 */
+  Type = (char *) xmalloc (1024);	/* read the header line */
+  fgets (Type, 1024, id);
+  Type = (char *) xrealloc (Type, strlen (Type) + 1);
+  Lines = 0;			/* set number of lines to 0 */
 
-	Buf = (char**)xmalloc(sizeof(char **));	/* initial buffer allocation */
-	do
-	{
-		if (feof(id))		/* don't read after eof in info file */
-			break;
-		if (Lines)		/* make a reallocation for new input line */
-		{
-			Buf[Lines] = (char*)xrealloc(Buf[Lines], strlen(Buf[Lines]) + 1);
-		}
-		Lines++;			/* increase the read lines number */
+  Buf = (char **) xmalloc (sizeof (char **));	/* initial buffer allocation */
+  do {
+    if (feof (id))		/* don't read after eof in info file */
+      break;
+    if (Lines) {		/* make a reallocation for new input line */
+      Buf[Lines] = (char *) xrealloc (Buf[Lines], strlen (Buf[Lines]) + 1);
+    }
+    Lines++;			/* increase the read lines number */
 
-		Buf = (char**)xrealloc(Buf, sizeof(char **) *(Lines + 1));
-		Buf[Lines] = (char*)xmalloc(1024);
-		Buf[Lines][0] = 0;
+    Buf = (char **) xrealloc (Buf, sizeof (char **) * (Lines + 1));
+    Buf[Lines] = (char *) xmalloc (1024);
+    Buf[Lines][0] = 0;
 
-		if (fgets(Buf[Lines], 1024, id) == NULL)		/*
-														 * if the line was not found
-														 * in input file,
-														 * fill the allocated space
-														 * with empty line.
-														 */
-			strcpy(Buf[Lines], "\n");
-	}
-	while (Buf[Lines][0] != INFO_TAG);	/* repeat until new node mark is found */
+    if (fgets (Buf[Lines], 1024, id) == NULL)	/*
+						 * if the line was not found
+						 * in input file,
+						 * fill the allocated space
+						 * with empty line.
+						 */
+      strcpy (Buf[Lines], "\n");
+  }
+  while (Buf[Lines][0] != INFO_TAG);	/* repeat until new node mark is found */
 
 
-	if (Lines)			/* added for simplifing two-line ismenu and isnote functs */
-	{
-		strcpy(Buf[Lines], "\n");
-		Buf[Lines] = (char*)xrealloc(Buf[Lines], strlen(Buf[Lines]) + 1);
-	}
+  if (Lines) {			/* added for simplifing two-line ismenu and isnote functs */
+    strcpy (Buf[Lines], "\n");
+    Buf[Lines] = (char *) xrealloc (Buf[Lines], strlen (Buf[Lines]) + 1);
+  }
 
-	fseek(id, -2, SEEK_CUR);
+  fseek (id, -2, SEEK_CUR);
 #undef Type
 #undef Buf
 #undef Lines
 
 }
+
 void
-load_indirect(char **message, long lines)
+load_indirect (char **message, long lines)
 {
-	int cut = 0;			/* number of invalid entries */
-	indirect = (Indirect*)xmalloc((lines + 1) * sizeof(Indirect));
-	for (long i = 1; i < lines; i++) {
-		string wsk_string = message[i];
-		unsigned int n = 0;
-		/* Find the first colon, but not in position 0 */
-		n = wsk_string.find(':', 1);
-		if (n == string::npos) {
-			/* No colon.  Invalid entry. */
-			cut++;			/* if the entry was invalid, make indirect count shorter */
-		} else {
-			string filename;
-			filename = wsk_string.substr(0, n);
-			strncpy(indirect[i - cut].filename, filename.c_str(), 200);
+  int cut = 0;			/* number of invalid entries */
+  indirect = (Indirect *) xmalloc ((lines + 1) * sizeof (Indirect));
+  for (long i = 1; i < lines; i++) {
+    string wsk_string = message[i];
+    unsigned int n = 0;
+    /* Find the first colon, but not in position 0 */
+    n = wsk_string.find (':', 1);
+    if (n == string::npos) {
+      /* No colon.  Invalid entry. */
+      cut++;			/* if the entry was invalid, make indirect count shorter */
+    } else {
+      string filename;
+      filename = wsk_string.substr (0, n);
+      strncpy (indirect[i - cut].filename, filename.c_str (), 200);
 
-			string remainder;
-			remainder = wsk_string.substr(n + 2, string::npos);
-			indirect[i - cut].offset = atoi(remainder.c_str());
-		}
-	}
-	IndirectEntries = lines - 1 - cut;
+      string remainder;
+      remainder = wsk_string.substr (n + 2, string::npos);
+      indirect[i - cut].offset = atoi (remainder.c_str ());
+    }
+  }
+  IndirectEntries = lines - 1 - cut;
 }
 
 void
-load_tag_table(char **message, long lines)
+load_tag_table (char **message, long lines)
 {
-	long i;
-	char *wsk, *wsk1;
-	int is_indirect = 0;
-	register unsigned int j;
-	register char *res;
-	int cut = 0;			/* holds the number of corrupt lines */
+  long i;
+  char *wsk, *wsk1;
+  int is_indirect = 0;
+  register unsigned int j;
+  register char *res;
+  int cut = 0;			/* holds the number of corrupt lines */
 
-	/*
-	 * if in the first line there is a(indirect) string, skip that line
-	 * by adding the value of is_indirect=1 to all message[line] references.
-	 */
-	if (strcasecmp("(Indirect)", message[1]) == 0)
-		is_indirect = 1;
-	tag_table = (TagTable*)xmalloc((lines + 1) * sizeof(TagTable));
-	for (i = 1; i < lines - is_indirect; i++)
-	{
-		char *check;
-		wsk = message[i + is_indirect];
-		check = wsk + strlen(wsk);
-		while (!isspace(*(++wsk)))
-		{
-			if (wsk >= check)
-			{
-				wsk--;
-				break;
-			}
-		}
-		wsk++;
-		wsk1 = wsk;
-		check = wsk1 + strlen(wsk1);
-		while (*(++wsk1) != INDIRECT_TAG)
-		{
-			if (wsk1 >= check)
-				break;
-		}
-		if (wsk1 < check)
-		{
-			(*wsk1) = 0;
-			/*
-			 * original: sprintf(tag_table[i-cut].nodename,"%s",wsk);
-			 * below is a faster version.
-			 */
-			res = (char*)memcpy(tag_table[i - cut].nodename, wsk, j =(size_t)(wsk1 - wsk));
-			(*(res += j + 1)) = 0;
-			(*wsk1) = INDIRECT_TAG;
-			wsk1++;
-			tag_table[i - cut].offset = atoi(wsk1);
-		}
-		else
-			cut++;			/* increment the number of corrupt entries */
-	}
-	TagTableEntries = lines - 1 - is_indirect - cut;
+  /*
+   * if in the first line there is a(indirect) string, skip that line
+   * by adding the value of is_indirect=1 to all message[line] references.
+   */
+  if (strcasecmp ("(Indirect)", message[1]) == 0)
+    is_indirect = 1;
+  tag_table = (TagTable *) xmalloc ((lines + 1) * sizeof (TagTable));
+  for (i = 1; i < lines - is_indirect; i++) {
+    char *check;
+    wsk = message[i + is_indirect];
+    check = wsk + strlen (wsk);
+    while (!isspace (*(++wsk))) {
+      if (wsk >= check) {
+	wsk--;
+	break;
+      }
+    }
+    wsk++;
+    wsk1 = wsk;
+    check = wsk1 + strlen (wsk1);
+    while (*(++wsk1) != INDIRECT_TAG) {
+      if (wsk1 >= check)
+	break;
+    }
+    if (wsk1 < check) {
+      (*wsk1) = 0;
+      /*
+       * original: sprintf(tag_table[i-cut].nodename,"%s",wsk);
+       * below is a faster version.
+       */
+      res = (char *) memcpy (tag_table[i - cut].nodename, wsk, j =
+			     (size_t) (wsk1 - wsk));
+      (*(res += j + 1)) = 0;
+      (*wsk1) = INDIRECT_TAG;
+      wsk1++;
+      tag_table[i - cut].offset = atoi (wsk1);
+    } else
+      cut++;			/* increment the number of corrupt entries */
+  }
+  TagTableEntries = lines - 1 - is_indirect - cut;
 
-	/* FIXME: info should ALWAYS start at the 'Top' node, not at the first
-	   mentioned node(vide ocaml.info) */
+  /* FIXME: info should ALWAYS start at the 'Top' node, not at the first
+     mentioned node(vide ocaml.info) */
 
-	for (i = 1; i <= TagTableEntries; i++)
-	{
-		if (strcasecmp(tag_table[i].nodename, "Top") == 0)
-		{
-			FirstNodeOffset = tag_table[i].offset;
-			strcpy(FirstNodeName, tag_table[i].nodename);
-		}
-	}
-	qsort(&tag_table[1], TagTableEntries, sizeof(TagTable), qsort_cmp);
+  for (i = 1; i <= TagTableEntries; i++) {
+    if (strcasecmp (tag_table[i].nodename, "Top") == 0) {
+      FirstNodeOffset = tag_table[i].offset;
+      strcpy (FirstNodeName, tag_table[i].nodename);
+    }
+  }
+  qsort (&tag_table[1], TagTableEntries, sizeof (TagTable), qsort_cmp);
 }
 
 int
-seek_indirect(FILE * id)
+seek_indirect (FILE * id)
 {
-	int finito = 0;
-	long seek_pos;
-	int input;
-	char *type = (char*)xmalloc(1024);
-	fseek(id, 0, SEEK_SET);
-	while (!finito)		/*
-						 * scan through the file, searching for "indirect:"
-						 * string in the type(header) line of node.
-						 */
-	{
-		while ((input = fgetc(id)) != INFO_TAG)
-			if (input == EOF)
-			{
-				if (type)
-				{
-					xfree(type);
-					type = 0;
-				}
-				return 0;
-			}
-		seek_pos = ftell(id) - 2;
-		fgetc(id);
-		fgets(type, 1024, id);
-		if (strncasecmp("Indirect:", type, strlen("Indirect:")) == 0)
-		{
-			finito = 1;
-		}
+  int finito = 0;
+  long seek_pos;
+  int input;
+  char *type = (char *) xmalloc (1024);
+  fseek (id, 0, SEEK_SET);
+  while (!finito) {		/*
+				 * scan through the file, searching for "indirect:"
+				 * string in the type(header) line of node.
+				 */
+    while ((input = fgetc (id)) != INFO_TAG)
+      if (input == EOF) {
+	if (type) {
+	  xfree (type);
+	  type = 0;
 	}
-	xfree(type);
-	type = 0;
-	if (!curses_open)
-		printf(_("Searching for indirect done\n"));
-	else
-	{
-		attrset(bottomline);
-		mvhline(maxy - 1, 0, ' ', maxx);
-		mvaddstr(maxy - 1, 0, _("Searching for indirect done"));
-		attrset(normal);
-	}
-	fseek(id, seek_pos, SEEK_SET);
-	return 1;
+	return 0;
+      }
+    seek_pos = ftell (id) - 2;
+    fgetc (id);
+    fgets (type, 1024, id);
+    if (strncasecmp ("Indirect:", type, strlen ("Indirect:")) == 0) {
+      finito = 1;
+    }
+  }
+  xfree (type);
+  type = 0;
+  if (!curses_open)
+    printf (_("Searching for indirect done\n"));
+  else {
+    attrset (bottomline);
+    mvhline (maxy - 1, 0, ' ', maxx);
+    mvaddstr (maxy - 1, 0, _("Searching for indirect done"));
+    attrset (normal);
+  }
+  fseek (id, seek_pos, SEEK_SET);
+  return 1;
 }
 
 /*
  * second arg for dumping out verbose debug info or not :)
  */
 int
-seek_tag_table(FILE * id,int quiet)
+seek_tag_table (FILE * id, int quiet)
 {
-	int finito = 0;
-	long seek_pos;
-	int input;
-	char *type = (char*)xmalloc(1024);
-	fseek(id, 0, SEEK_SET);
-	/*
-	 * Scan through the file, searching for a string
-	 * "Tag Table:" in the type(header) line of node.
-	 */
-	while (!finito)
-	{
-		while ((input = fgetc(id)) != INFO_TAG)
-		{
-			if (input == EOF)
-			{
-				if (!quiet)
-				{
-					if (!curses_open)
-						printf(_("Warning: could not find tag table\n"));
-					else
-					{
-						attrset(bottomline);
-						mvhline(maxy - 1, 0, ' ', maxx);
-						mvaddstr(maxy - 1, 0, _("Warning: could not find tag table"));
-						attrset(normal);
-					}
-				}
-				if (type)
-				{
-					xfree(type);
-					type = 0;
-				}
-				return 2;
-			}
-		}
-		seek_pos = ftell(id) - 2;
-		while (fgetc(id) != '\n')
-		{
-			if (feof(id))
-				break;
-		}
-		fgets(type, 1024, id);
-		if (strncasecmp("Tag Table:", type, strlen("Tag Table:")) == 0)
-		{
-			finito = 1;
-		}
+  int finito = 0;
+  long seek_pos;
+  int input;
+  char *type = (char *) xmalloc (1024);
+  fseek (id, 0, SEEK_SET);
+  /*
+   * Scan through the file, searching for a string
+   * "Tag Table:" in the type(header) line of node.
+   */
+  while (!finito) {
+    while ((input = fgetc (id)) != INFO_TAG) {
+      if (input == EOF) {
+	if (!quiet) {
+	  if (!curses_open)
+	    printf (_("Warning: could not find tag table\n"));
+	  else {
+	    attrset (bottomline);
+	    mvhline (maxy - 1, 0, ' ', maxx);
+	    mvaddstr (maxy - 1, 0, _("Warning: could not find tag table"));
+	    attrset (normal);
+	  }
 	}
-	xfree(type);
-	type = 0;
-	if (!curses_open)
-		printf(_("Searching for tag table done\n"));
-	else
-	{
-		attrset(bottomline);
-		mvhline(maxy - 1, 0, ' ', maxx);
-		mvaddstr(maxy - 1, 0, "Searching for tag table done");
-		attrset(normal);
+	if (type) {
+	  xfree (type);
+	  type = 0;
 	}
-	fseek(id, seek_pos, SEEK_SET);
-	return 1;
+	return 2;
+      }
+    }
+    seek_pos = ftell (id) - 2;
+    while (fgetc (id) != '\n') {
+      if (feof (id))
+	break;
+    }
+    fgets (type, 1024, id);
+    if (strncasecmp ("Tag Table:", type, strlen ("Tag Table:")) == 0) {
+      finito = 1;
+    }
+  }
+  xfree (type);
+  type = 0;
+  if (!curses_open)
+    printf (_("Searching for tag table done\n"));
+  else {
+    attrset (bottomline);
+    mvhline (maxy - 1, 0, ' ', maxx);
+    mvaddstr (maxy - 1, 0, "Searching for tag table done");
+    attrset (normal);
+  }
+  fseek (id, seek_pos, SEEK_SET);
+  return 1;
 }
 
 inline void
-buildcommand(char *dest, char *command, char *filename, const char *tmpfilename)
+buildcommand (char *dest, char *command, char *filename,
+	      const char *tmpfilename)
 {
-	strcpy(dest, command);
-	strcat(dest, " ");
-	strcat(dest, filename);
-	strcat(dest, "> ");
-	strcat(dest, tmpfilename);
+  strcpy (dest, command);
+  strcat (dest, " ");
+  strcat (dest, filename);
+  strcat (dest, "> ");
+  strcat (dest, tmpfilename);
 }
 
 inline void
-builddircommand(char *dest, char *command, char *filename, const char *tmpfilename)
+builddircommand (char *dest, char *command, char *filename,
+		 const char *tmpfilename)
 {
-	strcpy(dest, command);
-	strcat(dest, " ");
-	strcat(dest, filename);
-	strcat(dest, ">> ");
-	strcat(dest, tmpfilename);
+  strcpy (dest, command);
+  strcat (dest, " ");
+  strcat (dest, filename);
+  strcat (dest, ">> ");
+  strcat (dest, tmpfilename);
 }
 
 FILE *
-opendirfile(int number)
+opendirfile (int number)
 {
-	FILE *id = NULL;
-	char buf[1024];		/* holds local copy of filename */
-	char *bufend;			/* points at the trailing 0 of initial name */
-	char command[1128];		/* holds command to evaluate for decompression of file */
-	int i, j;
-	char *tmpfilename;
-	int *fileendentries = (int*)xmalloc(infopathcount * sizeof(int));
-	int dir_found = 0;
-	int dircount = 0;
-	int lang_found;
-	struct stat status;
+  FILE *id = NULL;
+  char buf[1024];		/* holds local copy of filename */
+  char *bufend;			/* points at the trailing 0 of initial name */
+  char command[1128];		/* holds command to evaluate for decompression of file */
+  int i, j;
+  char *tmpfilename;
+  int *fileendentries = (int *) xmalloc (infopathcount * sizeof (int));
+  int dir_found = 0;
+  int dircount = 0;
+  int lang_found;
+  struct stat status;
 
-	if (number == 0)		/* initialize tmp filename for file 1 */
-	{
-		if (tmpfilename1)
-		{
-			unlink(tmpfilename1);	/* erase old tmpfile */
-			free(tmpfilename1);
-		}
-		tmpfilename1 = tempnam("/tmp", NULL);
-		tmpfilename = tmpfilename1;	/* later we will refere only to tmp1 */
-	}
-	for (i = 0; i < infopathcount; i++)	/* go through all paths */
-	{
-		lang_found = 0;
-		strcpy(buf, infopaths[i]);	/* build a filename */
-		strcat(buf, "/");
-		if (getenv("LANG") != NULL)
-			strcat(buf, getenv("LANG"));
-		strcat(buf, "/dir");
-		/*
-		 * remember the bufend to make it
-		 * possible later to glue compression suffixes.
-		 */
-		bufend = buf;
-		bufend += strlen(buf);
-		for (j = 0; j < SuffixesNumber; j++)	/* go through all suffixes */
-		{
-			strcat(buf, suffixes[j].suffix);
-			if ((id = fopen(buf, "r")) != NULL)
-			{
-				fclose(id);
-				builddircommand(command, suffixes[j].command, buf, tmpfilename);
-				system(command);
-				lstat(tmpfilename, &status);
-				fileendentries[dircount] = status.st_size;
-				dircount++;
-				dir_found = 1;
-				lang_found = 1;
-			}
-			(*bufend) = 0;
-		}
+  if (number == 0) {		/* initialize tmp filename for file 1 */
+    if (tmpfilename1) {
+      unlink (tmpfilename1);	/* erase old tmpfile */
+      free (tmpfilename1);
+    }
+    tmpfilename1 = tempnam ("/tmp", NULL);
+    tmpfilename = tmpfilename1;	/* later we will refere only to tmp1 */
+  }
+  for (i = 0; i < infopathcount; i++) {	/* go through all paths */
+    lang_found = 0;
+    strcpy (buf, infopaths[i]);	/* build a filename */
+    strcat (buf, "/");
+    if (getenv ("LANG") != NULL)
+      strcat (buf, getenv ("LANG"));
+    strcat (buf, "/dir");
+    /*
+     * remember the bufend to make it
+     * possible later to glue compression suffixes.
+     */
+    bufend = buf;
+    bufend += strlen (buf);
+    for (j = 0; j < SuffixesNumber; j++) {	/* go through all suffixes */
+      strcat (buf, suffixes[j].suffix);
+      if ((id = fopen (buf, "r")) != NULL) {
+	fclose (id);
+	builddircommand (command, suffixes[j].command, buf, tmpfilename);
+	system (command);
+	lstat (tmpfilename, &status);
+	fileendentries[dircount] = status.st_size;
+	dircount++;
+	dir_found = 1;
+	lang_found = 1;
+      }
+      (*bufend) = 0;
+    }
 
-		/* same as above, but without $LANG support */
-		if (!lang_found)
-		{
-			strcpy(buf, infopaths[i]);	/* build a filename */
-			strcat(buf, "/");
-			strcat(buf, "dir");
-			/*
-			 * remember the bufend to make it possible later to glue
-			 * compression suffixes.
-			 */
-			bufend = buf;
-			bufend += strlen(buf);
-			for (j = 0; j < SuffixesNumber; j++)	/* go through all suffixes */
-			{
-				strcat(buf, suffixes[j].suffix);
-				if ((id = fopen(buf, "r")) != NULL)
-				{
-					fclose(id);
-					builddircommand(command, suffixes[j].command, buf, tmpfilename);
-					system(command);
-					lstat(tmpfilename, &status);
-					fileendentries[dircount] = status.st_size;
-					dircount++;
-					dir_found = 1;
-				}
-				(*bufend) = 0;
-			}
-		}
+    /* same as above, but without $LANG support */
+    if (!lang_found) {
+      strcpy (buf, infopaths[i]);	/* build a filename */
+      strcat (buf, "/");
+      strcat (buf, "dir");
+      /*
+       * remember the bufend to make it possible later to glue
+       * compression suffixes.
+       */
+      bufend = buf;
+      bufend += strlen (buf);
+      for (j = 0; j < SuffixesNumber; j++) {	/* go through all suffixes */
+	strcat (buf, suffixes[j].suffix);
+	if ((id = fopen (buf, "r")) != NULL) {
+	  fclose (id);
+	  builddircommand (command, suffixes[j].command, buf, tmpfilename);
+	  system (command);
+	  lstat (tmpfilename, &status);
+	  fileendentries[dircount] = status.st_size;
+	  dircount++;
+	  dir_found = 1;
 	}
-	if (dir_found)
-		id = fopen(tmpfilename, "r");
-	/*
-	 * Filter the concatenated dir pages to exclude hidden parts of info
-	 * entries
-	 */
-	if (id)
-	{
-		char *tmp;
-		long filelen, i;
-		int aswitch = 0;
-		int firstswitch = 0;
-		dircount = 0;
+	(*bufend) = 0;
+      }
+    }
+  }
+  if (dir_found)
+    id = fopen (tmpfilename, "r");
+  /*
+   * Filter the concatenated dir pages to exclude hidden parts of info
+   * entries
+   */
+  if (id) {
+    char *tmp;
+    long filelen, i;
+    int aswitch = 0;
+    int firstswitch = 0;
+    dircount = 0;
 
-		fseek(id, 0, SEEK_END);
-		filelen = ftell(id);
+    fseek (id, 0, SEEK_END);
+    filelen = ftell (id);
 
-		tmp = (char*)xmalloc(filelen);
-		fseek(id, 0, SEEK_SET);
-		fread(tmp, 1, filelen, id);
-		fclose(id);
-		id = fopen(tmpfilename, "w");
-		for (i = 0; i < filelen; i++)
-		{
-			if (tmp[i] == INFO_TAG)
-			{
-				aswitch ^= 1;
-				if (!firstswitch)
-					fputc(tmp[i], id);
-				firstswitch = 1;
-			}
-			else if ((aswitch) ||(!firstswitch))
-				fputc(tmp[i], id);
-			if (i + 1 == fileendentries[dircount])
-			{
-				if (aswitch != 0)
-					aswitch = 0;
-				dircount++;	/* the last dircount should fit to the end of filelen */
-			}
-		}
-		fputc(INFO_TAG, id);
-		fputc('\n', id);
-		xfree(fileendentries);
-		fclose(id);
-		id = fopen(tmpfilename, "r");
-		xfree(tmp);
+    tmp = (char *) xmalloc (filelen);
+    fseek (id, 0, SEEK_SET);
+    fread (tmp, 1, filelen, id);
+    fclose (id);
+    id = fopen (tmpfilename, "w");
+    for (i = 0; i < filelen; i++) {
+      if (tmp[i] == INFO_TAG) {
+	aswitch ^= 1;
+	if (!firstswitch)
+	  fputc (tmp[i], id);
+	firstswitch = 1;
+      } else if ((aswitch) || (!firstswitch))
+	fputc (tmp[i], id);
+      if (i + 1 == fileendentries[dircount]) {
+	if (aswitch != 0)
+	  aswitch = 0;
+	dircount++;		/* the last dircount should fit to the end of filelen */
+      }
+    }
+    fputc (INFO_TAG, id);
+    fputc ('\n', id);
+    xfree (fileendentries);
+    fclose (id);
+    id = fopen (tmpfilename, "r");
+    xfree (tmp);
 
-		return id;
-	}
-	return NULL;
+    return id;
+  }
+  return NULL;
 }
 
 char *
-basename(char *filename)
+basename (char *filename)
 {
-	int len = strlen(filename);
-	char *a = filename + len;
-	while (a > filename)
-	{
-		a--;
-		if (*a == '/')
-			return a + 1;
-	}
-	return filename;		/* when it was a basename */
+  int len = strlen (filename);
+  char *a = filename + len;
+  while (a > filename) {
+    a--;
+    if (*a == '/')
+      return a + 1;
+  }
+  return filename;		/* when it was a basename */
 }
 
 /*
@@ -667,171 +643,154 @@
  * *filenameprefix and then in the rest of userdefined paths.
  */
 FILE *
-openinfo(char *filename, int number)
+openinfo (char *filename, int number)
 {
-	FILE *id = NULL;
-	char *buf = (char*) xmalloc(1024);	/* holds local copy of filename */
-	char *bufend;			/* points at the trailing 0 of initial name */
-	char command[1128];		/* holds command to evaluate for decompression of file */
-	int i, j, twoloops;
-	char *tmpfilename;
+  FILE *id = NULL;
+  char *buf = (char *) xmalloc (1024);	/* holds local copy of filename */
+  char *bufend;			/* points at the trailing 0 of initial name */
+  char command[1128];		/* holds command to evaluate for decompression of file */
+  int i, j, twoloops;
+  char *tmpfilename;
 
-	if (strncmp(filename, "dir", 3) == 0)
-	{
-		xfree(buf);
-		return opendirfile(number);
-	}
+  if (strncmp (filename, "dir", 3) == 0) {
+    xfree (buf);
+    return opendirfile (number);
+  }
 
-	if (number == 0)		/* initialize tmp filename for file 1 */
-	{
-		if (tmpfilename1)
-		{
-			unlink(tmpfilename1);	/* erase old tmpfile */
-			free(tmpfilename1);
-		}
-		tmpfilename1 = tempnam("/tmp", NULL);
-		tmpfilename = tmpfilename1;	/* later we will refere only to tmp1 */
-	}
-	else /* initialize tmp filename for file 2 */
-	{
-		if (tmpfilename2)
-		{
-			unlink(tmpfilename2);	/* erase old tmpfile */
-			free(tmpfilename2);
-		}
-		tmpfilename2 = tempnam("/tmp", NULL);
-		tmpfilename = tmpfilename2;	/* later we will refere only to tmp2 */
-	}
+  if (number == 0) {		/* initialize tmp filename for file 1 */
+    if (tmpfilename1) {
+      unlink (tmpfilename1);	/* erase old tmpfile */
+      free (tmpfilename1);
+    }
+    tmpfilename1 = tempnam ("/tmp", NULL);
+    tmpfilename = tmpfilename1;	/* later we will refere only to tmp1 */
+  } else {			/* initialize tmp filename for file 2 */
 
-	for (i = -1; i < infopathcount; i++)	/* go through all paths */
-	{
-		if (i == -1)
-		{
-			/*
-			 * no filenameprefix, we don't navigate around any specific
-			 * infopage set, so simply scan all directories for a hit
-			 */
-			if (!filenameprefix)
-				continue;
-			else
-			{
-				strcpy(buf, filenameprefix);	/* build a filename */
-				strcat(buf, "/");
-				strcat(buf, basename(filename));
-			}
-		}
-		else
-		{
-			strcpy(buf, infopaths[i]);	/* build a filename */
-			if (matchfile(&buf, filename) == 1)	/* no match found in this directory */
-				continue;
-		}
-		bufend = buf;
-		/*
-		 * remember the bufend to make it possible later to glue compression
-		 * suffixes.
-		 */
-		bufend += strlen(buf);
-		for (j = 0; j < SuffixesNumber; j++)	/* go through all suffixes */
-		{
-			strcat(buf, suffixes[j].suffix);
-			if ((id = fopen(buf, "r")) != NULL)
-			{
-				fclose(id);
-				clearfilenameprefix();
-				filenameprefix = strdup(buf);
-				{			/* small scope for removal of filename */
-					int prefixi, prefixlen = strlen(filenameprefix);
-					for (prefixi = prefixlen; prefixi--; prefixi > 0)
-						if (filenameprefix[prefixi] == '/')
-						{
-							filenameprefix[prefixi] = 0;
-							break;
-						}
-				}
-				buildcommand(command, suffixes[j].command, buf, tmpfilename);
-				system(command);
-				id = fopen(tmpfilename, "r");
-				if (id)
-				{
-					xfree(buf);
-					return id;
-				}
-			}
-			(*bufend) = 0;
-		}
-		if ((i == -1) &&(filenameprefix))	/* if we have a nonzero filename prefix,
-											   that is we view a set of infopages,
-											   we don't want to search for a page
-											   in all directories, but only in
-											   the prefix directory. Therefore
-											   break here. */
-			break;
+    if (tmpfilename2) {
+      unlink (tmpfilename2);	/* erase old tmpfile */
+      free (tmpfilename2);
+    }
+    tmpfilename2 = tempnam ("/tmp", NULL);
+    tmpfilename = tmpfilename2;	/* later we will refere only to tmp2 */
+  }
+
+  for (i = -1; i < infopathcount; i++) {	/* go through all paths */
+    if (i == -1) {
+      /*
+       * no filenameprefix, we don't navigate around any specific
+       * infopage set, so simply scan all directories for a hit
+       */
+      if (!filenameprefix)
+	continue;
+      else {
+	strcpy (buf, filenameprefix);	/* build a filename */
+	strcat (buf, "/");
+	strcat (buf, basename (filename));
+      }
+    } else {
+      strcpy (buf, infopaths[i]);	/* build a filename */
+      if (matchfile (&buf, filename) == 1)	/* no match found in this directory */
+	continue;
+    }
+    bufend = buf;
+    /*
+     * remember the bufend to make it possible later to glue compression
+     * suffixes.
+     */
+    bufend += strlen (buf);
+    for (j = 0; j < SuffixesNumber; j++) {	/* go through all suffixes */
+      strcat (buf, suffixes[j].suffix);
+      if ((id = fopen (buf, "r")) != NULL) {
+	fclose (id);
+	clearfilenameprefix ();
+	filenameprefix = strdup (buf);
+	{			/* small scope for removal of filename */
+	  int prefixi, prefixlen = strlen (filenameprefix);
+	  for (prefixi = prefixlen; prefixi--; prefixi > 0)
+	    if (filenameprefix[prefixi] == '/') {
+	      filenameprefix[prefixi] = 0;
+	      break;
+	    }
 	}
-	xfree(buf);
-	return 0;
+	buildcommand (command, suffixes[j].command, buf, tmpfilename);
+	system (command);
+	id = fopen (tmpfilename, "r");
+	if (id) {
+	  xfree (buf);
+	  return id;
+	}
+      }
+      (*bufend) = 0;
+    }
+    if ((i == -1) && (filenameprefix))	/* if we have a nonzero filename prefix,
+					   that is we view a set of infopages,
+					   we don't want to search for a page
+					   in all directories, but only in
+					   the prefix directory. Therefore
+					   break here. */
+      break;
+  }
+  xfree (buf);
+  return 0;
 }
 
-	void
-addrawpath(char *filename)
+void
+addrawpath (char *filename)
 {
-	int len = strlen(filename);
-	int i, pos;
-	char tmp;
-	for (i = len; i >= 0; i--)
-	{
-		if (filename[i] == '/')
-		{
-			tmp = filename[i+1];
-			filename[i+1] = 0;
-			pos = i+1;
-			break;
-		}
-	}
-	if (i < 0)
-		pos = -1;
+  int len = strlen (filename);
+  int i, pos;
+  char tmp;
+  for (i = len; i >= 0; i--) {
+    if (filename[i] == '/') {
+      tmp = filename[i + 1];
+      filename[i + 1] = 0;
+      pos = i + 1;
+      break;
+    }
+  }
+  if (i < 0)
+    pos = -1;
 
-	infopaths = (char**)xrealloc(infopaths,(infopathcount + 3) *(sizeof(char *)));
-	for (i = infopathcount; i > 0; i--)	/* move entries to the right */
-		infopaths[i] = infopaths[i - 1];
+  infopaths =
+    (char **) xrealloc (infopaths, (infopathcount + 3) * (sizeof (char *)));
+  for (i = infopathcount; i > 0; i--)	/* move entries to the right */
+    infopaths[i] = infopaths[i - 1];
 
-	if (pos > 0)
-		infopaths[0]=strdup(filename);	/* add new(raw) entry */
-	else
-		infopaths[0]=strdup("./");
-	infopathcount++;
+  if (pos > 0)
+    infopaths[0] = strdup (filename);	/* add new(raw) entry */
+  else
+    infopaths[0] = strdup ("./");
+  infopathcount++;
 
-	if (pos > 0)			/* recreate original filename */
-		filename[pos] = tmp;
+  if (pos > 0)			/* recreate original filename */
+    filename[pos] = tmp;
 }
 
-	int
-isininfopath(char *name)
+int
+isininfopath (char *name)
 {
-	int i;
-	for (i = 0; i < infopathcount; i++)
-	{
-		if (strcmp(name, infopaths[i]) == 0)
-			return 1;		/* path already exists */
-	}
-	return 0;			/* path not found in previous links */
+  int i;
+  for (i = 0; i < infopathcount; i++) {
+    if (strcmp (name, infopaths[i]) == 0)
+      return 1;			/* path already exists */
+  }
+  return 0;			/* path not found in previous links */
 }
 
 /* returns the number of chars ch in string str */
 unsigned int
-charcount(const char *str, const char ch)
+charcount (const char *str, const char ch)
 {
-	int num = 0;
-	const char *c;
+  int num = 0;
+  const char *c;
 
-	c = str;
-	
-	while (*c != '\0')
-	{
-		if (*c++ == ch)
-			num++;
-	}
-	return num;
+  c = str;
+
+  while (*c != '\0') {
+    if (*c++ == ch)
+      num++;
+  }
+  return num;
 }
 
 /* 
@@ -839,174 +798,159 @@
  * and put them in the global var infopaths[]
  */
 void
-initpaths()
+initpaths ()
 {
-	char emptystr[1] = "";
-	char **paths = NULL;
-	char *infopath = NULL, *langpath = NULL;
-	char *c, *dir, *env;
-	char *rawlang = NULL, *lang = NULL, *langshort = NULL;
-	int ret;
-	unsigned int i, j, maxpaths, numpaths = 0, infolen, langlen;
-	size_t len;
-	struct stat sbuf;
-	ino_t *inodes;
+  char emptystr[1] = "";
+  char **paths = NULL;
+  char *infopath = NULL, *langpath = NULL;
+  char *c, *dir, *env;
+  char *rawlang = NULL, *lang = NULL, *langshort = NULL;
+  int ret;
+  unsigned int i, j, maxpaths, numpaths = 0, infolen, langlen;
+  size_t len;
+  struct stat sbuf;
+  ino_t *inodes;
 
-	/* first concat the paths */
-	env = getenv("INFOPATH");
-	if (env == NULL)
-	{
-		env = emptystr;
-	}
-	infolen = strlen(env) + strlen(configuredinfopath) + 2;
-	infopath = (char *) xmalloc( infolen );
-	strcat(infopath, env);
-	strcat(infopath, ":");
-	strcat(infopath, configuredinfopath);
+  /* first concat the paths */
+  env = getenv ("INFOPATH");
+  if (env == NULL) {
+    env = emptystr;
+  }
+  infolen = strlen (env) + strlen (configuredinfopath) + 2;
+  infopath = (char *) xmalloc (infolen);
+  strcat (infopath, env);
+  strcat (infopath, ":");
+  strcat (infopath, configuredinfopath);
 
-	/* alloc the paths[] array */
-	maxpaths = 3 * (charcount( infopath, ':' ) + 1); // *3 for $LANG
-	paths = (char **) xmalloc( maxpaths * sizeof(char *) );
+  /* alloc the paths[] array */
+  maxpaths = 3 * (charcount (infopath, ':') + 1);	// *3 for $LANG
+  paths = (char **) xmalloc (maxpaths * sizeof (char *));
 
-	/* split at ':' and put the path components into paths[] */
-	c = infopath;
-	while (dir = strsep(&c, ":"))
-	{
-		/* if this actually is a non-empty string, add it to paths[] */
-		if ( dir && strlen(dir)>0 ) 
-		{
-			paths[numpaths++] = dir;
-		}
-	}
+  /* split at ':' and put the path components into paths[] */
+  c = infopath;
+  while (dir = strsep (&c, ":")) {
+    /* if this actually is a non-empty string, add it to paths[] */
+    if (dir && strlen (dir) > 0) {
+      paths[numpaths++] = dir;
+    }
+  }
 
-	/* get the current $LANG, if any (to use for localized info pages) */
-	rawlang = getenv("LANG");
-	if (rawlang) {
-		lang = strdup(rawlang);
-		/* fix the lang string */
-		for (i=0; lang[i]!='\0'; i++)
-		{
-			/* cut off the charset */
-			if (lang[i]=='.') 
-			{
-				lang[i]='\0';
-			}
-			/* if lang is sublocalized (nl_BE or so), also use short version */
-			if (lang[i]=='_' && langshort==NULL)
-			{
-				langshort = strdup(lang);
-				langshort[i] = '\0';
-			}
-		}
-	}
-	/* if we have a LANG defined, add paths with this lang to the paths[] */
-	if (lang && strlen(lang)>0 )
-	{
-		/* crude upper limit */
-		langlen = infolen + (strlen(lang)+2) * numpaths + 1;
-		if (langshort!=NULL) langlen *= 2;
-		langpath = (char *) xmalloc( langlen * sizeof(char) );
+  /* get the current $LANG, if any (to use for localized info pages) */
+  rawlang = getenv ("LANG");
+  if (rawlang) {
+    lang = strdup (rawlang);
+    /* fix the lang string */
+    for (i = 0; lang[i] != '\0'; i++) {
+      /* cut off the charset */
+      if (lang[i] == '.') {
+	lang[i] = '\0';
+      }
+      /* if lang is sublocalized (nl_BE or so), also use short version */
+      if (lang[i] == '_' && langshort == NULL) {
+	langshort = strdup (lang);
+	langshort[i] = '\0';
+      }
+    }
+  }
+  /* if we have a LANG defined, add paths with this lang to the paths[] */
+  if (lang && strlen (lang) > 0) {
+    /* crude upper limit */
+    langlen = infolen + (strlen (lang) + 2) * numpaths + 1;
+    if (langshort != NULL)
+      langlen *= 2;
+    langpath = (char *) xmalloc (langlen * sizeof (char));
 
-		c = langpath; 
-		for (i=0; i<numpaths; i++)
-		{
-			/* TODO: check for negative return values of sprintf */
-			len = sprintf(c, "%s/%s", paths[i], lang);
-			/* add the lang specific dir at the beginning */
-			paths[numpaths+i] = paths[i];
-			paths[i] = c;
+    c = langpath;
+    for (i = 0; i < numpaths; i++) {
+      /* TODO: check for negative return values of sprintf */
+      len = sprintf (c, "%s/%s", paths[i], lang);
+      /* add the lang specific dir at the beginning */
+      paths[numpaths + i] = paths[i];
+      paths[i] = c;
 
-			c += len+1;
-			
-			if (langshort) 
-			{
-				/* TODO: check for negative return values of sprintf */
-				len = sprintf(c, "%s/%s", paths[numpaths+i], langshort);
-				/* add the lang specific dir at the beginning */
-				paths[2*numpaths+i] = paths[numpaths+i];
-				paths[numpaths+i] = c;
+      c += len + 1;
 
-				c += len+1;
-			}
+      if (langshort) {
+	/* TODO: check for negative return values of sprintf */
+	len = sprintf (c, "%s/%s", paths[numpaths + i], langshort);
+	/* add the lang specific dir at the beginning */
+	paths[2 * numpaths + i] = paths[numpaths + i];
+	paths[numpaths + i] = c;
 
-		}
-		numpaths *= (langshort?3:2);
-	}
+	c += len + 1;
+      }
 
+    }
+    numpaths *= (langshort ? 3 : 2);
+  }
 #ifdef ___DEBUG___
-	/* for debugging */
-	for (i=0; i<numpaths; i++)
-		fprintf(stderr,"--> %s\n", paths[i]);
+  /* for debugging */
+  for (i = 0; i < numpaths; i++)
+    fprintf (stderr, "--> %s\n", paths[i]);
 #endif
 
-	/* ok, now we have all the (possibly) revelevant paths in paths[] */
-	/* now loop over them, see if they are valid and if they are duplicates*/
-	inodes = (ino_t *) xmalloc( maxpaths * sizeof(ino_t *) );
-	numpaths = 0;
-	len = 0;
-	for (i=0; i< maxpaths; i++)
-	{
-		/* stat() the dir */
-		ret = stat( paths[i], &sbuf);
-		/* and see if it could be opened */
-		if (ret < 0)
-		{
+  /* ok, now we have all the (possibly) revelevant paths in paths[] */
+  /* now loop over them, see if they are valid and if they are duplicates */
+  inodes = (ino_t *) xmalloc (maxpaths * sizeof (ino_t *));
+  numpaths = 0;
+  len = 0;
+  for (i = 0; i < maxpaths; i++) {
+    /* stat() the dir */
+    ret = stat (paths[i], &sbuf);
+    /* and see if it could be opened */
+    if (ret < 0) {
 #ifdef ___DEBUG___
-			fprintf(stderr, "error while opening `%s': %s\n", 
-					paths[i], strerror(errno) );
-#endif 
-			paths[i] = NULL;
-			inodes[i] = 0;
-		}
-		else
-		{
-			inodes[i] = sbuf.st_ino;
-		}
+      fprintf (stderr, "error while opening `%s': %s\n",
+	       paths[i], strerror (errno));
+#endif
+      paths[i] = NULL;
+      inodes[i] = 0;
+    } else {
+      inodes[i] = sbuf.st_ino;
+    }
 
-		/* now check if this path is a duplicate */
-		for (j=0; j<i; j++)
-		{
-			if (inodes[j]==inodes[i]) paths[i] = NULL;
-		}
+    /* now check if this path is a duplicate */
+    for (j = 0; j < i; j++) {
+      if (inodes[j] == inodes[i])
+	paths[i] = NULL;
+    }
 
-		/* calculate the total number of vali paths and the size of teh strings */
-		if (paths[i]!=NULL) 
-		{
-			numpaths++;
-			len += strlen(paths[i]) + 1;
-		}
-	}
+    /* calculate the total number of vali paths and the size of teh strings */
+    if (paths[i] != NULL) {
+      numpaths++;
+      len += strlen (paths[i]) + 1;
+    }
+  }
 
 
-	/* and alloc and copy to global var */
-	infopathcount = numpaths;
-	infopaths = (char **) xmalloc( numpaths * sizeof(char *) );
-	c = (char *) xmalloc( len * sizeof(char) );
-	j=0;
-	for (i=0; i<maxpaths; i++)
-	{
-		if (paths[i]!=NULL)
-		{
-			/* copy path to c buffer */
-			strcpy(c, paths[i]);	
-			infopaths[j++] = c;
-			c += strlen(paths[i]) + 1;
-		}
-	}
-	
+  /* and alloc and copy to global var */
+  infopathcount = numpaths;
+  infopaths = (char **) xmalloc (numpaths * sizeof (char *));
+  c = (char *) xmalloc (len * sizeof (char));
+  j = 0;
+  for (i = 0; i < maxpaths; i++) {
+    if (paths[i] != NULL) {
+      /* copy path to c buffer */
+      strcpy (c, paths[i]);
+      infopaths[j++] = c;
+      c += strlen (paths[i]) + 1;
+    }
+  }
 
-	xfree(infopath);
-	xfree(langpath);
-	xfree(paths);
-	xfree(lang);
-	xfree(langshort);
-	xfree(inodes);
 
+  xfree (infopath);
+  xfree (langpath);
+  xfree (paths);
+  xfree (lang);
+  xfree (langshort);
+  xfree (inodes);
+
 #ifdef ___DEBUG___
-	/* for debugging */
-	fprintf(stderr, "%i valid info paths found:\n", infopathcount);
-	for (i=0; i<infopathcount; i++)
-		if (infopaths[i]) fprintf(stderr,"--> %s\n", infopaths[i]);
+  /* for debugging */
+  fprintf (stderr, "%i valid info paths found:\n", infopathcount);
+  for (i = 0; i < infopathcount; i++)
+    if (infopaths[i])
+      fprintf (stderr, "--> %s\n", infopaths[i]);
 #endif
 
 
@@ -1014,162 +958,150 @@
 
 
 
-	void
-create_indirect_tag_table()
+void
+create_indirect_tag_table ()
 {
-	FILE *id = 0;
-	int i, j, initial;
-	for (i = 1; i <= IndirectEntries; i++)
-	{
-		id = openinfo(indirect[i].filename, 1);
-		initial = TagTableEntries + 1;
-		if (id)
-		{
-			create_tag_table(id);
-			FirstNodeOffset = tag_table[1].offset;
-			strcpy(FirstNodeName, tag_table[1].nodename);
-		}
-		fclose(id);
-		for (j = initial; j <= TagTableEntries; j++)
-		{
-			tag_table[j].offset +=(indirect[i].offset - FirstNodeOffset);
-		}
-	}
-	FirstNodeOffset = tag_table[1].offset;
-	strcpy(FirstNodeName, tag_table[1].nodename);
-	qsort(&tag_table[1], TagTableEntries, sizeof(TagTable), qsort_cmp);
+  FILE *id = 0;
+  int i, j, initial;
+  for (i = 1; i <= IndirectEntries; i++) {
+    id = openinfo (indirect[i].filename, 1);
+    initial = TagTableEntries + 1;
+    if (id) {
+      create_tag_table (id);
+      FirstNodeOffset = tag_table[1].offset;
+      strcpy (FirstNodeName, tag_table[1].nodename);
+    }
+    fclose (id);
+    for (j = initial; j <= TagTableEntries; j++) {
+      tag_table[j].offset += (indirect[i].offset - FirstNodeOffset);
+    }
+  }
+  FirstNodeOffset = tag_table[1].offset;
+  strcpy (FirstNodeName, tag_table[1].nodename);
+  qsort (&tag_table[1], TagTableEntries, sizeof (TagTable), qsort_cmp);
 }
-	void
-create_tag_table(FILE * id)
+
+void
+create_tag_table (FILE * id)
 {
-	char *buf = (char*)xmalloc(1024);
-	long oldpos;
-	fseek(id, 0, SEEK_SET);
-	if (!tag_table)
-		tag_table = (TagTable*)xmalloc((TagTableEntries + 2) * sizeof(TagTable));
-	else
-		tag_table = (TagTable*)xrealloc(tag_table,(TagTableEntries + 2) * sizeof(TagTable));
-	while (!feof(id))
-	{
-		if (fgetc(id) == INFO_TAG)	/* We've found a node entry! */
-		{
-			while (fgetc(id) != '\n');	/* skip '\n' */
-			TagTableEntries++;	/* increase the nuber of tag table entries */
-			oldpos = ftell(id);	/* remember this file position! */
-			/*
-			 * it is a an eof-fake-node (in some info files it happens, that
-			 * the eof'ish end of node is additionaly signalised by an INFO_TAG
-			 * We give to such node an unlike to meet nodename.
-			 */
-			if (fgets(buf, 1024, id) == NULL)
-			{
-				tag_table = (TagTable*)xrealloc(tag_table, sizeof(TagTable) *(TagTableEntries + 1));
-				strcpy(tag_table[TagTableEntries].nodename, "12#!@#4");
-				tag_table[TagTableEntries].offset = 0;
-			}
-			else
-			{
-				int colons = 0, i, j;
-				int buflen = strlen(buf);
-				for (i = 0; i < buflen; i++)
-				{
-					if (buf[i] == ':')
-						colons++;
-					if (colons == 2)	/*
-										 * the string after the second colon
-										 * holds the name of current node.
-										 * The name may then end with `.',
-										 * or with a newline, which is scanned
-										 * bellow.
-										 */
-					{
-						for (j = i + 2; j < buflen; j++)
-						{
-							if ((buf[j] == ',') ||(buf[j] == '\n'))
-							{
-								tag_table = (TagTable*)xrealloc(tag_table, sizeof(TagTable) *(TagTableEntries + 1));
-								buf[j] = 0;
-								buflen = j;
-								strcpy(tag_table[TagTableEntries].nodename, buf + i + 2);
-								tag_table[TagTableEntries].offset = oldpos - 2;
-								break;
-							}
-						}
-						break;
-					}
-				}		/* end: for loop, looking for second colon */
-			}			/* end: not a fake node */
-		}			/* end: we've found a node entry(INFO_TAG) */
-	}				/* end: global while loop, looping until eof */
-	xfree(buf);
-	buf = 0;
-	if (!indirect)
-	{
-		FirstNodeOffset = tag_table[1].offset;
-		strcpy(FirstNodeName, tag_table[1].nodename);
-		qsort(&tag_table[1], TagTableEntries, sizeof(TagTable), qsort_cmp);
-	}
+  char *buf = (char *) xmalloc (1024);
+  long oldpos;
+  fseek (id, 0, SEEK_SET);
+  if (!tag_table)
+    tag_table =
+      (TagTable *) xmalloc ((TagTableEntries + 2) * sizeof (TagTable));
+  else
+    tag_table =
+      (TagTable *) xrealloc (tag_table,
+			     (TagTableEntries + 2) * sizeof (TagTable));
+  while (!feof (id)) {
+    if (fgetc (id) == INFO_TAG) {	/* We've found a node entry! */
+      while (fgetc (id) != '\n');	/* skip '\n' */
+      TagTableEntries++;	/* increase the nuber of tag table entries */
+      oldpos = ftell (id);	/* remember this file position! */
+      /*
+       * it is a an eof-fake-node (in some info files it happens, that
+       * the eof'ish end of node is additionaly signalised by an INFO_TAG
+       * We give to such node an unlike to meet nodename.
+       */
+      if (fgets (buf, 1024, id) == NULL) {
+	tag_table =
+	  (TagTable *) xrealloc (tag_table,
+				 sizeof (TagTable) * (TagTableEntries + 1));
+	strcpy (tag_table[TagTableEntries].nodename, "12#!@#4");
+	tag_table[TagTableEntries].offset = 0;
+      } else {
+	int colons = 0, i, j;
+	int buflen = strlen (buf);
+	for (i = 0; i < buflen; i++) {
+	  if (buf[i] == ':')
+	    colons++;
+	  if (colons == 2) {	/*
+				 * the string after the second colon
+				 * holds the name of current node.
+				 * The name may then end with `.',
+				 * or with a newline, which is scanned
+				 * bellow.
+				 */
+	    for (j = i + 2; j < buflen; j++) {
+	      if ((buf[j] == ',') || (buf[j] == '\n')) {
+		tag_table =
+		  (TagTable *) xrealloc (tag_table,
+					 sizeof (TagTable) *
+					 (TagTableEntries + 1));
+		buf[j] = 0;
+		buflen = j;
+		strcpy (tag_table[TagTableEntries].nodename, buf + i + 2);
+		tag_table[TagTableEntries].offset = oldpos - 2;
+		break;
+	      }
+	    }
+	    break;
+	  }
+	}			/* end: for loop, looking for second colon */
+      }				/* end: not a fake node */
+    }				/* end: we've found a node entry(INFO_TAG) */
+  }				/* end: global while loop, looping until eof */
+  xfree (buf);
+  buf = 0;
+  if (!indirect) {
+    FirstNodeOffset = tag_table[1].offset;
+    strcpy (FirstNodeName, tag_table[1].nodename);
+    qsort (&tag_table[1], TagTableEntries, sizeof (TagTable), qsort_cmp);
+  }
 }
 
-	void
-seeknode(int tag_table_pos, FILE ** Id)
+void
+seeknode (int tag_table_pos, FILE ** Id)
 {
-	int i;
+  int i;
 #define id	(*Id)
-	/*
-	 * Indirect nodes are seeked using a formula:
-	 * file-offset = tagtable_offset - indirect_offset +
-	 *             + tagtable[1]_offset
-	 */
-	if (indirect)	
-	{
-		for (i = IndirectEntries; i >= 1; i--)
-		{
-			if (indirect[i].offset <= tag_table[tag_table_pos].offset)
-			{
-				long off = tag_table[tag_table_pos].offset - indirect[i].offset + FirstNodeOffset - 4;
-				fclose(id);
-				id = openinfo(indirect[i].filename, 0);
-				if (id == NULL)
-				{
-					closeprogram();
-					printf(_("Error: could not open info file\n"));
-					exit(1);
-				}
-				if (off > 0)
-					fseek(id, off, SEEK_SET);
-				else
-					fseek(id, off, SEEK_SET);
-				break;
-			}
-		}
+  /*
+   * Indirect nodes are seeked using a formula:
+   * file-offset = tagtable_offset - indirect_offset +
+   *             + tagtable[1]_offset
+   */
+  if (indirect) {
+    for (i = IndirectEntries; i >= 1; i--) {
+      if (indirect[i].offset <= tag_table[tag_table_pos].offset) {
+	long off =
+	  tag_table[tag_table_pos].offset - indirect[i].offset +
+	  FirstNodeOffset - 4;
+	fclose (id);
+	id = openinfo (indirect[i].filename, 0);
+	if (id == NULL) {
+	  closeprogram ();
+	  printf (_("Error: could not open info file\n"));
+	  exit (1);
 	}
+	if (off > 0)
+	  fseek (id, off, SEEK_SET);
 	else
-	{
-		long off = tag_table[tag_table_pos].offset - 4;
-		if (off > 0)
-			fseek(id, off, SEEK_SET);
-		else
-			fseek(id, off, SEEK_SET);
-	}
+	  fseek (id, off, SEEK_SET);
+	break;
+      }
+    }
+  } else {
+    long off = tag_table[tag_table_pos].offset - 4;
+    if (off > 0)
+      fseek (id, off, SEEK_SET);
+    else
+      fseek (id, off, SEEK_SET);
+  }
 #undef id
 }
 
-	void
-strip_compression_suffix(char *file)	/* removes trailing .gz, .bz2, etc. */
-{
-	char *found = 0;
-	int j;
-	for (j = 0; j < SuffixesNumber; j++)
-	{
-		if (found = strstr(file, suffixes[j].suffix))
-		{
-			if (*(found + strlen(suffixes[j].suffix)) == 0)
-			{
-				*found = 0;
-				break;
-			}
-		}
-	}
+void
+strip_compression_suffix (char *file)
+{				/* removes trailing .gz, .bz2, etc. */
+  char *found = 0;
+  int j;
+  for (j = 0; j < SuffixesNumber; j++) {
+    if (found = strstr (file, suffixes[j].suffix)) {
+      if (*(found + strlen (suffixes[j].suffix)) == 0) {
+	*found = 0;
+	break;
+      }
+    }
+  }
 }
-

Modified: pinfo/branches/cxx/src/filehandling_functions.h
===================================================================
--- pinfo/branches/cxx/src/filehandling_functions.h	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/filehandling_functions.h	2005-08-26 08:41:40 UTC (rev 41)
@@ -53,7 +53,7 @@
 /* searches for indirect entry of info file */
 int seek_indirect (FILE * id);
 /* as above, but with tag table entry */
-int seek_tag_table (FILE * id,int quiet);
+int seek_tag_table (FILE * id, int quiet);
 /*
  * loads indirect table (from a special node, stored in message, of lines
  * length)
@@ -81,9 +81,8 @@
  *          line
  * lines: pointer to long, which holds the number of lines in dir entry
  */
-FILE *
-dirpage_lookup (char **type, char ***message, long *lines,
-		char *filename, char **first_node);
+FILE *dirpage_lookup (char **type, char ***message, long *lines,
+		      char *filename, char **first_node);
 
 /* removes trailing .gz, .bz2, etc. */
 void strip_compression_suffix (char *file);

Modified: pinfo/branches/cxx/src/initializelinks.cxx
===================================================================
--- pinfo/branches/cxx/src/initializelinks.cxx	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/initializelinks.cxx	2005-08-26 08:41:40 UTC (rev 41)
@@ -20,55 +20,50 @@
  ***************************************************************************/
 #include "common_includes.h"
 
-RCSID("$Id$")
-
+RCSID ("$Id$")
 #define MENU_DOT 0
 #define NOTE_DOT 1
-
-int
-compare_hyperlink(const void *a, const void *b)
+     int compare_hyperlink (const void *a, const void *b)
 {
-	return ((HyperObject *) a)->col -((HyperObject *) b)->col;
+  return ((HyperObject *) a)->col - ((HyperObject *) b)->col;
 }
 
 void
-sort_hyperlinks_from_current_line(long startlink, long endlink)
+sort_hyperlinks_from_current_line (long startlink, long endlink)
 {
-	qsort(hyperobjects + startlink, endlink - startlink, sizeof(HyperObject), compare_hyperlink);
+  qsort (hyperobjects + startlink, endlink - startlink, sizeof (HyperObject),
+	 compare_hyperlink);
 }
 
 /*
  * Compares two strings, ignoring whitespaces(tabs, spaces)
  */
 int
-compare_tag_table_string(char *base, char *compared)
+compare_tag_table_string (char *base, char *compared)
 {
-	int i, j;
+  int i, j;
 
-	j = 0;
+  j = 0;
 
-	for (i = 0; base[i] != 0; i++)
-	{
-		if (base[i] != compared[j])
-		{
-			if ((isspace(compared[j])) &&(isspace(base[i])));	/* OK--two blanks */
-			else if (isspace(compared[j]))
-				i--;		/* index of `base' should be unchanged after for's i++ */
-			else if (isspace(base[i]))
-				j--;		/* index of `compared' stands in place
-							   and waits for base to skip blanks */
-			else
-				return (int) base[i] -(int) compared[j];
-		}
-		j++;
-	}
-	while (compared[j])		/* handle trailing whitespaces of variable `compared' */
-	{
-		if (!isspace(compared[j]))
-			return (int) base[i] -(int) compared[j];
-		j++;
-	}
-	return 0;
+  for (i = 0; base[i] != 0; i++) {
+    if (base[i] != compared[j]) {
+      if ((isspace (compared[j])) && (isspace (base[i])));	/* OK--two blanks */
+      else if (isspace (compared[j]))
+	i--;			/* index of `base' should be unchanged after for's i++ */
+      else if (isspace (base[i]))
+	j--;			/* index of `compared' stands in place
+				   and waits for base to skip blanks */
+      else
+	return (int) base[i] - (int) compared[j];
+    }
+    j++;
+  }
+  while (compared[j]) {		/* handle trailing whitespaces of variable `compared' */
+    if (!isspace (compared[j]))
+      return (int) base[i] - (int) compared[j];
+    j++;
+  }
+  return 0;
 }
 
 /*
@@ -76,12 +71,12 @@
  * failure.  It should be optimised...
  */
 inline int
-exists_in_tag_table(char *item)
+exists_in_tag_table (char *item)
 {
-	if (gettagtablepos(item) != -1)
-		return 1;
-	else
-		return 0;
+  if (gettagtablepos (item) != -1)
+    return 1;
+  else
+    return 0;
 }
 
 /*
@@ -90,94 +85,87 @@
  * [8-(22-int(22/8)*8)] spaces)
  */
 int
-calculate_len(char *start, char *end)
+calculate_len (char *start, char *end)
 {
-	int len = 0;
-	while (start < end)
-	{
-		len++;
-		if (*start == '\t')
-		{
-			len--;
-			len +=(8 -((len) -(((len) >> 3) << 3)));
-		}
-		start++;
-	}
-	return len;
+  int len = 0;
+  while (start < end) {
+    len++;
+    if (*start == '\t') {
+      len--;
+      len += (8 - ((len) - (((len) >> 3) << 3)));
+    }
+    start++;
+  }
+  return len;
 }
 
 void
-freelinks()			/* frees space allocated previously by node-links */
-{
-	int i;
-	if ((hyperobjects)&&(hyperobjectcount))
-		xfree(hyperobjects);
-	hyperobjects = 0;
-	hyperobjectcount = 0;
+freelinks ()
+{				/* frees space allocated previously by node-links */
+  int i;
+  if ((hyperobjects) && (hyperobjectcount))
+    xfree (hyperobjects);
+  hyperobjects = 0;
+  hyperobjectcount = 0;
 }
 
 /*
  * Finds url end.  It is recognized by an invalid character.
  */
 char *
-findurlend(char *str)
+findurlend (char *str)
 {
-	char *end;
-	char *allowedchars = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890-_/~.%=|:@­";
-	end = str;
-	while (strchr(allowedchars, *end) != NULL)
-		++end;
-	if (end > str)
-	{
-		if (*(end - 1) == '.')
-			end--;
-	}
-	return end;
+  char *end;
+  char *allowedchars =
+    "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890-_/~.%=|:@­";
+  end = str;
+  while (strchr (allowedchars, *end) != NULL)
+    ++end;
+  if (end > str) {
+    if (*(end - 1) == '.')
+      end--;
+  }
+  return end;
 }
 
 /*
  * Searchs for a note/menu delimiter.  it may be dot, comma, tab, or newline.
  */
 char *
-finddot(char *str, int note)
+finddot (char *str, int note)
 {
-	char *ptr = str;
-	char *end[4] =
-	{
-		0, 0, 0, 0
-	};
-	char *closest = 0;
-	int i;
-	while (isspace(*ptr))	/* if there are only spaces and newline... */
-	{
-		if (*ptr == '\n')		/* then it's a `Menu:   \n' entry--skip it */
-			return 0;
-		ptr++;
-	}
-	end[0] = strrchr(str, '.');	/* nodename entry may end with dot, comma */
-	end[1] = strrchr(str, ',');	/* tabulation, or newline */
-	if (!note)
-	{
-		end[2] = strchr(str, '\t');
-		end[3] = strchr(str, '\n');
-	}
-	else
-		note = 2;
-	if (end[0])
-		closest = end[0];
-	else if (end[1])
-		closest = end[1];
-	else if (end[2])
-		closest = end[2];
-	else if (end[3])
-		closest = end[3];
-	for (i = 1; i < note; i++)	/* find the delimiter, which was found most
-								   recently */
-	{
-		if ((end[i] < closest) &&(end[i]))
-			closest = end[i];
-	}
-	return closest;
+  char *ptr = str;
+  char *end[4] = {
+    0, 0, 0, 0
+  };
+  char *closest = 0;
+  int i;
+  while (isspace (*ptr)) {	/* if there are only spaces and newline... */
+    if (*ptr == '\n')		/* then it's a `Menu:   \n' entry--skip it */
+      return 0;
+    ptr++;
+  }
+  end[0] = strrchr (str, '.');	/* nodename entry may end with dot, comma */
+  end[1] = strrchr (str, ',');	/* tabulation, or newline */
+  if (!note) {
+    end[2] = strchr (str, '\t');
+    end[3] = strchr (str, '\n');
+  } else
+    note = 2;
+  if (end[0])
+    closest = end[0];
+  else if (end[1])
+    closest = end[1];
+  else if (end[2])
+    closest = end[2];
+  else if (end[3])
+    closest = end[3];
+  for (i = 1; i < note; i++) {	/* find the delimiter, which was found most
+				   recently */
+    if ((end[i] < closest) && (end[i]))
+      closest = end[i];
+  }
+  return closest;
 }
 
 /*
@@ -185,579 +173,577 @@
  * length=0, NULL is returned.
  */
 char *
-findemailstart(char *str)
+findemailstart (char *str)
 {
-	char *allowedchars = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890-_/~.%=|:";
-	char *at = strchr(str, '@');
-	char *emailstart = 0;
-	if (at)
-	{
-		emailstart = str;
-		while (at > str)
-		{
-			at--;
-			if (strchr(allowedchars, *at) == NULL)
-			{
-				if (*(at + 1) != '@')
-					return at + 1;
-				else
-					return 0;
-			}
-		}
-		if (*at != '@')
-			return at;
-		else
-			return 0;
-	}
-	return 0;
+  char *allowedchars =
+    "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890-_/~.%=|:";
+  char *at = strchr (str, '@');
+  char *emailstart = 0;
+  if (at) {
+    emailstart = str;
+    while (at > str) {
+      at--;
+      if (strchr (allowedchars, *at) == NULL) {
+	if (*(at + 1) != '@')
+	  return at + 1;
+	else
+	  return 0;
+      }
+    }
+    if (*at != '@')
+      return at;
+    else
+      return 0;
+  }
+  return 0;
 }
 
-	void
-initializelinks(char *line1, char *line2, int line)
+void
+initializelinks (char *line1, char *line2, int line)
 {
-	char *tmp;
-	char *notestart = 0, *urlstart = 0, *urlend = 0;
-	char *quotestart = 0, *quoteend = 0;
-	char *buf = (char*)xmalloc(strlen(line1) + strlen(line2) + 1);
-	/* required to sort properly the hyperlinks from current line only */
-	long initialhyperobjectcount = hyperobjectcount;
-	int changed;
-	int line1len = strlen(line1);
+  char *tmp;
+  char *notestart = 0, *urlstart = 0, *urlend = 0;
+  char *quotestart = 0, *quoteend = 0;
+  char *buf = (char *) xmalloc (strlen (line1) + strlen (line2) + 1);
+  /* required to sort properly the hyperlinks from current line only */
+  long initialhyperobjectcount = hyperobjectcount;
+  int changed;
+  int line1len = strlen (line1);
 
-	strcpy(buf, line1);		/* copy two lines into one */
-	if (strlen(line1))
-		buf[strlen(line1) - 1] = ' ';	/* replace trailing '\n' with ' ' */
-	strcat(buf, line2);
+  strcpy (buf, line1);		/* copy two lines into one */
+  if (strlen (line1))
+    buf[strlen (line1) - 1] = ' ';	/* replace trailing '\n' with ' ' */
+  strcat (buf, line2);
 	/******************************************************************************
 	 * First scan for some highlights ;) -- words enclosed with quotes             *
 	 ******************************************************************************/
-	quoteend = buf;
-	do
-	{
-		changed = 0;
-		if ((quotestart = strchr(quoteend, '`')) != NULL)	/* find start of quoted text */
-		{
-			if (quotestart < buf + line1len)	/* if it's in the first line of the two glued together */
-				if ((quoteend = strchr(quotestart, '\'')) != NULL)		/* find the end of quoted text */
-				{
-					if (quoteend - quotestart > 1)
-					{
-						while (!strncmp(quoteend - 1, "n't", 3))	/* if this apostrophe is not a part of "haven't", "wouldn't", etc. */
-						{
-							quoteend = strchr(quoteend + 1, '\'');
-							if (!quoteend)
-								break;
-						}
-						if (quoteend)
-						{
-							changed = 1;
-							if (!hyperobjectcount)
-								hyperobjects = (HyperObject*)xmalloc(sizeof(HyperObject));
-							else
-								hyperobjects = (HyperObject*)xrealloc(hyperobjects, sizeof(HyperObject) *(hyperobjectcount + 1));
-							hyperobjects[hyperobjectcount].line = line;
-							hyperobjects[hyperobjectcount].col = calculate_len(buf, quotestart + 1);
-							hyperobjects[hyperobjectcount].breakpos = -1;	/* default */
-							if (quoteend > buf + line1len)
-							{
-								hyperobjects[hyperobjectcount].breakpos = buf + line1len - quotestart - 1;
-							}
-							hyperobjects[hyperobjectcount].type = HIGHLIGHT;
-							strncpy(hyperobjects[hyperobjectcount].node, quotestart + 1, quoteend - quotestart - 1);
-							hyperobjects[hyperobjectcount].node[quoteend - quotestart - 1] = 0;
-							strcpy(hyperobjects[hyperobjectcount].file, "");
-							hyperobjects[hyperobjectcount].nodelen=strlen(hyperobjects[hyperobjectcount].node);
-							hyperobjects[hyperobjectcount].filelen=strlen(hyperobjects[hyperobjectcount].file);
-							hyperobjects[hyperobjectcount].tagtableoffset = -1;
-							hyperobjectcount++;
-						}
-					}
-				}
-		}
+  quoteend = buf;
+  do {
+    changed = 0;
+    if ((quotestart = strchr (quoteend, '`')) != NULL) {	/* find start of quoted text */
+      if (quotestart < buf + line1len)	/* if it's in the first line of the two glued together */
+	if ((quoteend = strchr (quotestart, '\'')) != NULL) {	/* find the end of quoted text */
+	  if (quoteend - quotestart > 1) {
+	    while (!strncmp (quoteend - 1, "n't", 3)) {	/* if this apostrophe is not a part of "haven't", "wouldn't", etc. */
+	      quoteend = strchr (quoteend + 1, '\'');
+	      if (!quoteend)
+		break;
+	    }
+	    if (quoteend) {
+	      changed = 1;
+	      if (!hyperobjectcount)
+		hyperobjects = (HyperObject *) xmalloc (sizeof (HyperObject));
+	      else
+		hyperobjects =
+		  (HyperObject *) xrealloc (hyperobjects,
+					    sizeof (HyperObject) *
+					    (hyperobjectcount + 1));
+	      hyperobjects[hyperobjectcount].line = line;
+	      hyperobjects[hyperobjectcount].col =
+		calculate_len (buf, quotestart + 1);
+	      hyperobjects[hyperobjectcount].breakpos = -1;	/* default */
+	      if (quoteend > buf + line1len) {
+		hyperobjects[hyperobjectcount].breakpos =
+		  buf + line1len - quotestart - 1;
+	      }
+	      hyperobjects[hyperobjectcount].type = HIGHLIGHT;
+	      strncpy (hyperobjects[hyperobjectcount].node, quotestart + 1,
+		       quoteend - quotestart - 1);
+	      hyperobjects[hyperobjectcount].node[quoteend - quotestart - 1] =
+		0;
+	      strcpy (hyperobjects[hyperobjectcount].file, "");
+	      hyperobjects[hyperobjectcount].nodelen =
+		strlen (hyperobjects[hyperobjectcount].node);
+	      hyperobjects[hyperobjectcount].filelen =
+		strlen (hyperobjects[hyperobjectcount].file);
+	      hyperobjects[hyperobjectcount].tagtableoffset = -1;
+	      hyperobjectcount++;
+	    }
+	  }
 	}
-	while (changed);
+    }
+  }
+  while (changed);
 	/******************************************************************************
 	 * Look for e-mail url's                                                       *
 	 ******************************************************************************/
-	urlend = line1;
-	do
-	{
-		changed = 0;
-		if ((urlstart = findemailstart(urlend)) != NULL)
-		{
-			urlend = findurlend(urlstart);	/* always successful */
-			if (!hyperobjectcount)
-				hyperobjects = (HyperObject*)xmalloc(sizeof(HyperObject));
-			else
-				hyperobjects = (HyperObject*)xrealloc(hyperobjects, sizeof(HyperObject) *(hyperobjectcount + 1));
-			hyperobjects[hyperobjectcount].line = line;
-			hyperobjects[hyperobjectcount].col = calculate_len(line1, urlstart);
-			hyperobjects[hyperobjectcount].breakpos = -1;
-			hyperobjects[hyperobjectcount].type = 6;
-			strncpy(hyperobjects[hyperobjectcount].node, urlstart, urlend - urlstart);
-			hyperobjects[hyperobjectcount].node[urlend - urlstart] = 0;
-			strcpy(hyperobjects[hyperobjectcount].file, "");
-			hyperobjects[hyperobjectcount].nodelen=strlen(hyperobjects[hyperobjectcount].node);
-			hyperobjects[hyperobjectcount].filelen=strlen(hyperobjects[hyperobjectcount].file);
-			hyperobjects[hyperobjectcount].tagtableoffset = -1;
-			if (strchr(hyperobjects[hyperobjectcount].node, '.') == NULL)
-			{
-				if (!hyperobjectcount)
-					xfree(hyperobjects);
-			}
-			else
-				hyperobjectcount++;
-			changed = 1;
-		}
+  urlend = line1;
+  do {
+    changed = 0;
+    if ((urlstart = findemailstart (urlend)) != NULL) {
+      urlend = findurlend (urlstart);	/* always successful */
+      if (!hyperobjectcount)
+	hyperobjects = (HyperObject *) xmalloc (sizeof (HyperObject));
+      else
+	hyperobjects =
+	  (HyperObject *) xrealloc (hyperobjects,
+				    sizeof (HyperObject) * (hyperobjectcount +
+							    1));
+      hyperobjects[hyperobjectcount].line = line;
+      hyperobjects[hyperobjectcount].col = calculate_len (line1, urlstart);
+      hyperobjects[hyperobjectcount].breakpos = -1;
+      hyperobjects[hyperobjectcount].type = 6;
+      strncpy (hyperobjects[hyperobjectcount].node, urlstart,
+	       urlend - urlstart);
+      hyperobjects[hyperobjectcount].node[urlend - urlstart] = 0;
+      strcpy (hyperobjects[hyperobjectcount].file, "");
+      hyperobjects[hyperobjectcount].nodelen =
+	strlen (hyperobjects[hyperobjectcount].node);
+      hyperobjects[hyperobjectcount].filelen =
+	strlen (hyperobjects[hyperobjectcount].file);
+      hyperobjects[hyperobjectcount].tagtableoffset = -1;
+      if (strchr (hyperobjects[hyperobjectcount].node, '.') == NULL) {
+	if (!hyperobjectcount)
+	  xfree (hyperobjects);
+      } else
+	hyperobjectcount++;
+      changed = 1;
+    }
 
-	}
-	while (changed);
+  }
+  while (changed);
 	/******************************************************************************
 	 * First try to scan for menu. Use as many security mechanisms, as possible    *
 	 ******************************************************************************/
 
-	if ((line1[0] == '*') &&(line1[1] == ' '))	/* menu */
-	{
+  if ((line1[0] == '*') && (line1[1] == ' ')) {	/* menu */
 		/******************************************************************************
 		 * Scan for normal menu of kind "*(infofile)reference:: comment",  where      *
 		 * the infofile parameter is optional, and indicates, that a reference         *
 		 * matches different info file.                                                *
 		 ******************************************************************************/
-		tmp = strstr(line1, "::");	/* "* menulink:: comment" */
-		if (tmp != NULL)
-		{
-			if (!hyperobjectcount)
-				hyperobjects = (HyperObject*)xmalloc(sizeof(HyperObject));
-			else
-				hyperobjects = (HyperObject*)xrealloc(hyperobjects, sizeof(HyperObject) *(hyperobjectcount + 1));
-			if (line1[2] == '(')	/* if cross-info link */
-			{
-				char *end = strchr(line1, ')');
-				if ((end != NULL) &&(end < tmp))		/* if the ')' char was found, and was before '::' */
-				{
-					long FilenameLen =(long)(end - line1 - 3);
-					long NodenameLen =(long)(tmp - end - 1);
-					strncpy(hyperobjects[hyperobjectcount].file,
-							line1 + 3, FilenameLen);
-					hyperobjects[hyperobjectcount].file[FilenameLen] = 0;
-					strncpy(hyperobjects[hyperobjectcount].node,
-							end + 1, NodenameLen);
-					hyperobjects[hyperobjectcount].node[NodenameLen] = 0;
-					hyperobjects[hyperobjectcount].type = 0;
-					hyperobjects[hyperobjectcount].line = line;
-					hyperobjects[hyperobjectcount].col = 2;
-					hyperobjects[hyperobjectcount].breakpos = -1;
-					hyperobjects[hyperobjectcount].nodelen=strlen(hyperobjects[hyperobjectcount].node);
-					hyperobjects[hyperobjectcount].filelen=strlen(hyperobjects[hyperobjectcount].file);
-					hyperobjectcount++;
-				}
-			}
-			else
-				/* if not cross-info link */
-			{
-				long NodenameLen =(long)(tmp - line1 - 2);
-				int goodHit = 0;
-				strcpy(hyperobjects[hyperobjectcount].file, "");
-				strncpy(hyperobjects[hyperobjectcount].node,
-						line1 + 2, NodenameLen);
-				hyperobjects[hyperobjectcount].node[NodenameLen] = 0;
-				hyperobjects[hyperobjectcount].type = 0;
-				hyperobjects[hyperobjectcount].line = line;
-				hyperobjects[hyperobjectcount].col = 2;
-				hyperobjects[hyperobjectcount].breakpos = -1;
-				hyperobjects[hyperobjectcount].nodelen=strlen(hyperobjects[hyperobjectcount].node);
-				hyperobjects[hyperobjectcount].filelen=strlen(hyperobjects[hyperobjectcount].file);
-				if (exists_in_tag_table(hyperobjects[hyperobjectcount].node))
-				{
-					hyperobjectcount++;	/* yep, this was a good hit */
-					goodHit = 1;
-				}
-				if (!goodHit)
-				{
-					if (!hyperobjectcount)
-					{
-						xfree(hyperobjects);
-						hyperobjects = 0;
-					}
-				}
-			}
-		}
+    tmp = strstr (line1, "::");	/* "* menulink:: comment" */
+    if (tmp != NULL) {
+      if (!hyperobjectcount)
+	hyperobjects = (HyperObject *) xmalloc (sizeof (HyperObject));
+      else
+	hyperobjects =
+	  (HyperObject *) xrealloc (hyperobjects,
+				    sizeof (HyperObject) * (hyperobjectcount +
+							    1));
+      if (line1[2] == '(') {	/* if cross-info link */
+	char *end = strchr (line1, ')');
+	if ((end != NULL) && (end < tmp)) {	/* if the ')' char was found, and was before '::' */
+	  long FilenameLen = (long) (end - line1 - 3);
+	  long NodenameLen = (long) (tmp - end - 1);
+	  strncpy (hyperobjects[hyperobjectcount].file,
+		   line1 + 3, FilenameLen);
+	  hyperobjects[hyperobjectcount].file[FilenameLen] = 0;
+	  strncpy (hyperobjects[hyperobjectcount].node, end + 1, NodenameLen);
+	  hyperobjects[hyperobjectcount].node[NodenameLen] = 0;
+	  hyperobjects[hyperobjectcount].type = 0;
+	  hyperobjects[hyperobjectcount].line = line;
+	  hyperobjects[hyperobjectcount].col = 2;
+	  hyperobjects[hyperobjectcount].breakpos = -1;
+	  hyperobjects[hyperobjectcount].nodelen =
+	    strlen (hyperobjects[hyperobjectcount].node);
+	  hyperobjects[hyperobjectcount].filelen =
+	    strlen (hyperobjects[hyperobjectcount].file);
+	  hyperobjectcount++;
+	}
+      } else
+	/* if not cross-info link */
+      {
+	long NodenameLen = (long) (tmp - line1 - 2);
+	int goodHit = 0;
+	strcpy (hyperobjects[hyperobjectcount].file, "");
+	strncpy (hyperobjects[hyperobjectcount].node, line1 + 2, NodenameLen);
+	hyperobjects[hyperobjectcount].node[NodenameLen] = 0;
+	hyperobjects[hyperobjectcount].type = 0;
+	hyperobjects[hyperobjectcount].line = line;
+	hyperobjects[hyperobjectcount].col = 2;
+	hyperobjects[hyperobjectcount].breakpos = -1;
+	hyperobjects[hyperobjectcount].nodelen =
+	  strlen (hyperobjects[hyperobjectcount].node);
+	hyperobjects[hyperobjectcount].filelen =
+	  strlen (hyperobjects[hyperobjectcount].file);
+	if (exists_in_tag_table (hyperobjects[hyperobjectcount].node)) {
+	  hyperobjectcount++;	/* yep, this was a good hit */
+	  goodHit = 1;
+	}
+	if (!goodHit) {
+	  if (!hyperobjectcount) {
+	    xfree (hyperobjects);
+	    hyperobjects = 0;
+	  }
+	}
+      }
+    }
 		/******************************************************************************
 		 * Scan for menu references of form                                            *
 		 * "* Comment:[spaces](infofile)reference."                                    *
 		 ******************************************************************************/
-		else if ((tmp = strrchr(line1, ':')) != NULL)
-		{
-			char *start = 0, *end = 0, *dot = 0;
-			dot = finddot(tmp + 1, MENU_DOT);	/* find the trailing dot */
-			if (dot != NULL)
-				if (dot + 7 < dot + strlen(dot))
-				{
-					/* skip possible '.info' filename suffix when searching for ending dot */
-					if (strncmp(dot, ".info)", 6) == 0)
-						dot = finddot(dot + 1, MENU_DOT);
-				}
-			/* we make use of sequential AND evaluation: start must not be NULL! */
-			if (((start = strchr(tmp, '(')) != NULL) &&(dot != NULL) &&
-					((end = strchr(start, ')')) != NULL))
-			{
-				if (start < dot)	/* security mechanism ;) */
-				{
-					if (end < dot)	/* security mechanism ;)) */
-					{
-						long FilenameLen =(long)(end - start - 1);
-						long NodenameLen =(long)(dot - end - 1);
-						if (!hyperobjectcount)
-							hyperobjects = (HyperObject*)xmalloc(sizeof(HyperObject));
-						else
-							hyperobjects = (HyperObject*)xrealloc(hyperobjects, sizeof(HyperObject) *(hyperobjectcount + 1));
-						strncpy(hyperobjects[hyperobjectcount].file,
-								start + 1, FilenameLen);
-						hyperobjects[hyperobjectcount].file[FilenameLen] = 0;
-						strncpy(hyperobjects[hyperobjectcount].node,
-								end + 1, NodenameLen);
-						hyperobjects[hyperobjectcount].node[NodenameLen] = 0;
-						hyperobjects[hyperobjectcount].type = 1;
-						hyperobjects[hyperobjectcount].line = line;
-						hyperobjects[hyperobjectcount].col = calculate_len(line1, start);
-						hyperobjects[hyperobjectcount].breakpos = -1;
-						hyperobjects[hyperobjectcount].nodelen=strlen(hyperobjects[hyperobjectcount].node);
-						hyperobjects[hyperobjectcount].filelen=strlen(hyperobjects[hyperobjectcount].file);
-						hyperobjectcount++;
-					}
-				}
-				else
-				{
-					goto handle_no_file_menu_label;
-				}
-			}
-			else if (dot != NULL)	/* if not cross-info reference */
-			{
-handle_no_file_menu_label:
-				{
-					long NodenameLen;
-					int goodHit = 0;	/* has val of 1, if it's a good hit */
-					if (!hyperobjectcount)
-						hyperobjects = (HyperObject*)xmalloc(sizeof(HyperObject));
-					else
-						hyperobjects = (HyperObject*)xrealloc(hyperobjects, sizeof(HyperObject) *(hyperobjectcount + 1));
+    else if ((tmp = strrchr (line1, ':')) != NULL) {
+      char *start = 0, *end = 0, *dot = 0;
+      dot = finddot (tmp + 1, MENU_DOT);	/* find the trailing dot */
+      if (dot != NULL)
+	if (dot + 7 < dot + strlen (dot)) {
+	  /* skip possible '.info' filename suffix when searching for ending dot */
+	  if (strncmp (dot, ".info)", 6) == 0)
+	    dot = finddot (dot + 1, MENU_DOT);
+	}
+      /* we make use of sequential AND evaluation: start must not be NULL! */
+      if (((start = strchr (tmp, '(')) != NULL) && (dot != NULL) &&
+	  ((end = strchr (start, ')')) != NULL)) {
+	if (start < dot) {	/* security mechanism ;) */
+	  if (end < dot) {	/* security mechanism ;)) */
+	    long FilenameLen = (long) (end - start - 1);
+	    long NodenameLen = (long) (dot - end - 1);
+	    if (!hyperobjectcount)
+	      hyperobjects = (HyperObject *) xmalloc (sizeof (HyperObject));
+	    else
+	      hyperobjects =
+		(HyperObject *) xrealloc (hyperobjects,
+					  sizeof (HyperObject) *
+					  (hyperobjectcount + 1));
+	    strncpy (hyperobjects[hyperobjectcount].file, start + 1,
+		     FilenameLen);
+	    hyperobjects[hyperobjectcount].file[FilenameLen] = 0;
+	    strncpy (hyperobjects[hyperobjectcount].node,
+		     end + 1, NodenameLen);
+	    hyperobjects[hyperobjectcount].node[NodenameLen] = 0;
+	    hyperobjects[hyperobjectcount].type = 1;
+	    hyperobjects[hyperobjectcount].line = line;
+	    hyperobjects[hyperobjectcount].col = calculate_len (line1, start);
+	    hyperobjects[hyperobjectcount].breakpos = -1;
+	    hyperobjects[hyperobjectcount].nodelen =
+	      strlen (hyperobjects[hyperobjectcount].node);
+	    hyperobjects[hyperobjectcount].filelen =
+	      strlen (hyperobjects[hyperobjectcount].file);
+	    hyperobjectcount++;
+	  }
+	} else {
+	  goto handle_no_file_menu_label;
+	}
+      } else if (dot != NULL) {	/* if not cross-info reference */
+      handle_no_file_menu_label:
+	{
+	  long NodenameLen;
+	  int goodHit = 0;	/* has val of 1, if it's a good hit */
+	  if (!hyperobjectcount)
+	    hyperobjects = (HyperObject *) xmalloc (sizeof (HyperObject));
+	  else
+	    hyperobjects =
+	      (HyperObject *) xrealloc (hyperobjects,
+					sizeof (HyperObject) *
+					(hyperobjectcount + 1));
 
-					start = tmp + 1;	/* move after the padding spaces */
-					while (isspace(*start))
-						start++;
-					NodenameLen =(long)(dot - start);
-					strcpy(hyperobjects[hyperobjectcount].file, "");
-					strncpy(hyperobjects[hyperobjectcount].node,
-							start, NodenameLen);
-					hyperobjects[hyperobjectcount].node[NodenameLen] = 0;
-					hyperobjects[hyperobjectcount].type = 1;
-					hyperobjects[hyperobjectcount].line = line;
-					hyperobjects[hyperobjectcount].col = calculate_len(line1, start);
-					hyperobjects[hyperobjectcount].breakpos = -1;
-					hyperobjects[hyperobjectcount].nodelen=strlen(hyperobjects[hyperobjectcount].node);
-					hyperobjects[hyperobjectcount].filelen=strlen(hyperobjects[hyperobjectcount].file);
-					if (exists_in_tag_table(hyperobjects[hyperobjectcount].node))
-					{
-						hyperobjectcount++;		/* yep, this was a good hit */
-						goodHit = 1;
-					}
-					if (!goodHit)
-					{
-						if (!hyperobjectcount)
-						{
-							xfree(hyperobjects);
-							hyperobjects = 0;
-						}
-					}
-				}
-			}
-		}
+	  start = tmp + 1;	/* move after the padding spaces */
+	  while (isspace (*start))
+	    start++;
+	  NodenameLen = (long) (dot - start);
+	  strcpy (hyperobjects[hyperobjectcount].file, "");
+	  strncpy (hyperobjects[hyperobjectcount].node, start, NodenameLen);
+	  hyperobjects[hyperobjectcount].node[NodenameLen] = 0;
+	  hyperobjects[hyperobjectcount].type = 1;
+	  hyperobjects[hyperobjectcount].line = line;
+	  hyperobjects[hyperobjectcount].col = calculate_len (line1, start);
+	  hyperobjects[hyperobjectcount].breakpos = -1;
+	  hyperobjects[hyperobjectcount].nodelen =
+	    strlen (hyperobjects[hyperobjectcount].node);
+	  hyperobjects[hyperobjectcount].filelen =
+	    strlen (hyperobjects[hyperobjectcount].file);
+	  if (exists_in_tag_table (hyperobjects[hyperobjectcount].node)) {
+	    hyperobjectcount++;	/* yep, this was a good hit */
+	    goodHit = 1;
+	  }
+	  if (!goodHit) {
+	    if (!hyperobjectcount) {
+	      xfree (hyperobjects);
+	      hyperobjects = 0;
+	    }
+	  }
 	}
+      }
+    }
+  }
 	/******************************************************************************
 	 * Handle notes. In similar way as above.                                      *
 	 ******************************************************************************/
-	else if ((notestart = strstr(buf, "*note")) != NULL)
-		goto handlenote;
-	else if ((notestart = strstr(buf, "*Note")) != NULL)
-	{
-handlenote:
+  else if ((notestart = strstr (buf, "*note")) != NULL)
+    goto handlenote;
+  else if ((notestart = strstr (buf, "*Note")) != NULL) {
+  handlenote:
 		/******************************************************************************
 		 * Scan for normal note of kind "*(infofile)reference:: comment", where       *
 		 * the infofile parameter is optional, and indicates, that a reference         *
 		 * matches different info file.                                                *
 		 ******************************************************************************/
-		/* make sure that we don't handle notes, which fit in the second line */
-		if ((long)(notestart - buf) < strlen(line1))
-		{
-			/* we can handle only those, who are in the first line, or who are split up into two lines */
-			tmp = strstr(notestart, "::");	/* "*note notelink:: comment" */
-			if (tmp != NULL)
-			{
-				if (!hyperobjectcount)
-					hyperobjects = (HyperObject*)xmalloc(sizeof(HyperObject));
-				else
-					hyperobjects = (HyperObject*)xrealloc(hyperobjects, sizeof(HyperObject) *(hyperobjectcount + 1));
-				if (notestart[6] == '(')	/* if cross-info link */
-				{
-					char *end = strchr(notestart, ')');
-					if ((end != NULL) &&(end < tmp))	/* if the ')' char was found, and was before '::' */
-					{
-						long FilenameLen =(long)(end - notestart - 7);
-						long NodenameLen =(long)(tmp - end - 1);
-						strncpy(hyperobjects[hyperobjectcount].file,
-								notestart + 7, FilenameLen);
-						hyperobjects[hyperobjectcount].file[FilenameLen] = 0;
-						strncpy(hyperobjects[hyperobjectcount].node,
-								end + 1, NodenameLen);
-						hyperobjects[hyperobjectcount].node[NodenameLen] = 0;
-						hyperobjects[hyperobjectcount].type = 2;
-						if (notestart + 7 - buf < strlen(line1))
-						{
-							hyperobjects[hyperobjectcount].line = line;
-							hyperobjects[hyperobjectcount].col = calculate_len(buf, notestart + 7);
-							/* if the note highlight fits int first line */
-							if (tmp - buf < strlen(line1))
-								hyperobjects[hyperobjectcount].breakpos = -1;
-								/* we don't need to break highlighting int several lines */
-							else
-								hyperobjects[hyperobjectcount].breakpos = strlen(line1) -(long)(notestart + 7 - buf) + 1;	/* otherwise we need it */
-						}
-						else
-						{
-							hyperobjects[hyperobjectcount].line = line + 1;
-							hyperobjects[hyperobjectcount].col = calculate_len(buf + strlen(line1), notestart + 7);
-							if (tmp - buf < strlen(line1))	/* as above */
-								hyperobjects[hyperobjectcount].breakpos = -1;
-							else if ((hyperobjects[hyperobjectcount].breakpos = strlen(line1) -(long)(notestart + 7 - buf) + 1) == 0)
-								hyperobjects[hyperobjectcount].line--;
-						}
-						hyperobjects[hyperobjectcount].nodelen=strlen(hyperobjects[hyperobjectcount].node);
-						hyperobjects[hyperobjectcount].filelen=strlen(hyperobjects[hyperobjectcount].file);
-						hyperobjectcount++;
-					}
-				}
-				else /* if not cross-info link */
-				{
-					long NodenameLen =(long)(tmp - notestart - 6);
-					int goodHit = 0;
-					strcpy(hyperobjects[hyperobjectcount].file, "");
-					strncpy(hyperobjects[hyperobjectcount].node,
-							notestart + 6, NodenameLen);
-					hyperobjects[hyperobjectcount].node[NodenameLen] = 0;
-					hyperobjects[hyperobjectcount].type = 2;
-					hyperobjects[hyperobjectcount].nodelen=strlen(hyperobjects[hyperobjectcount].node);
-					hyperobjects[hyperobjectcount].filelen=strlen(hyperobjects[hyperobjectcount].file);
-					if (notestart + 7 - buf < strlen(line1))
-					{
-						hyperobjects[hyperobjectcount].line = line;
-						hyperobjects[hyperobjectcount].col = calculate_len(buf, notestart + 7) - 1;
-						/* if the note highlight fits int first line */
-						if (tmp - buf < strlen(line1))
-							hyperobjects[hyperobjectcount].breakpos = -1;	/* we don't need to break highlighting int several lines */
-						else
-							hyperobjects[hyperobjectcount].breakpos = strlen(line1) -(long)(notestart + 7 - buf) + 1;	/* otherwise we need it */
-					}
-					else
-					{
-						hyperobjects[hyperobjectcount].line = line + 1;
-						hyperobjects[hyperobjectcount].col = calculate_len(buf + strlen(line1), notestart + 7) - 1;
-						if (tmp - buf < strlen(line1))	/* as above */
-							hyperobjects[hyperobjectcount].breakpos = -1;
-						else if ((hyperobjects[hyperobjectcount].breakpos = strlen(line1) -(long)(notestart + 7 - buf) + 1) == 0)
-							hyperobjects[hyperobjectcount].line--;
-					}
-					if (exists_in_tag_table(hyperobjects[hyperobjectcount].node))
-					{
-						hyperobjectcount++;	/* yep, this was a good hit */
-						goodHit = 1;
-					}
-					if (!goodHit)
-					{
-						if (!hyperobjectcount)
-						{
-							xfree(hyperobjects);
-							hyperobjects = 0;
-						}
-					}
-				}
-			}
+    /* make sure that we don't handle notes, which fit in the second line */
+    if ((long) (notestart - buf) < strlen (line1)) {
+      /* we can handle only those, who are in the first line, or who are split up into two lines */
+      tmp = strstr (notestart, "::");	/* "*note notelink:: comment" */
+      if (tmp != NULL) {
+	if (!hyperobjectcount)
+	  hyperobjects = (HyperObject *) xmalloc (sizeof (HyperObject));
+	else
+	  hyperobjects =
+	    (HyperObject *) xrealloc (hyperobjects,
+				      sizeof (HyperObject) *
+				      (hyperobjectcount + 1));
+	if (notestart[6] == '(') {	/* if cross-info link */
+	  char *end = strchr (notestart, ')');
+	  if ((end != NULL) && (end < tmp)) {	/* if the ')' char was found, and was before '::' */
+	    long FilenameLen = (long) (end - notestart - 7);
+	    long NodenameLen = (long) (tmp - end - 1);
+	    strncpy (hyperobjects[hyperobjectcount].file,
+		     notestart + 7, FilenameLen);
+	    hyperobjects[hyperobjectcount].file[FilenameLen] = 0;
+	    strncpy (hyperobjects[hyperobjectcount].node,
+		     end + 1, NodenameLen);
+	    hyperobjects[hyperobjectcount].node[NodenameLen] = 0;
+	    hyperobjects[hyperobjectcount].type = 2;
+	    if (notestart + 7 - buf < strlen (line1)) {
+	      hyperobjects[hyperobjectcount].line = line;
+	      hyperobjects[hyperobjectcount].col =
+		calculate_len (buf, notestart + 7);
+	      /* if the note highlight fits int first line */
+	      if (tmp - buf < strlen (line1))
+		hyperobjects[hyperobjectcount].breakpos = -1;
+	      /* we don't need to break highlighting int several lines */
+	      else
+		hyperobjects[hyperobjectcount].breakpos = strlen (line1) - (long) (notestart + 7 - buf) + 1;	/* otherwise we need it */
+	    } else {
+	      hyperobjects[hyperobjectcount].line = line + 1;
+	      hyperobjects[hyperobjectcount].col =
+		calculate_len (buf + strlen (line1), notestart + 7);
+	      if (tmp - buf < strlen (line1))	/* as above */
+		hyperobjects[hyperobjectcount].breakpos = -1;
+	      else
+		if ((hyperobjects[hyperobjectcount].breakpos =
+		     strlen (line1) - (long) (notestart + 7 - buf) + 1) == 0)
+		hyperobjects[hyperobjectcount].line--;
+	    }
+	    hyperobjects[hyperobjectcount].nodelen =
+	      strlen (hyperobjects[hyperobjectcount].node);
+	    hyperobjects[hyperobjectcount].filelen =
+	      strlen (hyperobjects[hyperobjectcount].file);
+	    hyperobjectcount++;
+	  }
+	} else {		/* if not cross-info link */
+
+	  long NodenameLen = (long) (tmp - notestart - 6);
+	  int goodHit = 0;
+	  strcpy (hyperobjects[hyperobjectcount].file, "");
+	  strncpy (hyperobjects[hyperobjectcount].node,
+		   notestart + 6, NodenameLen);
+	  hyperobjects[hyperobjectcount].node[NodenameLen] = 0;
+	  hyperobjects[hyperobjectcount].type = 2;
+	  hyperobjects[hyperobjectcount].nodelen =
+	    strlen (hyperobjects[hyperobjectcount].node);
+	  hyperobjects[hyperobjectcount].filelen =
+	    strlen (hyperobjects[hyperobjectcount].file);
+	  if (notestart + 7 - buf < strlen (line1)) {
+	    hyperobjects[hyperobjectcount].line = line;
+	    hyperobjects[hyperobjectcount].col =
+	      calculate_len (buf, notestart + 7) - 1;
+	    /* if the note highlight fits int first line */
+	    if (tmp - buf < strlen (line1))
+	      hyperobjects[hyperobjectcount].breakpos = -1;	/* we don't need to break highlighting int several lines */
+	    else
+	      hyperobjects[hyperobjectcount].breakpos = strlen (line1) - (long) (notestart + 7 - buf) + 1;	/* otherwise we need it */
+	  } else {
+	    hyperobjects[hyperobjectcount].line = line + 1;
+	    hyperobjects[hyperobjectcount].col =
+	      calculate_len (buf + strlen (line1), notestart + 7) - 1;
+	    if (tmp - buf < strlen (line1))	/* as above */
+	      hyperobjects[hyperobjectcount].breakpos = -1;
+	    else
+	      if ((hyperobjects[hyperobjectcount].breakpos =
+		   strlen (line1) - (long) (notestart + 7 - buf) + 1) == 0)
+	      hyperobjects[hyperobjectcount].line--;
+	  }
+	  if (exists_in_tag_table (hyperobjects[hyperobjectcount].node)) {
+	    hyperobjectcount++;	/* yep, this was a good hit */
+	    goodHit = 1;
+	  }
+	  if (!goodHit) {
+	    if (!hyperobjectcount) {
+	      xfree (hyperobjects);
+	      hyperobjects = 0;
+	    }
+	  }
+	}
+      }
 			/******************************************************************************
 			 * Scan for note references of form                                            *
 			 * "* Comment:[spaces](infofile)reference."                                    *
 			 ******************************************************************************/
-			else if ((tmp = strstr(notestart, ":")) != NULL)
-			{
-				char *start = 0, *end = 0, *dot = 0;
-				dot = finddot(tmp + 1, NOTE_DOT);	/* find the trailing dot */
-				if (dot != NULL)
-					if (dot + 7 < dot + strlen(dot))
-					{
-						if (strncmp(dot, ".info)", 6) == 0)
-							dot = finddot(dot + 1, NOTE_DOT);
-					}
-				if (((start = strchr(tmp, '(')) != NULL) &&(dot != NULL) &&
-						((end = strchr(start, ')')) != NULL))	/* end may be found only if start is nonNULL!!! */
-				{
-					if (start < dot)	/* security mechanism ;) */
-					{
-						if (end < dot)	/* security mechanism ;)) */
-						{
-							long FilenameLen =(long)(end - start - 1);
-							long NodenameLen =(long)(dot - end - 1);
-							if (!hyperobjectcount)
-								hyperobjects = (HyperObject*)xmalloc(sizeof(HyperObject));
-							else
-								hyperobjects = (HyperObject*)xrealloc(hyperobjects, sizeof(HyperObject) *(hyperobjectcount + 1));
-							strncpy(hyperobjects[hyperobjectcount].file,
-									start + 1, FilenameLen);
-							hyperobjects[hyperobjectcount].file[FilenameLen] = 0;
-							strncpy(hyperobjects[hyperobjectcount].node,
-									end + 1, NodenameLen);
-							hyperobjects[hyperobjectcount].node[NodenameLen] = 0;
-							hyperobjects[hyperobjectcount].type = 3;
-							if (start - buf < strlen(line1))
-							{
-								hyperobjects[hyperobjectcount].line = line;
-								hyperobjects[hyperobjectcount].col = calculate_len(buf, start);
-								if (dot - buf < strlen(line1))	/* if the note highlight fits in first line */
-									hyperobjects[hyperobjectcount].breakpos = -1;	/* we don't need to break highlighting int several lines */
-								else
-									hyperobjects[hyperobjectcount].breakpos = strlen(line1) -(long)(start - buf);	/* otherwise we need it */
-							}
-							else
-							{
-								hyperobjects[hyperobjectcount].line = line + 1;
-								hyperobjects[hyperobjectcount].col = calculate_len(buf + strlen(line1), start);
-								hyperobjects[hyperobjectcount].breakpos = -1;
-							}
-							hyperobjects[hyperobjectcount].nodelen=strlen(hyperobjects[hyperobjectcount].node);
-							hyperobjects[hyperobjectcount].filelen=strlen(hyperobjects[hyperobjectcount].file);
-							hyperobjectcount++;
-						}
-					}
-					else
-					{
-						goto handle_no_file_note_label;
-					}
-				}
-				else if (dot != NULL)	/* if not cross-info reference */
-				{
-handle_no_file_note_label:
-					{
-						long NodenameLen;
-						int goodHit = 0;
-						if (!hyperobjectcount)
-							hyperobjects = (HyperObject*)xmalloc(sizeof(HyperObject));
-						else
-							hyperobjects = (HyperObject*)xrealloc(hyperobjects, sizeof(HyperObject) *(hyperobjectcount + 1));
+      else if ((tmp = strstr (notestart, ":")) != NULL) {
+	char *start = 0, *end = 0, *dot = 0;
+	dot = finddot (tmp + 1, NOTE_DOT);	/* find the trailing dot */
+	if (dot != NULL)
+	  if (dot + 7 < dot + strlen (dot)) {
+	    if (strncmp (dot, ".info)", 6) == 0)
+	      dot = finddot (dot + 1, NOTE_DOT);
+	  }
+	if (((start = strchr (tmp, '(')) != NULL) && (dot != NULL) && ((end = strchr (start, ')')) != NULL)) {	/* end may be found only if start is nonNULL!!! */
+	  if (start < dot) {	/* security mechanism ;) */
+	    if (end < dot) {	/* security mechanism ;)) */
+	      long FilenameLen = (long) (end - start - 1);
+	      long NodenameLen = (long) (dot - end - 1);
+	      if (!hyperobjectcount)
+		hyperobjects = (HyperObject *) xmalloc (sizeof (HyperObject));
+	      else
+		hyperobjects =
+		  (HyperObject *) xrealloc (hyperobjects,
+					    sizeof (HyperObject) *
+					    (hyperobjectcount + 1));
+	      strncpy (hyperobjects[hyperobjectcount].file, start + 1,
+		       FilenameLen);
+	      hyperobjects[hyperobjectcount].file[FilenameLen] = 0;
+	      strncpy (hyperobjects[hyperobjectcount].node,
+		       end + 1, NodenameLen);
+	      hyperobjects[hyperobjectcount].node[NodenameLen] = 0;
+	      hyperobjects[hyperobjectcount].type = 3;
+	      if (start - buf < strlen (line1)) {
+		hyperobjects[hyperobjectcount].line = line;
+		hyperobjects[hyperobjectcount].col =
+		  calculate_len (buf, start);
+		if (dot - buf < strlen (line1))	/* if the note highlight fits in first line */
+		  hyperobjects[hyperobjectcount].breakpos = -1;	/* we don't need to break highlighting int several lines */
+		else
+		  hyperobjects[hyperobjectcount].breakpos = strlen (line1) - (long) (start - buf);	/* otherwise we need it */
+	      } else {
+		hyperobjects[hyperobjectcount].line = line + 1;
+		hyperobjects[hyperobjectcount].col =
+		  calculate_len (buf + strlen (line1), start);
+		hyperobjects[hyperobjectcount].breakpos = -1;
+	      }
+	      hyperobjects[hyperobjectcount].nodelen =
+		strlen (hyperobjects[hyperobjectcount].node);
+	      hyperobjects[hyperobjectcount].filelen =
+		strlen (hyperobjects[hyperobjectcount].file);
+	      hyperobjectcount++;
+	    }
+	  } else {
+	    goto handle_no_file_note_label;
+	  }
+	} else if (dot != NULL) {	/* if not cross-info reference */
+	handle_no_file_note_label:
+	  {
+	    long NodenameLen;
+	    int goodHit = 0;
+	    if (!hyperobjectcount)
+	      hyperobjects = (HyperObject *) xmalloc (sizeof (HyperObject));
+	    else
+	      hyperobjects =
+		(HyperObject *) xrealloc (hyperobjects,
+					  sizeof (HyperObject) *
+					  (hyperobjectcount + 1));
 
-						start = tmp + 1;	/* move after the padding spaces */
-						while (isspace(*start))
-							start++;
-						NodenameLen =(long)(dot - start);
-						strcpy(hyperobjects[hyperobjectcount].file, "");
-						strncpy(hyperobjects[hyperobjectcount].node,
-								start, NodenameLen);
-						hyperobjects[hyperobjectcount].node[NodenameLen] = 0;
-						hyperobjects[hyperobjectcount].type = 3;
-						hyperobjects[hyperobjectcount].nodelen=strlen(hyperobjects[hyperobjectcount].node);
-						hyperobjects[hyperobjectcount].filelen=strlen(hyperobjects[hyperobjectcount].file);
-						if (start - buf < strlen(line1))
-						{
-							hyperobjects[hyperobjectcount].line = line;
-							hyperobjects[hyperobjectcount].col = calculate_len(buf, start);
-							if (dot - buf < strlen(line1))		/* if the note highlight fits in first line */
-								hyperobjects[hyperobjectcount].breakpos = -1;		/* we don't need to break highlighting int several lines */
-							else
-								hyperobjects[hyperobjectcount].breakpos = strlen(line1) -(long)(start - buf);	/* otherwise we need it */
-						}
-						else
-						{
-							hyperobjects[hyperobjectcount].line = line + 1;
-							hyperobjects[hyperobjectcount].col = calculate_len(strlen(line1) + buf, start);
-							hyperobjects[hyperobjectcount].breakpos = -1;
-						}
-						if (exists_in_tag_table(hyperobjects[hyperobjectcount].node))
-						{
-							hyperobjectcount++;	/* yep, this was a good hit */
-							goodHit = 1;
-						}
-						if (!goodHit)
-						{
-							if (!hyperobjectcount)
-							{
-								xfree(hyperobjects);
-								hyperobjects = 0;
-							}
-						}
-					}
-				}
-			}
-		}
+	    start = tmp + 1;	/* move after the padding spaces */
+	    while (isspace (*start))
+	      start++;
+	    NodenameLen = (long) (dot - start);
+	    strcpy (hyperobjects[hyperobjectcount].file, "");
+	    strncpy (hyperobjects[hyperobjectcount].node, start, NodenameLen);
+	    hyperobjects[hyperobjectcount].node[NodenameLen] = 0;
+	    hyperobjects[hyperobjectcount].type = 3;
+	    hyperobjects[hyperobjectcount].nodelen =
+	      strlen (hyperobjects[hyperobjectcount].node);
+	    hyperobjects[hyperobjectcount].filelen =
+	      strlen (hyperobjects[hyperobjectcount].file);
+	    if (start - buf < strlen (line1)) {
+	      hyperobjects[hyperobjectcount].line = line;
+	      hyperobjects[hyperobjectcount].col = calculate_len (buf, start);
+	      if (dot - buf < strlen (line1))	/* if the note highlight fits in first line */
+		hyperobjects[hyperobjectcount].breakpos = -1;	/* we don't need to break highlighting int several lines */
+	      else
+		hyperobjects[hyperobjectcount].breakpos = strlen (line1) - (long) (start - buf);	/* otherwise we need it */
+	    } else {
+	      hyperobjects[hyperobjectcount].line = line + 1;
+	      hyperobjects[hyperobjectcount].col =
+		calculate_len (strlen (line1) + buf, start);
+	      hyperobjects[hyperobjectcount].breakpos = -1;
+	    }
+	    if (exists_in_tag_table (hyperobjects[hyperobjectcount].node)) {
+	      hyperobjectcount++;	/* yep, this was a good hit */
+	      goodHit = 1;
+	    }
+	    if (!goodHit) {
+	      if (!hyperobjectcount) {
+		xfree (hyperobjects);
+		hyperobjects = 0;
+	      }
+	    }
+	  }
 	}
-	if (notestart)
-		if (notestart + 6 < buf + strlen(buf) + 1)
-		{
-			tmp = notestart;
-			if ((notestart = strstr(notestart + 6, "*Note")) != NULL)
-				goto handlenote;
-			notestart = tmp;
-			if ((notestart = strstr(notestart + 6, "*note")) != NULL)
-				goto handlenote;
-		}
+      }
+    }
+  }
+  if (notestart)
+    if (notestart + 6 < buf + strlen (buf) + 1) {
+      tmp = notestart;
+      if ((notestart = strstr (notestart + 6, "*Note")) != NULL)
+	goto handlenote;
+      notestart = tmp;
+      if ((notestart = strstr (notestart + 6, "*note")) != NULL)
+	goto handlenote;
+    }
 	/******************************************************************************
 	 * Try to scan for some url-like objects in single line; mainly               *
 	 * http://[address][space|\n|\t]                                              *
 	 * ftp://[address][space|\n|\t]                                               *
 	 * username at something.else[space|\n|\t]                                       *
 	 *****************************************************************************/
-	/* http:// */
-	urlend = line1;
-	while ((urlstart = strstr(urlend, "http://")) != NULL)
-	{
-		urlend = findurlend(urlstart);	/* always successful */
-		if (!hyperobjectcount)
-			hyperobjects = (HyperObject*)xmalloc(sizeof(HyperObject));
-		else
-			hyperobjects = (HyperObject*)xrealloc(hyperobjects, sizeof(HyperObject) *(hyperobjectcount + 1));
-		hyperobjects[hyperobjectcount].line = line;
-		hyperobjects[hyperobjectcount].col = calculate_len(line1, urlstart);
-		hyperobjects[hyperobjectcount].breakpos = -1;
-		hyperobjects[hyperobjectcount].type = 4;
-		strncpy(hyperobjects[hyperobjectcount].node, urlstart, urlend - urlstart);
-		hyperobjects[hyperobjectcount].node[urlend - urlstart] = 0;
-		strcpy(hyperobjects[hyperobjectcount].file, "");
-		hyperobjects[hyperobjectcount].tagtableoffset = -1;
-		hyperobjects[hyperobjectcount].nodelen=strlen(hyperobjects[hyperobjectcount].node);
-		hyperobjects[hyperobjectcount].filelen=strlen(hyperobjects[hyperobjectcount].file);
-		hyperobjectcount++;
-	}
-	/* ftp:// */
-	urlend = line1;
-	while ((urlstart = strstr(urlend, "ftp://")) != NULL)
-	{
-		urlend = findurlend(urlstart);	/* always successful */
-		if (!hyperobjectcount)
-			hyperobjects = (HyperObject*)xmalloc(sizeof(HyperObject));
-		else
-			hyperobjects = (HyperObject*)xrealloc(hyperobjects, sizeof(HyperObject) *(hyperobjectcount + 1));
-		hyperobjects[hyperobjectcount].line = line;
-		hyperobjects[hyperobjectcount].col = calculate_len(line1, urlstart);
-		hyperobjects[hyperobjectcount].breakpos = -1;
-		hyperobjects[hyperobjectcount].type = 5;
-		strncpy(hyperobjects[hyperobjectcount].node, urlstart, urlend - urlstart);
-		hyperobjects[hyperobjectcount].node[urlend - urlstart] = 0;
-		strcpy(hyperobjects[hyperobjectcount].file, "");
-		hyperobjects[hyperobjectcount].tagtableoffset = -1;
-		hyperobjects[hyperobjectcount].nodelen=strlen(hyperobjects[hyperobjectcount].node);
-		hyperobjects[hyperobjectcount].filelen=strlen(hyperobjects[hyperobjectcount].file);
-		hyperobjectcount++;
-	}
-	if (initialhyperobjectcount != hyperobjectcount)
-		sort_hyperlinks_from_current_line(initialhyperobjectcount, hyperobjectcount);
-	if (buf)
-	{
-		xfree(buf);
-		buf = 0;
-	}
+  /* http:// */
+  urlend = line1;
+  while ((urlstart = strstr (urlend, "http://")) != NULL) {
+    urlend = findurlend (urlstart);	/* always successful */
+    if (!hyperobjectcount)
+      hyperobjects = (HyperObject *) xmalloc (sizeof (HyperObject));
+    else
+      hyperobjects =
+	(HyperObject *) xrealloc (hyperobjects,
+				  sizeof (HyperObject) * (hyperobjectcount +
+							  1));
+    hyperobjects[hyperobjectcount].line = line;
+    hyperobjects[hyperobjectcount].col = calculate_len (line1, urlstart);
+    hyperobjects[hyperobjectcount].breakpos = -1;
+    hyperobjects[hyperobjectcount].type = 4;
+    strncpy (hyperobjects[hyperobjectcount].node, urlstart,
+	     urlend - urlstart);
+    hyperobjects[hyperobjectcount].node[urlend - urlstart] = 0;
+    strcpy (hyperobjects[hyperobjectcount].file, "");
+    hyperobjects[hyperobjectcount].tagtableoffset = -1;
+    hyperobjects[hyperobjectcount].nodelen =
+      strlen (hyperobjects[hyperobjectcount].node);
+    hyperobjects[hyperobjectcount].filelen =
+      strlen (hyperobjects[hyperobjectcount].file);
+    hyperobjectcount++;
+  }
+  /* ftp:// */
+  urlend = line1;
+  while ((urlstart = strstr (urlend, "ftp://")) != NULL) {
+    urlend = findurlend (urlstart);	/* always successful */
+    if (!hyperobjectcount)
+      hyperobjects = (HyperObject *) xmalloc (sizeof (HyperObject));
+    else
+      hyperobjects =
+	(HyperObject *) xrealloc (hyperobjects,
+				  sizeof (HyperObject) * (hyperobjectcount +
+							  1));
+    hyperobjects[hyperobjectcount].line = line;
+    hyperobjects[hyperobjectcount].col = calculate_len (line1, urlstart);
+    hyperobjects[hyperobjectcount].breakpos = -1;
+    hyperobjects[hyperobjectcount].type = 5;
+    strncpy (hyperobjects[hyperobjectcount].node, urlstart,
+	     urlend - urlstart);
+    hyperobjects[hyperobjectcount].node[urlend - urlstart] = 0;
+    strcpy (hyperobjects[hyperobjectcount].file, "");
+    hyperobjects[hyperobjectcount].tagtableoffset = -1;
+    hyperobjects[hyperobjectcount].nodelen =
+      strlen (hyperobjects[hyperobjectcount].node);
+    hyperobjects[hyperobjectcount].filelen =
+      strlen (hyperobjects[hyperobjectcount].file);
+    hyperobjectcount++;
+  }
+  if (initialhyperobjectcount != hyperobjectcount)
+    sort_hyperlinks_from_current_line (initialhyperobjectcount,
+				       hyperobjectcount);
+  if (buf) {
+    xfree (buf);
+    buf = 0;
+  }
 }

Modified: pinfo/branches/cxx/src/mainfunction.cxx
===================================================================
--- pinfo/branches/cxx/src/mainfunction.cxx	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/mainfunction.cxx	2005-08-26 08:41:40 UTC (rev 41)
@@ -21,1228 +21,1077 @@
 #include "common_includes.h"
 #include "printinfo.h"
 
-RCSID("$Id$")
-
+RCSID ("$Id$")
 #include <ctype.h>
-
 #ifndef MIN
 #define        MIN(a,b)(((a)<(b))?(a):(b))
 #endif
+     void rescan_cursor ();	/* set the cursor to 1st item on visible screen */
+     void next_infomenu ();	/* go to the next menu item for sequential reading */
+     int getnodeoffset (int tag_table_pos, int *Indstart);	/* get node offset in file */
 
-void rescan_cursor();	/* set the cursor to 1st item on visible screen */
-void next_infomenu();	/* go to the next menu item for sequential reading */
-int getnodeoffset(int tag_table_pos, int *Indstart);	/* get node offset in file */
-
-int aftersearch = 0;
+     int aftersearch = 0;
 /*
  * this flag is turned on when the engine receives a simulated `key.back',
  * caused by the sequential auto-pgdn reading code
  */
-int toggled_by_menu = 0;
-long pos, cursor, infomenu, infocolumn=0;
+     int toggled_by_menu = 0;
+     long pos, cursor, infomenu, infocolumn = 0;
 
 WorkRVal
-work(char ***message, char **type, long *lines, FILE * id, int tag_table_pos)
+work (char ***message, char **type, long *lines, FILE * id, int tag_table_pos)
 {
 #define Message	(*message)
 #define Lines	(*lines)
 #define Type	(*type)
-	static WorkRVal rval =
-	{0, 0};
-	FILE *pipe;
-	int i, fileoffset, j;
-	int indirectstart = -1;
-	int cursorchanged = 0;
-	int key = 0;
-	int return_value;
-	int statusline = FREE;
-	char *token, *tmp;
-	if (rval.file)		/* if the static variable was allocated, free it */
-	{
-		xfree(rval.file);
-		rval.file = 0;
-	}
-	if (rval.node)
-	{
-		xfree(rval.node);
-		rval.node = 0;
-	}
+  static WorkRVal rval = { 0, 0 };
+  FILE *pipe;
+  int i, fileoffset, j;
+  int indirectstart = -1;
+  int cursorchanged = 0;
+  int key = 0;
+  int return_value;
+  int statusline = FREE;
+  char *token, *tmp;
+  if (rval.file) {		/* if the static variable was allocated, free it */
+    xfree (rval.file);
+    rval.file = 0;
+  }
+  if (rval.node) {
+    xfree (rval.node);
+    rval.node = 0;
+  }
 
-	pos = 1, cursor = 0, infomenu = -1;	/* default position, and selected number */
+  pos = 1, cursor = 0, infomenu = -1;	/* default position, and selected number */
 
 #ifdef getmaxyx
-	getmaxyx(stdscr, maxy, maxx);	/* initialize maxx, maxy */
+  getmaxyx (stdscr, maxy, maxx);	/* initialize maxx, maxy */
 #else
-	maxx = 80;
-	maxy = 25;
+  maxx = 80;
+  maxy = 25;
 #endif /*  getmaxyx */
-	/* free memory allocated previously by hypertext links */
-	freelinks();
-	for (i = 1; i < Lines; i++)	/* initialize node-links for every line */
-	{
-		initializelinks(Message[i], Message[i + 1], i);
-	}
-	initializelinks(Message[Lines], "", Lines);
+  /* free memory allocated previously by hypertext links */
+  freelinks ();
+  for (i = 1; i < Lines; i++) {	/* initialize node-links for every line */
+    initializelinks (Message[i], Message[i + 1], i);
+  }
+  initializelinks (Message[Lines], "", Lines);
 
-	next_infomenu();		/* infomenu will remain -1 if it's the last pos, or if there's no menu item */
+  next_infomenu ();		/* infomenu will remain -1 if it's the last pos, or if there's no menu item */
 
-	if (npos != -1)
-		pos = npos;			/* set eventual history pos */
+  if (npos != -1)
+    pos = npos;			/* set eventual history pos */
 
-	/* if we're in a node found using 's'earch function. */
-	if (aftersearch)
-	{
-		pos = aftersearch;	/* set pos to the found position */
-		/*      aftersearch=0;  * don't reset this--we want to know if we mus highlight something */
-	}
+  /* if we're in a node found using 's'earch function. */
+  if (aftersearch) {
+    pos = aftersearch;		/* set pos to the found position */
+    /*      aftersearch=0;  * don't reset this--we want to know if we mus highlight something */
+  }
 
-	if (ncursor != -1)
-	{
-		cursor = ncursor;		/* set eventual cursor pos  */
-		infomenu = nmenu;		/* same with last sequential reading menu pos */
-	}
-	else
-	{
-		rescan_cursor();		/* scan for cursor position */
-	}
-	if (toggled_by_menu)		/* this node will not be shown to the user--it shouldn't go to history */
-		dellastinfohistory();	/* delete the history entry for this node--it's not even seen by the user */
-	npos = -1;			/* turn off the `next-time' pos/cursor modifiers */
-	ncursor = -1;
-	nmenu = -1;
-	addtopline(Type,infocolumn);
-	while (1)
-	{
-		/*
-		 * read key, and show screen only if there is nothing in the input
-		 * buffer.  Otherwise the scrolling would be too slow.
-		 */
-		nodelay(stdscr, TRUE);
-		key = pinfo_getch();
-		if (key == ERR)
-		{
-			if (statusline == FREE)
-				showscreen(Message, Type, Lines, pos, cursor,infocolumn);
-			waitforgetch();
-			key = pinfo_getch();
-		}
-		nodelay(stdscr, FALSE);
-		statusline = FREE;
-		if (winchanged)		/* SIGWINCH */
-		{
-			handlewinch();
-			winchanged = 0;
-			addtopline(Type,infocolumn);
-			key = pinfo_getch();
-		}
+  if (ncursor != -1) {
+    cursor = ncursor;		/* set eventual cursor pos  */
+    infomenu = nmenu;		/* same with last sequential reading menu pos */
+  } else {
+    rescan_cursor ();		/* scan for cursor position */
+  }
+  if (toggled_by_menu)		/* this node will not be shown to the user--it shouldn't go to history */
+    dellastinfohistory ();	/* delete the history entry for this node--it's not even seen by the user */
+  npos = -1;			/* turn off the `next-time' pos/cursor modifiers */
+  ncursor = -1;
+  nmenu = -1;
+  addtopline (Type, infocolumn);
+  while (1) {
+    /*
+     * read key, and show screen only if there is nothing in the input
+     * buffer.  Otherwise the scrolling would be too slow.
+     */
+    nodelay (stdscr, TRUE);
+    key = pinfo_getch ();
+    if (key == ERR) {
+      if (statusline == FREE)
+	showscreen (Message, Type, Lines, pos, cursor, infocolumn);
+      waitforgetch ();
+      key = pinfo_getch ();
+    }
+    nodelay (stdscr, FALSE);
+    statusline = FREE;
+    if (winchanged) {		/* SIGWINCH */
+      handlewinch ();
+      winchanged = 0;
+      addtopline (Type, infocolumn);
+      key = pinfo_getch ();
+    }
 		/***************************** keyboard handling ****************************/
-		if (key != 0)
-		{
-			if ((key == keys.print_1) ||
-					(key == keys.print_2))
-			{
-				if (yesno(_("Are you sure to print?"), 0) == 1)
-					printnode(message, lines);
-			}
+    if (key != 0) {
+      if ((key == keys.print_1) || (key == keys.print_2)) {
+	if (yesno (_("Are you sure to print?"), 0) == 1)
+	  printnode (message, lines);
+      }
 			/*==========================================================================*/
-			if ((key == keys.pgdn_auto_1) ||
-					(key == keys.pgdn_auto_2) ||
-					(toggled_by_menu))
-			{
-				int wastoggled = toggled_by_menu;
-				toggled_by_menu = 0;
-				/* if hyperobject type <= 1, then we have a menu */
-				if ((pos >= Lines -(maxy - 2)) ||(wastoggled))
-				{
-					if ((infomenu != -1) &&(!wastoggled))
-					{
-						cursor = infomenu;
-						key = keys.followlink_1;	/* the handler for keys.followlink must be bellow this statement! */
-					}
-					else
-						/* we shouldn't select a menu item if this node is called via `up:' from bottom, or if there is no menu */
-					{
-						char *typestr = strdup(Type);
-						getnextnode(Type, typestr);
-						if (strcmp(typestr, ERRNODE) != 0)
-						{
-							key = keys.nextnode_1;
-						}
-						else
-						{
-							getnodename(Type, typestr);
-							if (strcmp(FirstNodeName, typestr) != 0)	/* if it's not end of all menus */
-							{
-								if (wastoggled)	/* if we're in the temporary called up node */
-									toggled_by_menu = KILL_HISTORY;
-								else	/* if we are calling the up node from non-temporary bottom node */
-									toggled_by_menu = KEEP_HISTORY;
-								key = keys.upnode_1;
-								ungetch(KEY_NOTHING);
-							}
-						}	/* end: else if nextnode==ERRNODE */
-					}		/* end: if we shouldn't select a menu item */
-				}		/* end: if position is right */
-			}
+      if ((key == keys.pgdn_auto_1) ||
+	  (key == keys.pgdn_auto_2) || (toggled_by_menu)) {
+	int wastoggled = toggled_by_menu;
+	toggled_by_menu = 0;
+	/* if hyperobject type <= 1, then we have a menu */
+	if ((pos >= Lines - (maxy - 2)) || (wastoggled)) {
+	  if ((infomenu != -1) && (!wastoggled)) {
+	    cursor = infomenu;
+	    key = keys.followlink_1;	/* the handler for keys.followlink must be bellow this statement! */
+	  } else
+	    /* we shouldn't select a menu item if this node is called via `up:' from bottom, or if there is no menu */
+	  {
+	    char *typestr = strdup (Type);
+	    getnextnode (Type, typestr);
+	    if (strcmp (typestr, ERRNODE) != 0) {
+	      key = keys.nextnode_1;
+	    } else {
+	      getnodename (Type, typestr);
+	      if (strcmp (FirstNodeName, typestr) != 0) {	/* if it's not end of all menus */
+		if (wastoggled)	/* if we're in the temporary called up node */
+		  toggled_by_menu = KILL_HISTORY;
+		else		/* if we are calling the up node from non-temporary bottom node */
+		  toggled_by_menu = KEEP_HISTORY;
+		key = keys.upnode_1;
+		ungetch (KEY_NOTHING);
+	      }
+	    }			/* end: else if nextnode==ERRNODE */
+	  }			/* end: if we shouldn't select a menu item */
+	}			/* end: if position is right */
+      }
 			/*==========================================================================*/
-			if ((key == keys.goline_1) ||
-					(key == keys.goline_2))
-			{
-				long newpos;
-				attrset(bottomline);	/* read user's value */
-				move(maxy - 1, 0);
-				echo();
-				curs_set(1);
-				token = getstring(_("Enter line: "));
-				curs_set(0);
-				noecho();
-				move(maxy - 1, 0);
-				myclrtoeol();
-				attrset(normal);
-				if (token)	/*
-							 * convert string to long.
-							 * careful with nondigit strings.
-							 */
-				{
-					int digit_val = 1;
-					for (i = 0; token[i] != 0; i++)
-					{
-						if (!isdigit(token[i]))
-							digit_val = 0;
-					}
-					if (digit_val)	/* go to specified line */
-					{
-						newpos = atol(token);
-						newpos -=(maxy - 1);
-						if ((newpos > 0) &&(newpos < Lines -(maxy - 2)))
-							pos = newpos;
-						else if ((newpos > 0) &&((Lines -(maxy - 2)) > 0))
-							pos = Lines -(maxy - 2);
-						else
-							pos = 1;
-					}
-					xfree(token);
-					token = 0;
-				}
-			}
+      if ((key == keys.goline_1) || (key == keys.goline_2)) {
+	long newpos;
+	attrset (bottomline);	/* read user's value */
+	move (maxy - 1, 0);
+	echo ();
+	curs_set (1);
+	token = getstring (_("Enter line: "));
+	curs_set (0);
+	noecho ();
+	move (maxy - 1, 0);
+	myclrtoeol ();
+	attrset (normal);
+	if (token) {		/*
+				 * convert string to long.
+				 * careful with nondigit strings.
+				 */
+	  int digit_val = 1;
+	  for (i = 0; token[i] != 0; i++) {
+	    if (!isdigit (token[i]))
+	      digit_val = 0;
+	  }
+	  if (digit_val) {	/* go to specified line */
+	    newpos = atol (token);
+	    newpos -= (maxy - 1);
+	    if ((newpos > 0) && (newpos < Lines - (maxy - 2)))
+	      pos = newpos;
+	    else if ((newpos > 0) && ((Lines - (maxy - 2)) > 0))
+	      pos = Lines - (maxy - 2);
+	    else
+	      pos = 1;
+	  }
+	  xfree (token);
+	  token = 0;
+	}
+      }
 			/*==========================================================================*/
-			if ((key == keys.shellfeed_1) ||
-					(key == keys.shellfeed_2))
-			{
-				/* get command name */
-				attrset(bottomline);
-				move(maxy - 1, 0);
-				echo();
-				curs_set(1);
-				token = getstring(_("Enter command: "));
-				noecho();
-				move(maxy - 1, 0);
-				myclrtoeol();
-				attrset(normal);
+      if ((key == keys.shellfeed_1) || (key == keys.shellfeed_2)) {
+	/* get command name */
+	attrset (bottomline);
+	move (maxy - 1, 0);
+	echo ();
+	curs_set (1);
+	token = getstring (_("Enter command: "));
+	noecho ();
+	move (maxy - 1, 0);
+	myclrtoeol ();
+	attrset (normal);
 
-				myendwin();
-				system("clear");
-				pipe = popen(token, "w");	/* open pipe */
-				if (pipe != NULL)
-				{
-					for (i = 1; i <= Lines; i++)	/* and flush the msg to stdin */
-						fprintf(pipe, "%s", Message[i]);
-					pclose(pipe);
-					getchar();
-				}
-				doupdate();
-				curs_set(0);
-				if (pipe == NULL)
-					mvaddstr(maxy - 1, 0, _("Operation failed..."));
-				xfree(token);
-				token = 0;
-			}
+	myendwin ();
+	system ("clear");
+	pipe = popen (token, "w");	/* open pipe */
+	if (pipe != NULL) {
+	  for (i = 1; i <= Lines; i++)	/* and flush the msg to stdin */
+	    fprintf (pipe, "%s", Message[i]);
+	  pclose (pipe);
+	  getchar ();
+	}
+	doupdate ();
+	curs_set (0);
+	if (pipe == NULL)
+	  mvaddstr (maxy - 1, 0, _("Operation failed..."));
+	xfree (token);
+	token = 0;
+      }
 			/*==========================================================================*/
-			if ((key == keys.dirpage_1) ||
-					(key == keys.dirpage_2))
-			{
-				rval.file = (char*)malloc(10);
-				strcpy(rval.file, "dir");
-				rval.node = (char*)malloc(2);
-				strcpy(rval.node, "");
-				aftersearch = 0;
-				return rval;
-			}
+      if ((key == keys.dirpage_1) || (key == keys.dirpage_2)) {
+	rval.file = (char *) malloc (10);
+	strcpy (rval.file, "dir");
+	rval.node = (char *) malloc (2);
+	strcpy (rval.node, "");
+	aftersearch = 0;
+	return rval;
+      }
 			/*==========================================================================*/
-			if ((key == keys.refresh_1) ||
-					(key == keys.refresh_2))
-			{
-				myendwin();
-				doupdate();
-				refresh();
-				curs_set(0);
-			}
+      if ((key == keys.refresh_1) || (key == keys.refresh_2)) {
+	myendwin ();
+	doupdate ();
+	refresh ();
+	curs_set (0);
+      }
 			/*==========================================================================*/
-			if ((key == keys.totalsearch_1) ||	/* search in all nodes later than this one */
-					(key == keys.totalsearch_2))
-			{
-				int tmpaftersearch = aftersearch;
-				indirectstart = -1;
-				move(maxy - 1, 0);
-				attrset(bottomline);
-				echo();
-				curs_set(1);
-				if (!searchagain.search)	/* if searchagain key wasn't hit */
-				{
-					token = getstring(_("Enter regexp: "));	/* get the token */
-					strcpy(searchagain.lastsearch, token);	/* and save it to searchagain buffer */
-					/*
-					 * give a hint, which key to ungetch to call this procedure
-					 * by searchagain
-					 */
-					searchagain.type = key;
-				}
-				else /* it IS searchagain */
-				{
-					token = (char*)xmalloc(strlen(searchagain.lastsearch) + 1);
-					/* allocate space for token */
-					strcpy(token, searchagain.lastsearch);
-					/* copy the token from searchagain buffer */
-					searchagain.search = 0;
-					/* reset the searchagain swith(until it's set again
-					   by the keys.searchagain key handler) */
-				}
-				if (strlen(token) == 0)
-				{
-					xfree(token);
-					goto skip_search;
-				}
-				curs_set(0);
-				noecho();
-				attrset(normal);
+      if ((key == keys.totalsearch_1) ||	/* search in all nodes later than this one */
+	  (key == keys.totalsearch_2)) {
+	int tmpaftersearch = aftersearch;
+	indirectstart = -1;
+	move (maxy - 1, 0);
+	attrset (bottomline);
+	echo ();
+	curs_set (1);
+	if (!searchagain.search) {	/* if searchagain key wasn't hit */
+	  token = getstring (_("Enter regexp: "));	/* get the token */
+	  strcpy (searchagain.lastsearch, token);	/* and save it to searchagain buffer */
+	  /*
+	   * give a hint, which key to ungetch to call this procedure
+	   * by searchagain
+	   */
+	  searchagain.type = key;
+	} else {		/* it IS searchagain */
 
-				/* Calculate current info file offset...  */
-				fileoffset = 0;
-				for (i = 1; i <= pos + 1; i++)	/* count the length of curnode */
-					fileoffset += strlen(Message[i]);
-				fileoffset += strlen(Type);	/* add also header length */
+	  token = (char *) xmalloc (strlen (searchagain.lastsearch) + 1);
+	  /* allocate space for token */
+	  strcpy (token, searchagain.lastsearch);
+	  /* copy the token from searchagain buffer */
+	  searchagain.search = 0;
+	  /* reset the searchagain swith(until it's set again
+	     by the keys.searchagain key handler) */
+	}
+	if (strlen (token) == 0) {
+	  xfree (token);
+	  goto skip_search;
+	}
+	curs_set (0);
+	noecho ();
+	attrset (normal);
 
-				fileoffset += getnodeoffset(tag_table_pos, &indirectstart);	/* also load the variable indirectstart */
+	/* Calculate current info file offset...  */
+	fileoffset = 0;
+	for (i = 1; i <= pos + 1; i++)	/* count the length of curnode */
+	  fileoffset += strlen (Message[i]);
+	fileoffset += strlen (Type);	/* add also header length */
 
-				/* Searching part...  */
-				aftersearch = 0;
+	fileoffset += getnodeoffset (tag_table_pos, &indirectstart);	/* also load the variable indirectstart */
 
+	/* Searching part...  */
+	aftersearch = 0;
+
 				/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-				return_value = -1;
-				if (indirect)	/* the info is of indirect type; we'll search through several files */
-				{
-					FILE *fd;
-					long tokenpos;
-					long starttokenpos;
-					long filelen;
-					for (j = indirectstart; j <= IndirectEntries; j++)
-					{
-						fd = openinfo(indirect[j].filename, 1);	/* get file
-																	 * length. */
-						fseek(fd, 0, SEEK_END);
-						filelen = ftell(fd);
+	return_value = -1;
+	if (indirect) {		/* the info is of indirect type; we'll search through several files */
+	  FILE *fd;
+	  long tokenpos;
+	  long starttokenpos;
+	  long filelen;
+	  for (j = indirectstart; j <= IndirectEntries; j++) {
+	    fd = openinfo (indirect[j].filename, 1);	/* get file
+							 * length. */
+	    fseek (fd, 0, SEEK_END);
+	    filelen = ftell (fd);
 
-						/*
-						 * seek to the beginning of search area. At the first
-						 * time it is `fileoffset', then it is the first node's
-						 * offset
-						 */
-						if (j == indirectstart)
+	    /*
+	     * seek to the beginning of search area. At the first
+	     * time it is `fileoffset', then it is the first node's
+	     * offset
+	     */
+	    if (j == indirectstart)
 
-							fseek(fd, fileoffset, SEEK_SET);
-						else
-							fseek(fd, FirstNodeOffset, SEEK_SET);
-						starttokenpos = ftell(fd);
+	      fseek (fd, fileoffset, SEEK_SET);
+	    else
+	      fseek (fd, FirstNodeOffset, SEEK_SET);
+	    starttokenpos = ftell (fd);
 
-						tmp = (char*)xmalloc(filelen - starttokenpos + 10);	/* read data */
-						fread(tmp, 1, filelen - starttokenpos, fd);
-						tmp[filelen - starttokenpos + 1] = 0;
+	    tmp = (char *) xmalloc (filelen - starttokenpos + 10);	/* read data */
+	    fread (tmp, 1, filelen - starttokenpos, fd);
+	    tmp[filelen - starttokenpos + 1] = 0;
 
-						tokenpos = regexp_search(token, tmp);	/* search */
+	    tokenpos = regexp_search (token, tmp);	/* search */
 
-						if (tokenpos != -1)	/* if something was found */
-						{
-							/*
-							 * add the offset of the part of file, which wasn't
-							 * read to the memory
-							 */
-							tokenpos += starttokenpos;
-							{	/* local scope for tmpvar, matched */
-								int tmpvar = 0, matched = 0;
-								tag_table[0].offset = 0;
-								for (i = TagTableEntries; i >= 1; i--)
-								{
-									if ((tag_table[i].offset > tag_table[tmpvar].offset) &&
-											((tag_table[i].offset - indirect[j].offset + FirstNodeOffset) <= tokenpos))
-									{
-										return_value = i;
-										tmpvar = i;
-										matched = 1;
-									}
-								}
-							}
-							/* this means, that indirect entry was found.  */
-							if (return_value != -1)
-							{
-								fseek(fd, tag_table[return_value].offset - indirect[j].offset + FirstNodeOffset, SEEK_SET);
-								/* seek to the found node offset */
-								while (fgetc(fd) != INFO_TAG);
-								fgetc(fd);	/* skip newline */
+	    if (tokenpos != -1) {	/* if something was found */
+	      /*
+	       * add the offset of the part of file, which wasn't
+	       * read to the memory
+	       */
+	      tokenpos += starttokenpos;
+	      {			/* local scope for tmpvar, matched */
+		int tmpvar = 0, matched = 0;
+		tag_table[0].offset = 0;
+		for (i = TagTableEntries; i >= 1; i--) {
+		  if ((tag_table[i].offset > tag_table[tmpvar].offset) &&
+		      ((tag_table[i].offset - indirect[j].offset +
+			FirstNodeOffset) <= tokenpos)) {
+		    return_value = i;
+		    tmpvar = i;
+		    matched = 1;
+		  }
+		}
+	      }
+	      /* this means, that indirect entry was found.  */
+	      if (return_value != -1) {
+		fseek (fd,
+		       tag_table[return_value].offset - indirect[j].offset +
+		       FirstNodeOffset, SEEK_SET);
+		/* seek to the found node offset */
+		while (fgetc (fd) != INFO_TAG);
+		fgetc (fd);	/* skip newline */
 
-								aftersearch = 1;
+		aftersearch = 1;
 
-								/*
-								 * count, how many lines stands befor the token
-								 * line.
-								 */
-								while (ftell(fd) < tokenpos)
-								{
-									int chr = fgetc(fd);
-									if (chr == '\n')
-										aftersearch++;
-									else if (chr == EOF)
-										break;
-								}
-								/*
-								 * the number ofline where a token is found, is
-								 * now in the variable `aftersearch'
-								 */
-								if (aftersearch > 1)
-									aftersearch--;
-								else
-									aftersearch = 1;
-							}	/* end: if (indirect entry was found) */
-							if (aftersearch)	/* if something was found */
-							{
-								if (tmp)	/* free tmp buffer */
-								{
-									xfree(tmp);
-									tmp = 0;
-								}
-								break;
-							}
-						}	/* end: if (tokenpos) */
-					}		/* end: indirect file loop */
-					if (tmp)	/* free tmp buffer */
-					{
-						xfree(tmp);
-						tmp = 0;
-					}
-					fclose(fd);
-				}		/* end: if (indirect) */
-				else /* if not indirect */
-				/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-				{
-					long filelen;
-					long filepos = ftell(id);
-					long tokenpos;
-					long starttokenpos;
+		/*
+		 * count, how many lines stands befor the token
+		 * line.
+		 */
+		while (ftell (fd) < tokenpos) {
+		  int chr = fgetc (fd);
+		  if (chr == '\n')
+		    aftersearch++;
+		  else if (chr == EOF)
+		    break;
+		}
+		/*
+		 * the number ofline where a token is found, is
+		 * now in the variable `aftersearch'
+		 */
+		if (aftersearch > 1)
+		  aftersearch--;
+		else
+		  aftersearch = 1;
+	      }			/* end: if (indirect entry was found) */
+	      if (aftersearch) {	/* if something was found */
+		if (tmp) {	/* free tmp buffer */
+		  xfree (tmp);
+		  tmp = 0;
+		}
+		break;
+	      }
+	    }			/* end: if (tokenpos) */
+	  }			/* end: indirect file loop */
+	  if (tmp) {		/* free tmp buffer */
+	    xfree (tmp);
+	    tmp = 0;
+	  }
+	  fclose (fd);
+	} /* end: if (indirect) */
+	else {			/* if not indirect */
 
-					fseek(id, 0, SEEK_END);	/* calculate filelength */
-					filelen = ftell(id);
+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+	  long filelen;
+	  long filepos = ftell (id);
+	  long tokenpos;
+	  long starttokenpos;
 
-					/* seek at the start of search area. */
-					fseek(id, fileoffset, SEEK_SET);
+	  fseek (id, 0, SEEK_END);	/* calculate filelength */
+	  filelen = ftell (id);
 
-					/* remember the number of skipped bytes.*/
-					starttokenpos = ftell(id);
+	  /* seek at the start of search area. */
+	  fseek (id, fileoffset, SEEK_SET);
 
-					/* read data */
-					tmp = (char*)xmalloc(filelen - starttokenpos + 10);
-					fread(tmp, 1, filelen - starttokenpos, id);
-					tmp[filelen - starttokenpos + 1] = 0;
+	  /* remember the number of skipped bytes. */
+	  starttokenpos = ftell (id);
 
-					/* search */
-					tokenpos = regexp_search(token, tmp);
+	  /* read data */
+	  tmp = (char *) xmalloc (filelen - starttokenpos + 10);
+	  fread (tmp, 1, filelen - starttokenpos, id);
+	  tmp[filelen - starttokenpos + 1] = 0;
 
-					if (tokenpos != -1)	/* if we've found something */
-					{
-						/*
-						 * add offset of the start of search area to this token
-						 * position.
-						 */
-						tokenpos += starttokenpos;
-						{		/* local scope for tmpvar, matched */
-							int tmpvar = 0, matched = 0;
-							tag_table[0].offset = 0;
-							for (i = TagTableEntries; i >= 1; i--)
-							{
-								if ((tag_table[i].offset > tag_table[tmpvar].offset) &&
-										(tag_table[i].offset <= tokenpos))
-								{
-									return_value = i;
-									tmpvar = i;
-									matched = 1;
-								}
-							}
-						}
-						/*
-						 * this means, that we've found our entry, and we're
-						 * one position too far with the `i' counter.
-						 */
-						if (return_value != -1)
-						{
-							fseek(id, tag_table[return_value].offset, SEEK_SET);
-							/* seek to the node, which holds found line */
-							while (fgetc(id) != INFO_TAG);
-							fgetc(id);	/* skip newline */
+	  /* search */
+	  tokenpos = regexp_search (token, tmp);
 
-							aftersearch = 1;
-							/* count lines in found node, until found line is
-							 * met. */
-							while (ftell(id) < tokenpos)
-							{
-								int chr = fgetc(id);
-								if (chr == '\n')
-									aftersearch++;
-								else if (chr == EOF)
-									break;
-							}
-							if (aftersearch > 1)
-								aftersearch--;
-							else
-								aftersearch = 1;
-							fseek(id, filepos, SEEK_SET);	/* seek to old
-															 * filepos. */
-						}
-					}		/* end: if (tokenpos) <--> token found */
-					if (tmp)	/* free tmp buffer */
-					{
-						xfree(tmp);
-						tmp = 0;
-					}
-				}		/* end: if (!indirect) */
+	  if (tokenpos != -1) {	/* if we've found something */
+	    /*
+	     * add offset of the start of search area to this token
+	     * position.
+	     */
+	    tokenpos += starttokenpos;
+	    {			/* local scope for tmpvar, matched */
+	      int tmpvar = 0, matched = 0;
+	      tag_table[0].offset = 0;
+	      for (i = TagTableEntries; i >= 1; i--) {
+		if ((tag_table[i].offset > tag_table[tmpvar].offset) &&
+		    (tag_table[i].offset <= tokenpos)) {
+		  return_value = i;
+		  tmpvar = i;
+		  matched = 1;
+		}
+	      }
+	    }
+	    /*
+	     * this means, that we've found our entry, and we're
+	     * one position too far with the `i' counter.
+	     */
+	    if (return_value != -1) {
+	      fseek (id, tag_table[return_value].offset, SEEK_SET);
+	      /* seek to the node, which holds found line */
+	      while (fgetc (id) != INFO_TAG);
+	      fgetc (id);	/* skip newline */
+
+	      aftersearch = 1;
+	      /* count lines in found node, until found line is
+	       * met. */
+	      while (ftell (id) < tokenpos) {
+		int chr = fgetc (id);
+		if (chr == '\n')
+		  aftersearch++;
+		else if (chr == EOF)
+		  break;
+	      }
+	      if (aftersearch > 1)
+		aftersearch--;
+	      else
+		aftersearch = 1;
+	      fseek (id, filepos, SEEK_SET);	/* seek to old
+						 * filepos. */
+	    }
+	  }			/* end: if (tokenpos) <--> token found */
+	  if (tmp) {		/* free tmp buffer */
+	    xfree (tmp);
+	    tmp = 0;
+	  }
+	}			/* end: if (!indirect) */
 				/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-				xfree(token);
-				token = 0;
+	xfree (token);
+	token = 0;
 
-				if (!aftersearch)
-				{
-					attrset(bottomline);
-					mvaddstr(maxy - 1, 0, _("Search string not found..."));
-					statusline = LOCKED;
-				}
+	if (!aftersearch) {
+	  attrset (bottomline);
+	  mvaddstr (maxy - 1, 0, _("Search string not found..."));
+	  statusline = LOCKED;
+	}
 
-				if (!aftersearch)
-					aftersearch = tmpaftersearch;
+	if (!aftersearch)
+	  aftersearch = tmpaftersearch;
 
-				if (return_value != -1)
-				{
-					infohistory.pos[infohistory.length] = pos;
-					infohistory.cursor[infohistory.length] = cursor;
-					infohistory.menu[infohistory.length] = infomenu;
-					rval.node = (char*)xmalloc(strlen(tag_table[return_value].nodename) + 1);
-					strcpy(rval.node, tag_table[return_value].nodename);
-					rval.file = (char*)xmalloc(1);
-					rval.file[0] = 0;
-					return rval;
-				}
-			}			/* end: if key_totalsearch */
+	if (return_value != -1) {
+	  infohistory.pos[infohistory.length] = pos;
+	  infohistory.cursor[infohistory.length] = cursor;
+	  infohistory.menu[infohistory.length] = infomenu;
+	  rval.node =
+	    (char *) xmalloc (strlen (tag_table[return_value].nodename) + 1);
+	  strcpy (rval.node, tag_table[return_value].nodename);
+	  rval.file = (char *) xmalloc (1);
+	  rval.file[0] = 0;
+	  return rval;
+	}
+      }
+      /* end: if key_totalsearch */
+ /*==========================================================================*/
+      if ((key == keys.search_1) ||	/* search in current node */
+	  (key == keys.search_2)) {
+	int success = 0;
+	move (maxy - 1, 0);
+	attrset (bottomline);
+	echo ();
+	curs_set (1);
+	if (!searchagain.search) {	/* searchagain handler. see totalsearch */
+	  token = getstring (_("Enter regexp: "));
+	  strcpy (searchagain.lastsearch, token);
+	  searchagain.type = key;
+	} else {
+	  token = (char *) xmalloc (strlen (searchagain.lastsearch) + 1);
+	  strcpy (token, searchagain.lastsearch);
+	  searchagain.search = 0;
+	}			/* end of searchagain handler */
+	if (strlen (token) == 0) {
+	  xfree (token);
+	  goto skip_search;
+	}
+	curs_set (0);
+	noecho ();
+	attrset (normal);
+	/* compile the read token */
+	if (pinfo_re_comp (token) != 0) {
+	  /* print error message */
+	  attrset (bottomline);
+	  mymvhline (maxy - 1, 0, ' ', maxx);
+	  move (maxy - 1, 0);
+	  printw (_("Invalid regular expression;"));
+	  printw (" ");
+	  printw (_("Press any key to continue..."));
+	  getch ();
+	  goto skip_search;
+
+	}
+	/* scan for the token in the following lines.  */
+	for (i = pos + 1; i < Lines; i++) {
+	  tmp =
+	    (char *) xmalloc (strlen (Message[i]) + strlen (Message[i + 1]) +
+			      2);
+	  /*
+	   * glue two following lines into one -- to find matches
+	   * split up into two lines.
+	   */
+	  strcpy (tmp, Message[i]);
+	  strcat (tmp, Message[i + 1]);
+	  if (pinfo_re_exec (tmp)) {	/* execute the search command *//* if found, enter here */
+	    success = 1;
+	    /* if token was found in the second line, make pos=i+1.  */
+	    if (pinfo_re_exec (Message[i + 1]))
+	      pos = i + 1;
+	    else		/* othwerwise, pos=i. This happens when we havesplit expression. */
+	      pos = i;
+	    xfree (tmp);	/* free tmp buffer */
+	    tmp = 0;
+	    aftersearch = 1;
+	    break;
+	  } else {		/* nothing found */
+
+	    xfree (tmp);	/* free tmp buffer */
+	    tmp = 0;
+	  }
+	}
+	if (!success) {
+	  attrset (bottomline);
+	  mvaddstr (maxy - 1, 0, _("Search string not found..."));
+	  statusline = LOCKED;
+	}
+	xfree (token);		/* free user's search token */
+	token = 0;
+	rescan_cursor ();	/* rescan cursor position in the new place */
+      }
+    skip_search:
 			/*==========================================================================*/
-			if ((key == keys.search_1) ||		/* search in current node */
-					(key == keys.search_2))
-			{
-				int success = 0;
-				move(maxy - 1, 0);
-				attrset(bottomline);
-				echo();
-				curs_set(1);
-				if (!searchagain.search)	/* searchagain handler. see totalsearch */
-				{
-					token = getstring(_("Enter regexp: "));
-					strcpy(searchagain.lastsearch, token);
-					searchagain.type = key;
-				}
-				else
-				{
-					token = (char*)xmalloc(strlen(searchagain.lastsearch) + 1);
-					strcpy(token, searchagain.lastsearch);
-					searchagain.search = 0;
-				}		/* end of searchagain handler */
-				if (strlen(token) == 0)
-				{
-					xfree(token);
-					goto skip_search;
-				}
-				curs_set(0);
-				noecho();
-				attrset(normal);
-				/* compile the read token */
-				if (pinfo_re_comp(token) != 0)
-				{
-					/* print error message */
-					attrset(bottomline);
-					mymvhline(maxy - 1, 0, ' ', maxx);
-					move(maxy - 1, 0);
-					printw(_("Invalid regular expression;"));
-					printw(" ");
-					printw(_("Press any key to continue..."));
-					getch();
-					goto skip_search;
-					
-				}
-				/* scan for the token in the following lines.  */
-				for (i = pos + 1; i < Lines; i++)
-				{
-					tmp = (char*)xmalloc(strlen(Message[i]) + strlen(Message[i + 1]) + 2);
-					/*
-					 * glue two following lines into one -- to find matches
-					 * split up into two lines.
-					 */
-					strcpy(tmp, Message[i]);
-					strcat(tmp, Message[i + 1]);
-					if (pinfo_re_exec(tmp))	/* execute the search command */
-					{		/* if found, enter here */
-						success = 1;
-						/* if token was found in the second line, make pos=i+1.  */
-						if (pinfo_re_exec(Message[i + 1]))
-							pos = i + 1;
-						else /* othwerwise, pos=i. This happens when we havesplit expression. */
-							pos = i;
-						xfree(tmp);	/* free tmp buffer */
-						tmp = 0;
-						aftersearch = 1;
-						break;
-					}
-					else /* nothing found */
-					{
-						xfree(tmp);	/* free tmp buffer */
-						tmp = 0;
-					}
-				}
-				if (!success)
-				{
-					attrset(bottomline);
-					mvaddstr(maxy - 1, 0, _("Search string not found..."));
-					statusline = LOCKED;
-				}
-				xfree(token);	/* free user's search token */
-				token = 0;
-				rescan_cursor();	/* rescan cursor position in the new place */
-			}
-skip_search:
+      if ((key == keys.search_again_1) ||	/* search again */
+	  (key == keys.search_again_2)) {
+	if (searchagain.type != 0) {	/* if a search was made before */
+	  searchagain.search = 1;	/* mark, that search routines should *
+					 * use the searchagain token value   */
+	  ungetch (searchagain.type);	/* ungetch the proper *
+					 * search key         */
+	}
+      }
 			/*==========================================================================*/
-			if ((key == keys.search_again_1) ||	/* search again */
-					(key == keys.search_again_2))
-			{
-				if (searchagain.type != 0)	/* if a search was made before */
-				{
-					searchagain.search = 1;	/* mark, that search routines should *
-											 * use the searchagain token value   */
-					ungetch(searchagain.type);	/* ungetch the proper *
-												 * search key         */
-				}
-			}
-			/*==========================================================================*/
 
-			if ((key == keys.goto_1) ||	/* goto node */
-					(key == keys.goto_2))
-			{
-				return_value = -1;
-				move(maxy - 1, 0);
-				attrset(bottomline);
-				curs_set(1);
-				token = getstring(_("Enter node name: "));	/* read user's wish */
-				curs_set(0);
-				noecho();
-				attrset(normal);
-				for (i = 1; i <= TagTableEntries; i++)
-				{
-					/* if the name was found in the tag table */
-					if (strcmp(token, tag_table[i].nodename) == 0)
-					{
-						return_value = i;
-						break;
-					}
-				}
-				if (return_value != -1)	/* if the name was in tag table */
-				{
-					xfree(token);
-					token = 0;
-					infohistory.pos[infohistory.length] = pos;
-					infohistory.cursor[infohistory.length] = cursor;
-					infohistory.menu[infohistory.length] = infomenu;
-					rval.node = (char*)xmalloc(strlen(tag_table[return_value].nodename) + 1);
-					strcpy(rval.node, tag_table[return_value].nodename);
-					rval.file = (char*)xmalloc(1);
-					rval.file[0] = 0;
-					aftersearch = 0;
-					return rval;
-				}
-				else
-					/* if the name wasn't in tag table */
-				{
-					/*
-					 * scan for filename: filenames may be specified in format:
-					 * (file)node
-					 */
-					char *gotostartptr = strchr(token, '(');
-					if (gotostartptr)	/* if there was a `(' */
-					{
-						char *gotoendptr = strchr(token, ')');	/* search for `)' */
-						/* if they're in the right order...  */
-						if (gotoendptr > gotostartptr)
-						{
-							rval.file = (char*)xmalloc(gotoendptr - gotostartptr + 1);
-							strncpy(rval.file, gotostartptr + 1, gotoendptr - gotostartptr - 1);
-							rval.file[gotoendptr - gotostartptr - 1] = 0;
-							gotoendptr++;
-							while (gotoendptr)	/* skip whitespaces until nodename */
-							{
-								if (*gotoendptr != ' ')
-									break;
-								gotoendptr++;
-							}	/* skip spaces */
-							rval.node = (char*)xmalloc(strlen(gotoendptr) + 1);
-							strcpy(rval.node, gotoendptr);
-							xfree(token);
-							token = 0;
-							aftersearch = 0;
-							return rval;
-						}
-					}
-					/* handle the `file.info' format of crossinfo goto. */
-					else if (strstr(token, ".info"))
-					{
-						rval.file = (char*)xmalloc(strlen(token) + 1);
-						strcpy(rval.file, token);
-						xfree(token);
-						token = 0;
-						rval.node = (char*)xmalloc(5);
-						strcpy(rval.node, "");
-						aftersearch = 0;
-						return rval;
-					}
-					else /* node not found */
-					{
-						attrset(bottomline);
-						mymvhline(maxy - 1, 0, ' ', maxx);
-						move(maxy - 1, 0);
-						printw(_("Node %s not found"), token);
-						attrset(normal);
-						move(0, 0);
-					}
-				}
-				statusline = LOCKED;
-				xfree(token);
-				token = 0;
-			}
+      if ((key == keys.goto_1) ||	/* goto node */
+	  (key == keys.goto_2)) {
+	return_value = -1;
+	move (maxy - 1, 0);
+	attrset (bottomline);
+	curs_set (1);
+	token = getstring (_("Enter node name: "));	/* read user's wish */
+	curs_set (0);
+	noecho ();
+	attrset (normal);
+	for (i = 1; i <= TagTableEntries; i++) {
+	  /* if the name was found in the tag table */
+	  if (strcmp (token, tag_table[i].nodename) == 0) {
+	    return_value = i;
+	    break;
+	  }
+	}
+	if (return_value != -1) {	/* if the name was in tag table */
+	  xfree (token);
+	  token = 0;
+	  infohistory.pos[infohistory.length] = pos;
+	  infohistory.cursor[infohistory.length] = cursor;
+	  infohistory.menu[infohistory.length] = infomenu;
+	  rval.node =
+	    (char *) xmalloc (strlen (tag_table[return_value].nodename) + 1);
+	  strcpy (rval.node, tag_table[return_value].nodename);
+	  rval.file = (char *) xmalloc (1);
+	  rval.file[0] = 0;
+	  aftersearch = 0;
+	  return rval;
+	} else
+	  /* if the name wasn't in tag table */
+	{
+	  /*
+	   * scan for filename: filenames may be specified in format:
+	   * (file)node
+	   */
+	  char *gotostartptr = strchr (token, '(');
+	  if (gotostartptr) {	/* if there was a `(' */
+	    char *gotoendptr = strchr (token, ')');	/* search for `)' */
+	    /* if they're in the right order...  */
+	    if (gotoendptr > gotostartptr) {
+	      rval.file = (char *) xmalloc (gotoendptr - gotostartptr + 1);
+	      strncpy (rval.file, gotostartptr + 1,
+		       gotoendptr - gotostartptr - 1);
+	      rval.file[gotoendptr - gotostartptr - 1] = 0;
+	      gotoendptr++;
+	      while (gotoendptr) {	/* skip whitespaces until nodename */
+		if (*gotoendptr != ' ')
+		  break;
+		gotoendptr++;
+	      }			/* skip spaces */
+	      rval.node = (char *) xmalloc (strlen (gotoendptr) + 1);
+	      strcpy (rval.node, gotoendptr);
+	      xfree (token);
+	      token = 0;
+	      aftersearch = 0;
+	      return rval;
+	    }
+	  }
+	  /* handle the `file.info' format of crossinfo goto. */
+	  else if (strstr (token, ".info")) {
+	    rval.file = (char *) xmalloc (strlen (token) + 1);
+	    strcpy (rval.file, token);
+	    xfree (token);
+	    token = 0;
+	    rval.node = (char *) xmalloc (5);
+	    strcpy (rval.node, "");
+	    aftersearch = 0;
+	    return rval;
+	  } else {		/* node not found */
+
+	    attrset (bottomline);
+	    mymvhline (maxy - 1, 0, ' ', maxx);
+	    move (maxy - 1, 0);
+	    printw (_("Node %s not found"), token);
+	    attrset (normal);
+	    move (0, 0);
+	  }
+	}
+	statusline = LOCKED;
+	xfree (token);
+	token = 0;
+      }
 			/*==========================================================================*/
-			if ((key == keys.prevnode_1) ||	/* goto previous node */
-					(key == keys.prevnode_2))
-			{
-				token = (char*)xmalloc(strlen(Type));
-				getprevnode(Type, token);
-				return_value = gettagtablepos(token);
-				xfree(token);
-				token = 0;
-				if (return_value != -1)
-				{
-					infohistory.pos[infohistory.length] = pos;
-					infohistory.cursor[infohistory.length] = cursor;
-					infohistory.menu[infohistory.length] = infomenu;
-					rval.node = (char*)xmalloc(strlen(tag_table[return_value].nodename) + 1);
-					strcpy(rval.node, tag_table[return_value].nodename);
-					rval.file = (char*)xmalloc(1);
-					rval.file[0] = 0;
-					aftersearch = 0;
-					return rval;
-				}
-			}
+      if ((key == keys.prevnode_1) ||	/* goto previous node */
+	  (key == keys.prevnode_2)) {
+	token = (char *) xmalloc (strlen (Type));
+	getprevnode (Type, token);
+	return_value = gettagtablepos (token);
+	xfree (token);
+	token = 0;
+	if (return_value != -1) {
+	  infohistory.pos[infohistory.length] = pos;
+	  infohistory.cursor[infohistory.length] = cursor;
+	  infohistory.menu[infohistory.length] = infomenu;
+	  rval.node =
+	    (char *) xmalloc (strlen (tag_table[return_value].nodename) + 1);
+	  strcpy (rval.node, tag_table[return_value].nodename);
+	  rval.file = (char *) xmalloc (1);
+	  rval.file[0] = 0;
+	  aftersearch = 0;
+	  return rval;
+	}
+      }
 			/*==========================================================================*/
-			if ((key == keys.nextnode_1) ||	/* goto next node */
-					(key == keys.nextnode_2))
-			{
-				token = (char*)xmalloc(strlen(Type));
-				getnextnode(Type, token);
-				return_value = gettagtablepos(token);
-				xfree(token);
-				token = 0;
-				if (return_value != -1)
-				{
-					infohistory.pos[infohistory.length] = pos;
-					infohistory.cursor[infohistory.length] = cursor;
-					infohistory.menu[infohistory.length] = infomenu;
-					rval.node = (char*)xmalloc(strlen(tag_table[return_value].nodename) + 1);
-					strcpy(rval.node, tag_table[return_value].nodename);
-					rval.file = (char*)xmalloc(1);
-					rval.file[0] = 0;
-					aftersearch = 0;
-					return rval;
-				}
-			}
+      if ((key == keys.nextnode_1) ||	/* goto next node */
+	  (key == keys.nextnode_2)) {
+	token = (char *) xmalloc (strlen (Type));
+	getnextnode (Type, token);
+	return_value = gettagtablepos (token);
+	xfree (token);
+	token = 0;
+	if (return_value != -1) {
+	  infohistory.pos[infohistory.length] = pos;
+	  infohistory.cursor[infohistory.length] = cursor;
+	  infohistory.menu[infohistory.length] = infomenu;
+	  rval.node =
+	    (char *) xmalloc (strlen (tag_table[return_value].nodename) + 1);
+	  strcpy (rval.node, tag_table[return_value].nodename);
+	  rval.file = (char *) xmalloc (1);
+	  rval.file[0] = 0;
+	  aftersearch = 0;
+	  return rval;
+	}
+      }
 			/*==========================================================================*/
-			if ((key == keys.upnode_1) ||		/* goto up node */
-					(key == keys.upnode_2))
-			{
-				token = (char*)xmalloc(strlen(Type));
-				getupnode(Type, token);
-				if (strncmp(token, "(dir)", 5) == 0)
-				{
-					ungetch(keys.dirpage_1);
-				}
-				return_value = gettagtablepos(token);
-				xfree(token);
-				token = 0;
-				if (return_value != -1)
-				{
-					if (toggled_by_menu == KEEP_HISTORY)
-					{
-						infohistory.pos[infohistory.length] = pos;
-						infohistory.cursor[infohistory.length] = cursor;
-						infohistory.menu[infohistory.length] = infomenu;
-					}
-					rval.node = (char*)xmalloc(strlen(tag_table[return_value].nodename) + 1);
-					strcpy(rval.node, tag_table[return_value].nodename);
-					rval.file = (char*)xmalloc(1);
-					rval.file[0] = 0;
-					aftersearch = 0;
-					return rval;
-				}
-			}
+      if ((key == keys.upnode_1) ||	/* goto up node */
+	  (key == keys.upnode_2)) {
+	token = (char *) xmalloc (strlen (Type));
+	getupnode (Type, token);
+	if (strncmp (token, "(dir)", 5) == 0) {
+	  ungetch (keys.dirpage_1);
+	}
+	return_value = gettagtablepos (token);
+	xfree (token);
+	token = 0;
+	if (return_value != -1) {
+	  if (toggled_by_menu == KEEP_HISTORY) {
+	    infohistory.pos[infohistory.length] = pos;
+	    infohistory.cursor[infohistory.length] = cursor;
+	    infohistory.menu[infohistory.length] = infomenu;
+	  }
+	  rval.node =
+	    (char *) xmalloc (strlen (tag_table[return_value].nodename) + 1);
+	  strcpy (rval.node, tag_table[return_value].nodename);
+	  rval.file = (char *) xmalloc (1);
+	  rval.file[0] = 0;
+	  aftersearch = 0;
+	  return rval;
+	}
+      }
 			/*==========================================================================*/
-			if ((key == keys.twoup_1) || (key == keys.twoup_2))
-			{
-				ungetch(keys.up_1);
-				ungetch(keys.up_1);
-			}
+      if ((key == keys.twoup_1) || (key == keys.twoup_2)) {
+	ungetch (keys.up_1);
+	ungetch (keys.up_1);
+      }
 			/*==========================================================================*/
-			if ((key == keys.up_1) ||
-					(key == keys.up_2))
-			{
-				cursorchanged = 0;
-				if (cursor != -1)	/* if we must handle cursor... */
-				{
-					if ((cursor > 0) &&(hyperobjectcount))	/* if we really must handle it ;) */
-						/*
-						 * look if there's a cursor(link) pos available above,
-						 * and if it is visible now.
-						 */
-						for (i = cursor - 1; i >= 0; i--)
-						{
-							if ((hyperobjects[i].line >= pos) &&
-									(hyperobjects[i].line < pos +(maxy - 1)))
-							{
-								/* don't play with `highlight' objects */
-								if (hyperobjects[i].type < HIGHLIGHT)
-								{
-									cursor = i;
-									cursorchanged = 1;
-									break;
-								}
-							}
-						}
-				}
-				if (!cursorchanged)	/* if the cursor wasn't changed */
-				{
-					if (pos > 2)	/* lower the nodepos */
-						pos--;
-					/* and scan for a hyperlink in the new line */
-					for (i = 0; i < hyperobjectcount; i++)
-					{
-						if (hyperobjects[i].line == pos)
-						{
-							if (hyperobjects[i].type < HIGHLIGHT)
-							{
-								cursor = i;
-								break;
-							}
-						}
-					}
-				}
-			}
+      if ((key == keys.up_1) || (key == keys.up_2)) {
+	cursorchanged = 0;
+	if (cursor != -1) {	/* if we must handle cursor... */
+	  if ((cursor > 0) && (hyperobjectcount))
+	    /* if we really must handle it ;) */
+	    /*
+	     * look if there's a cursor(link) pos available above,
+	     * and if it is visible now.
+	     */
+	    for (i = cursor - 1; i >= 0; i--) {
+	      if ((hyperobjects[i].line >= pos) &&
+		  (hyperobjects[i].line < pos + (maxy - 1))) {
+		/* don't play with `highlight' objects */
+		if (hyperobjects[i].type < HIGHLIGHT) {
+		  cursor = i;
+		  cursorchanged = 1;
+		  break;
+		}
+	      }
+	    }
+	}
+	if (!cursorchanged) {	/* if the cursor wasn't changed */
+	  if (pos > 2)		/* lower the nodepos */
+	    pos--;
+	  /* and scan for a hyperlink in the new line */
+	  for (i = 0; i < hyperobjectcount; i++) {
+	    if (hyperobjects[i].line == pos) {
+	      if (hyperobjects[i].type < HIGHLIGHT) {
+		cursor = i;
+		break;
+	      }
+	    }
+	  }
+	}
+      }
 			/*==========================================================================*/
-			if ((key == keys.end_1) ||
-					(key == keys.end_2))
-			{
-				pos = Lines -(maxy - 2);
-				if (pos < 1)
-					pos = 1;
-				cursor = hyperobjectcount - 1;
-			}
+      if ((key == keys.end_1) || (key == keys.end_2)) {
+	pos = Lines - (maxy - 2);
+	if (pos < 1)
+	  pos = 1;
+	cursor = hyperobjectcount - 1;
+      }
 			/*==========================================================================*/
-			if ((key == keys.pgdn_1) ||
-					(key == keys.pgdn_2))
-			{
-				if (pos +(maxy - 2) < Lines -(maxy - 2))
-				{
-					pos +=(maxy - 2);
-					rescan_cursor();
-				}
-				else if (Lines -(maxy - 2) >= 1)
-				{
-					pos = Lines -(maxy - 2);
-					cursor = hyperobjectcount - 1;
-				}
-				else
-				{
-					pos = 1;
-					cursor = hyperobjectcount - 1;
-				}
-			}
+      if ((key == keys.pgdn_1) || (key == keys.pgdn_2)) {
+	if (pos + (maxy - 2) < Lines - (maxy - 2)) {
+	  pos += (maxy - 2);
+	  rescan_cursor ();
+	} else if (Lines - (maxy - 2) >= 1) {
+	  pos = Lines - (maxy - 2);
+	  cursor = hyperobjectcount - 1;
+	} else {
+	  pos = 1;
+	  cursor = hyperobjectcount - 1;
+	}
+      }
 			/*==========================================================================*/
-			if ((key == keys.home_1) ||
-					(key == keys.home_2))
-			{
-				pos = 1;
-				rescan_cursor();
-			}
+      if ((key == keys.home_1) || (key == keys.home_2)) {
+	pos = 1;
+	rescan_cursor ();
+      }
 			/*==========================================================================*/
-			if ((key == keys.pgup_1) |
-					(key == keys.pgup_2))
-			{
-				if (pos >(maxy - 2))
-					pos -=(maxy - 2);
-				else
-					pos = 1;
-				rescan_cursor();
-			}
+      if ((key == keys.pgup_1) | (key == keys.pgup_2)) {
+	if (pos > (maxy - 2))
+	  pos -= (maxy - 2);
+	else
+	  pos = 1;
+	rescan_cursor ();
+      }
 			/*==========================================================================*/
-			if ((key == keys.pgup_auto_1) ||
-					(key == keys.pgup_auto_2))
-			{
-				if (pos == 1)
-					ungetch(keys.upnode_1);
-			}
+      if ((key == keys.pgup_auto_1) || (key == keys.pgup_auto_2)) {
+	if (pos == 1)
+	  ungetch (keys.upnode_1);
+      }
 			/*==========================================================================*/
-			if ((key == keys.twodown_1) ||
-					(key == keys.twodown_2))	/* top+bottom line \|/ */
-			{
-				ungetch(keys.down_1);
-				ungetch(keys.down_1);
-			}
+      if ((key == keys.twodown_1) || (key == keys.twodown_2)) {	/* top+bottom line \|/ */
+	ungetch (keys.down_1);
+	ungetch (keys.down_1);
+      }
 			/*==========================================================================*/
-			if ((key == keys.down_1) ||
-					(key == keys.down_2))	/* top+bottom line \|/ */
-			{
-				cursorchanged = 0;	/* works similar to keys.up */
-				if (cursor < hyperobjectcount)
-					for (i = cursor + 1; i < hyperobjectcount; i++)
-					{
-						if ((hyperobjects[i].line >= pos) &&
-								(hyperobjects[i].line < pos +(maxy - 2)))
-						{
-							if (hyperobjects[i].type < HIGHLIGHT)
-							{
-								cursor = i;
-								cursorchanged = 1;
-								break;
-							}
-						}
-					}
-				if (!cursorchanged)
-				{
-					if (pos <= Lines -(maxy - 2))
-						pos++;
-					for (i = cursor + 1; i < hyperobjectcount; i++)
-					{
-						if ((hyperobjects[i].line >= pos) &&
-								(hyperobjects[i].line < pos +(maxy - 2)))
-						{
-							if (hyperobjects[i].type < HIGHLIGHT)
-							{
-								cursor = i;
-								cursorchanged = 1;
-								break;
-							}
-						}
-					}
-				}
-			}
+      if ((key == keys.down_1) || (key == keys.down_2)) {	/* top+bottom line \|/ */
+	cursorchanged = 0;	/* works similar to keys.up */
+	if (cursor < hyperobjectcount)
+	  for (i = cursor + 1; i < hyperobjectcount; i++) {
+	    if ((hyperobjects[i].line >= pos) &&
+		(hyperobjects[i].line < pos + (maxy - 2))) {
+	      if (hyperobjects[i].type < HIGHLIGHT) {
+		cursor = i;
+		cursorchanged = 1;
+		break;
+	      }
+	    }
+	  }
+	if (!cursorchanged) {
+	  if (pos <= Lines - (maxy - 2))
+	    pos++;
+	  for (i = cursor + 1; i < hyperobjectcount; i++) {
+	    if ((hyperobjects[i].line >= pos) &&
+		(hyperobjects[i].line < pos + (maxy - 2))) {
+	      if (hyperobjects[i].type < HIGHLIGHT) {
+		cursor = i;
+		cursorchanged = 1;
+		break;
+	      }
+	    }
+	  }
+	}
+      }
 			/*==========================================================================*/
-			if ((key == keys.top_1) ||
-					(key == keys.top_2))
-			{
-				infohistory.pos[infohistory.length] = pos;
-				infohistory.cursor[infohistory.length] = cursor;
-				infohistory.menu[infohistory.length] = infomenu;
-				rval.node = (char*)xmalloc(strlen(FirstNodeName) + 1);
-				strcpy(rval.node, FirstNodeName);
-				rval.file = (char*)xmalloc(1);
-				rval.file[0] = 0;
-				aftersearch = 0;
-				return rval;
-			}
+      if ((key == keys.top_1) || (key == keys.top_2)) {
+	infohistory.pos[infohistory.length] = pos;
+	infohistory.cursor[infohistory.length] = cursor;
+	infohistory.menu[infohistory.length] = infomenu;
+	rval.node = (char *) xmalloc (strlen (FirstNodeName) + 1);
+	strcpy (rval.node, FirstNodeName);
+	rval.file = (char *) xmalloc (1);
+	rval.file[0] = 0;
+	aftersearch = 0;
+	return rval;
+      }
 			/*==========================================================================*/
-			if ((key == keys.back_1) ||
-					(key == keys.back_2))
-			{
-				if (infohistory.length > 1)
-				{
-					dellastinfohistory();	/* remove history entry for this node */
-					/* now we deal with the previous node history entry */
+      if ((key == keys.back_1) || (key == keys.back_2)) {
+	if (infohistory.length > 1) {
+	  dellastinfohistory ();	/* remove history entry for this node */
+	  /* now we deal with the previous node history entry */
 
-					rval.node = (char*)xmalloc(strlen(infohistory.node[infohistory.length]) + 1);
-					strcpy(rval.node, infohistory.node[infohistory.length]);
-					rval.file = (char*)xmalloc(strlen(infohistory.file[infohistory.length]) + 1);
-					strcpy(rval.file, infohistory.file[infohistory.length]);
+	  rval.node =
+	    (char *) xmalloc (strlen (infohistory.node[infohistory.length]) +
+			      1);
+	  strcpy (rval.node, infohistory.node[infohistory.length]);
+	  rval.file =
+	    (char *) xmalloc (strlen (infohistory.file[infohistory.length]) +
+			      1);
+	  strcpy (rval.file, infohistory.file[infohistory.length]);
 
-					npos = infohistory.pos[infohistory.length];
-					ncursor = infohistory.cursor[infohistory.length];
-					nmenu = infohistory.menu[infohistory.length];
-					dellastinfohistory();	/* remove history entry for previous node */
-					aftersearch = 0;
-					return rval;
-				}
-			}
+	  npos = infohistory.pos[infohistory.length];
+	  ncursor = infohistory.cursor[infohistory.length];
+	  nmenu = infohistory.menu[infohistory.length];
+	  dellastinfohistory ();	/* remove history entry for previous node */
+	  aftersearch = 0;
+	  return rval;
+	}
+      }
 			/*==========================================================================*/
-			if ((key == keys.followlink_1) ||
-					(key == keys.followlink_2))
-			{
-				infohistory.pos[infohistory.length] = pos;
-				infohistory.cursor[infohistory.length] = cursor;
-				infohistory.menu[infohistory.length] = infomenu;
-				if (!toggled_by_menu)
-					infohistory.menu[infohistory.length] = cursor;
-				if ((cursor >= 0) &&(cursor < hyperobjectcount))
-					if ((hyperobjects[cursor].line >= pos) &&
-							(hyperobjects[cursor].line < pos +(maxy - 2)) ||
-							(toggled_by_menu))
-					{
-						toggled_by_menu = 0;
-						if (hyperobjects[cursor].type < 4)	/* normal info link */
-						{
-							rval.node = (char*)xmalloc(strlen(hyperobjects[cursor].node) + 1);
-							strcpy(rval.node, hyperobjects[cursor].node);
-							rval.file = (char*)xmalloc(strlen(hyperobjects[cursor].file) + 1);
-							strcpy(rval.file, hyperobjects[cursor].file);
-							aftersearch = 0;
-							return rval;
-						}
-						else if (hyperobjects[cursor].type < HIGHLIGHT)	/* we deal with an url */
-						{
-							if (hyperobjects[cursor].type == 4)	/* http */
-							{
-								char *tempbuf = (char*)xmalloc(strlen(hyperobjects[cursor].node) + strlen(httpviewer) + 10);
-								strcpy(tempbuf, httpviewer);
-								strcat(tempbuf, " ");
-								strcat(tempbuf, hyperobjects[cursor].node);
-								myendwin();
-								system(tempbuf);
-								doupdate();
-								xfree(tempbuf);
-							}
-							else if (hyperobjects[cursor].type == 5)	/* ftp */
-							{
-								char *tempbuf = (char*)xmalloc(strlen(hyperobjects[cursor].node) + strlen(ftpviewer) + 10);
-								strcpy(tempbuf, ftpviewer);
-								strcat(tempbuf, " ");
-								strcat(tempbuf, hyperobjects[cursor].node);
-								myendwin();
-								system(tempbuf);
-								doupdate();
-								xfree(tempbuf);
-							}
-							else if (hyperobjects[cursor].type == 6)	/* mail */
-							{
-								char *tempbuf = (char*)xmalloc(strlen(hyperobjects[cursor].node) + strlen(maileditor) + 10);
-								strcpy(tempbuf, maileditor);
-								strcat(tempbuf, " ");
-								strcat(tempbuf, hyperobjects[cursor].node);
-								myendwin();
-								system("clear");
-								system(tempbuf);
-								doupdate();
-								xfree(tempbuf);
-							}
-						}
-					}
-			}
+      if ((key == keys.followlink_1) || (key == keys.followlink_2)) {
+	infohistory.pos[infohistory.length] = pos;
+	infohistory.cursor[infohistory.length] = cursor;
+	infohistory.menu[infohistory.length] = infomenu;
+	if (!toggled_by_menu)
+	  infohistory.menu[infohistory.length] = cursor;
+	if ((cursor >= 0) && (cursor < hyperobjectcount))
+	  if ((hyperobjects[cursor].line >= pos) &&
+	      (hyperobjects[cursor].line < pos + (maxy - 2)) ||
+	      (toggled_by_menu)) {
+	    toggled_by_menu = 0;
+	    if (hyperobjects[cursor].type < 4) {	/* normal info link */
+	      rval.node =
+		(char *) xmalloc (strlen (hyperobjects[cursor].node) + 1);
+	      strcpy (rval.node, hyperobjects[cursor].node);
+	      rval.file =
+		(char *) xmalloc (strlen (hyperobjects[cursor].file) + 1);
+	      strcpy (rval.file, hyperobjects[cursor].file);
+	      aftersearch = 0;
+	      return rval;
+	    } else if (hyperobjects[cursor].type < HIGHLIGHT) {	/* we deal with an url */
+	      if (hyperobjects[cursor].type == 4) {	/* http */
+		char *tempbuf =
+		  (char *) xmalloc (strlen (hyperobjects[cursor].node) +
+				    strlen (httpviewer) + 10);
+		strcpy (tempbuf, httpviewer);
+		strcat (tempbuf, " ");
+		strcat (tempbuf, hyperobjects[cursor].node);
+		myendwin ();
+		system (tempbuf);
+		doupdate ();
+		xfree (tempbuf);
+	      } else if (hyperobjects[cursor].type == 5) {	/* ftp */
+		char *tempbuf =
+		  (char *) xmalloc (strlen (hyperobjects[cursor].node) +
+				    strlen (ftpviewer) + 10);
+		strcpy (tempbuf, ftpviewer);
+		strcat (tempbuf, " ");
+		strcat (tempbuf, hyperobjects[cursor].node);
+		myendwin ();
+		system (tempbuf);
+		doupdate ();
+		xfree (tempbuf);
+	      } else if (hyperobjects[cursor].type == 6) {	/* mail */
+		char *tempbuf =
+		  (char *) xmalloc (strlen (hyperobjects[cursor].node) +
+				    strlen (maileditor) + 10);
+		strcpy (tempbuf, maileditor);
+		strcat (tempbuf, " ");
+		strcat (tempbuf, hyperobjects[cursor].node);
+		myendwin ();
+		system ("clear");
+		system (tempbuf);
+		doupdate ();
+		xfree (tempbuf);
+	      }
+	    }
+	  }
+      }
 			/*==========================================================================*/
-			if ((key == keys.left_1) ||(key == keys.left_2))
-			{
-				if (infocolumn>0) infocolumn--;
-				addtopline(Type,infocolumn);
-			}
+      if ((key == keys.left_1) || (key == keys.left_2)) {
+	if (infocolumn > 0)
+	  infocolumn--;
+	addtopline (Type, infocolumn);
+      }
 			/*==========================================================================*/
-			if ((key == keys.right_1) ||(key == keys.right_2))
-			{
-				infocolumn++;
-				addtopline(Type,infocolumn);
-			}
+      if ((key == keys.right_1) || (key == keys.right_2)) {
+	infocolumn++;
+	addtopline (Type, infocolumn);
+      }
 			/*==========================================================================*/
 			/**************************** end of keyboard handling **********************/
 			/******************************** mouse handler *****************************/
 #ifdef NCURSES_MOUSE_VERSION
-			if (key == KEY_MOUSE)
-			{
-				MEVENT mouse;
-				int done = 0;
-				getmouse(&mouse);
-				if (mouse.bstate == BUTTON1_CLICKED)
-				{
-					if ((mouse.y > 0) &&(mouse.y < maxy - 1))
-					{
-						for (i = cursor; i > 0; i--)
-						{
-							if (hyperobjects[i].line == mouse.y + pos - 1)
-							{
-								if (hyperobjects[i].col <= mouse.x - 1)
-								{
-									if (hyperobjects[i].col + strlen(hyperobjects[i].node) + strlen(hyperobjects[i].file) >= mouse.x - 1)
-									{
-										if (hyperobjects[i].type < HIGHLIGHT)
-										{
-											cursor = i;
-											done = 1;
-											break;
-										}
-									}
-								}
-							}
-						}
-						if (!done)
-							for (i = cursor; i < hyperobjectcount; i++)
-							{
-								if (hyperobjects[i].line == mouse.y + pos - 1)
-								{
-									if (hyperobjects[i].col <= mouse.x - 1)
-									{
-										if (hyperobjects[i].col + strlen(hyperobjects[i].node) + strlen(hyperobjects[i].file) >= mouse.x - 1)
-										{
-											if (hyperobjects[i].type < HIGHLIGHT)
-											{
-												cursor = i;
-												done = 1;
-												break;
-											}
-										}
-									}
-								}
-							}
-					}		/* end: if (mouse.y not on top/bottom line) */
-					else if (mouse.y == 0)
-						ungetch(keys.up_1);
-					else if (mouse.y == maxy - 1)
-						ungetch(keys.down_1);
-				}		/* end: button clicked */
-				if (mouse.bstate == BUTTON1_DOUBLE_CLICKED)
-				{
-					if ((mouse.y > 0) &&(mouse.y < maxy - 1))
-					{
-						for (i = cursor; i >= 0; i--)
-						{
-							if (hyperobjects[i].line == mouse.y + pos - 1)
-							{
-								if (hyperobjects[i].col <= mouse.x - 1)
-								{
-									if (hyperobjects[i].col + strlen(hyperobjects[i].node) + strlen(hyperobjects[i].file) >= mouse.x - 1)
-									{
-										if (hyperobjects[i].type < HIGHLIGHT)
-										{
-											cursor = i;
-											done = 1;
-											break;
-										}
-									}
-								}
-							}
-						}
-						if (!done)
-							for (i = cursor; i < hyperobjectcount; i++)
-							{
-								if (hyperobjects[i].line == mouse.y + pos - 1)
-								{
-									if (hyperobjects[i].col <= mouse.x - 1)
-									{
-										if (hyperobjects[i].col + strlen(hyperobjects[i].node) + strlen(hyperobjects[i].file) >= mouse.x - 1)
-										{
-											if (hyperobjects[i].type < HIGHLIGHT)
-											{
-												cursor = i;
-												done = 1;
-												break;
-											}
-										}
-									}
-								}
-							}
-						if (done)
-							ungetch(keys.followlink_1);
-					}		/* end: if (mouse.y not on top/bottom line) */
-					else if (mouse.y == 0)
-						ungetch(keys.pgup_1);
-					else if (mouse.y == maxy - 1)
-						ungetch(keys.pgdn_1);
-				}		/* end: button doubleclicked */
-			}
-#endif
-			/*****************************************************************************/
+      if (key == KEY_MOUSE) {
+	MEVENT mouse;
+	int done = 0;
+	getmouse (&mouse);
+	if (mouse.bstate == BUTTON1_CLICKED) {
+	  if ((mouse.y > 0) && (mouse.y < maxy - 1)) {
+	    for (i = cursor; i > 0; i--) {
+	      if (hyperobjects[i].line == mouse.y + pos - 1) {
+		if (hyperobjects[i].col <= mouse.x - 1) {
+		  if (hyperobjects[i].col + strlen (hyperobjects[i].node) +
+		      strlen (hyperobjects[i].file) >= mouse.x - 1) {
+		    if (hyperobjects[i].type < HIGHLIGHT) {
+		      cursor = i;
+		      done = 1;
+		      break;
+		    }
+		  }
 		}
-		if ((key == keys.quit_2) ||(key == keys.quit_1))
-		{
-			if (!ConfirmQuit)
-				break;
-			else
-			{
-				if (yesno(_("Are you sure to quit?"), QuitConfirmDefault))
-					break;
-			}
+	      }
+	    }
+	    if (!done)
+	      for (i = cursor; i < hyperobjectcount; i++) {
+		if (hyperobjects[i].line == mouse.y + pos - 1) {
+		  if (hyperobjects[i].col <= mouse.x - 1) {
+		    if (hyperobjects[i].col + strlen (hyperobjects[i].node) +
+			strlen (hyperobjects[i].file) >= mouse.x - 1) {
+		      if (hyperobjects[i].type < HIGHLIGHT) {
+			cursor = i;
+			done = 1;
+			break;
+		      }
+		    }
+		  }
 		}
-	}
-	aftersearch = 0;
-	return rval;
+	      }
+	  } /* end: if (mouse.y not on top/bottom line) */
+	  else if (mouse.y == 0)
+	    ungetch (keys.up_1);
+	  else if (mouse.y == maxy - 1)
+	    ungetch (keys.down_1);
+	}			/* end: button clicked */
+	if (mouse.bstate == BUTTON1_DOUBLE_CLICKED) {
+	  if ((mouse.y > 0) && (mouse.y < maxy - 1)) {
+	    for (i = cursor; i >= 0; i--) {
+	      if (hyperobjects[i].line == mouse.y + pos - 1) {
+		if (hyperobjects[i].col <= mouse.x - 1) {
+		  if (hyperobjects[i].col + strlen (hyperobjects[i].node) +
+		      strlen (hyperobjects[i].file) >= mouse.x - 1) {
+		    if (hyperobjects[i].type < HIGHLIGHT) {
+		      cursor = i;
+		      done = 1;
+		      break;
+		    }
+		  }
+		}
+	      }
+	    }
+	    if (!done)
+	      for (i = cursor; i < hyperobjectcount; i++) {
+		if (hyperobjects[i].line == mouse.y + pos - 1) {
+		  if (hyperobjects[i].col <= mouse.x - 1) {
+		    if (hyperobjects[i].col + strlen (hyperobjects[i].node) +
+			strlen (hyperobjects[i].file) >= mouse.x - 1) {
+		      if (hyperobjects[i].type < HIGHLIGHT) {
+			cursor = i;
+			done = 1;
+			break;
+		      }
+		    }
+		  }
+		}
+	      }
+	    if (done)
+	      ungetch (keys.followlink_1);
+	  } /* end: if (mouse.y not on top/bottom line) */
+	  else if (mouse.y == 0)
+	    ungetch (keys.pgup_1);
+	  else if (mouse.y == maxy - 1)
+	    ungetch (keys.pgdn_1);
+	}			/* end: button doubleclicked */
+      }
+#endif
+			/*****************************************************************************/
+    }
+    if ((key == keys.quit_2) || (key == keys.quit_1)) {
+      if (!ConfirmQuit)
+	break;
+      else {
+	if (yesno (_("Are you sure to quit?"), QuitConfirmDefault))
+	  break;
+      }
+    }
+  }
+  aftersearch = 0;
+  return rval;
 }
 
 void
-next_infomenu()
+next_infomenu ()
 {
-	int i;
-	if (hyperobjectcount == 0)
-	{
-		infomenu = -1;
-		return;
-	}
-	for (i = infomenu + 1; i < hyperobjectcount; i++)
-	{
-		if (hyperobjects[i].type <= 1)	/* menu item */
-		{
-			infomenu = i;
-			return;
-		}
-	}
-	infomenu = -1;		/* no menuitem left is found */
+  int i;
+  if (hyperobjectcount == 0) {
+    infomenu = -1;
+    return;
+  }
+  for (i = infomenu + 1; i < hyperobjectcount; i++) {
+    if (hyperobjects[i].type <= 1) {	/* menu item */
+      infomenu = i;
+      return;
+    }
+  }
+  infomenu = -1;		/* no menuitem left is found */
 }
 
 void
-rescan_cursor()
+rescan_cursor ()
 {
-	int i;
-	for (i = 0; i < hyperobjectcount; i++)
-	{
-		if ((hyperobjects[i].line >= pos) &&
-				(hyperobjects[i].line < pos +(maxy - 2)))
-		{
-			if (hyperobjects[i].type < HIGHLIGHT)
-			{
-				cursor = i;
-				break;
-			}
-		}
-	}
+  int i;
+  for (i = 0; i < hyperobjectcount; i++) {
+    if ((hyperobjects[i].line >= pos) &&
+	(hyperobjects[i].line < pos + (maxy - 2))) {
+      if (hyperobjects[i].type < HIGHLIGHT) {
+	cursor = i;
+	break;
+      }
+    }
+  }
 }
 
 int
-getnodeoffset(int tag_table_pos, int *Indstart)	/* count node offset in file */
-{
+getnodeoffset (int tag_table_pos, int *Indstart)
+{				/* count node offset in file */
 #define indirectstart	(*Indstart)
-	int i, fileoffset = 0;
-	if (indirect)
-	{
-		for (i = IndirectEntries; i >= 1; i--)
-		{
-			if (indirect[i].offset <= tag_table[tag_table_pos].offset)
-			{
-				fileoffset +=(tag_table[tag_table_pos].offset - indirect[i].offset + FirstNodeOffset);
-				indirectstart = i;
-				break;
-			}
-		}
-	}
-	else
-	{
-		fileoffset +=(tag_table[tag_table_pos].offset - 2);
-	}
-	return fileoffset;
+  int i, fileoffset = 0;
+  if (indirect) {
+    for (i = IndirectEntries; i >= 1; i--) {
+      if (indirect[i].offset <= tag_table[tag_table_pos].offset) {
+	fileoffset +=
+	  (tag_table[tag_table_pos].offset - indirect[i].offset +
+	   FirstNodeOffset);
+	indirectstart = i;
+	break;
+      }
+    }
+  } else {
+    fileoffset += (tag_table[tag_table_pos].offset - 2);
+  }
+  return fileoffset;
 #undef indirectstart
 }

Modified: pinfo/branches/cxx/src/mainfunction.h
===================================================================
--- pinfo/branches/cxx/src/mainfunction.h	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/mainfunction.h	2005-08-26 08:41:40 UTC (rev 41)
@@ -29,8 +29,8 @@
  */
 typedef struct
 {
-	char *node;		/* name of node */
-	char *file;		/* name of file, where the node is */
+  char *node;			/* name of node */
+  char *file;			/* name of file, where the node is */
 }
 WorkRVal;
 
@@ -47,5 +47,5 @@
  * tag_table_pos: position in tag table of the current node (needed for history)
  */
 WorkRVal work (char ***message, char **type, long *lines,
-		FILE * id, int tag_table_pos);
+	       FILE * id, int tag_table_pos);
 #endif

Modified: pinfo/branches/cxx/src/manual.cxx
===================================================================
--- pinfo/branches/cxx/src/manual.cxx	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/manual.cxx	2005-08-26 08:41:40 UTC (rev 41)
@@ -20,272 +20,260 @@
  ***************************************************************************/
 #include "common_includes.h"
 
-RCSID("$Id$")
-
+RCSID ("$Id$")
 #include <ctype.h>
 #include <sys/stat.h>
-
 #define HTTPSECTION 100
 #define FTPSECTION 101
 #define MAILSECTION 102
-
 /* check if a char is a hyphen character */
-int ishyphen(unsigned char ch);
+     int ishyphen (unsigned char ch);
 /* load manual */
-void loadmanual(FILE * id);
+     void loadmanual (FILE * id);
 /* handle keyboard */
-int manualwork();
-void rescan_selected();	/* scan for potential link to select on
-							   viewed manual page */
+     int manualwork ();
+     void rescan_selected ();	/* scan for potential link to select on
+				   viewed manual page */
 /* self explanatory */
-void showmanualscreen();
+     void showmanualscreen ();
 /* mvaddstr with bold/italic */
-void mvaddstr_manual(int y, int x, char *str);
+     void mvaddstr_manual (int y, int x, char *str);
 /* adds highlights to a painted screen */
-void add_highlights();
+     void add_highlights ();
 /* strips line from formatting characters */
-void strip_manual(char *buf);
+     void strip_manual (char *buf);
 /*
  * Initialize links in a line .  Links are entries of form reference(section),
  * and are stored in `manuallinks' var, described bellow.
  */
-void man_initializelinks(char *line, int carry);
-int is_in_manlinks(char *in, char *find);
+     void man_initializelinks (char *line, int carry);
+     int is_in_manlinks (char *in, char *find);
 
-void printmanual(char **Message, long Lines);
+     void printmanual (char **Message, long Lines);
 
 /* line by line stored manual */
-char **manual = 0;
+     char **manual = 0;
 /* number of lines in manual */
-int ManualLines = 0;
-int selected = -1;		/* number of selected link(offset in 'manuallinks',
-						   bellow) */
-int manualpos = 0;		/* number of the first line, which is painted on
-						   screen */
+     int ManualLines = 0;
+     int selected = -1;		/* number of selected link(offset in 'manuallinks',
+				   bellow) */
+     int manualpos = 0;		/* number of the first line, which is painted on
+				   screen */
 
-int manualcol = 0;		/* the first displayed column of manpage--
-						   for moving the screen left/right */
+     int manualcol = 0;		/* the first displayed column of manpage--
+				   for moving the screen left/right */
 
-int manual_aftersearch = 0;	/* this is set if man page is now after search
-							   operation */
-int manwidthChanged = 0;	/* this flag indicates whether the env variable
-							   $MANWIDTH was changed by pinfo */
+     int manual_aftersearch = 0;	/* this is set if man page is now after search
+					   operation */
+     int manwidthChanged = 0;	/* this flag indicates whether the env variable
+				   $MANWIDTH was changed by pinfo */
 
-typedef struct
-{
-	/* name of a manual */
-	char name[256];
-	/* section */
-	char sect[32];
-	/* what was last selected on this page */
-	int selected;
-	/* what was the last manualpos */
-	int pos;
-}
+     typedef struct
+     {
+       /* name of a manual */
+       char name[256];
+       /* section */
+       char sect[32];
+       /* what was last selected on this page */
+       int selected;
+       /* what was the last manualpos */
+       int pos;
+     }
 manhistory;			/*
-					 * type for the `lastread' history entries, when viewing
-					 * man pages.
-					 */
+				 * type for the `lastread' history entries, when viewing
+				 * man pages.
+				 */
 
 /* manual lastread history */
-manhistory *manualhistory = 0;
+     manhistory *manualhistory = 0;
 /* length of the above table - 1 */
-int manualhistorylength = 0;
+     int manualhistorylength = 0;
 
 /* this structure describes a hyperlink in manual viewer */
-typedef struct
-{			/* struct for hypertext references */
-	int line;		/* line of the manpage, where the reference is */
-	/* column of that line */
-	int col;
-	/* name of the reference */
-	char *name;
-	/* section of the reference */
-	char section[32];
-	int section_mark;
-	/* determine whether there is a hyphen above */
-	int carry;
-}
+     typedef struct
+     {				/* struct for hypertext references */
+       int line;		/* line of the manpage, where the reference is */
+       /* column of that line */
+       int col;
+       /* name of the reference */
+       char *name;
+       /* section of the reference */
+       char section[32];
+       int section_mark;
+       /* determine whether there is a hyphen above */
+       int carry;
+     }
 manuallink;
 
 /* a set of manual references of man page */
-manuallink *manuallinks = 0;
+     manuallink *manuallinks = 0;
 
 /* number of found manual references in man page */
-int ManualLinks = 0;
+     int ManualLinks = 0;
 
 /* semaphore for checking if it's a history(left arrow) call */
-int historical = 0;
+     int historical = 0;
 
 
-void
+     void
 /* free buffers allocated by current man page */
-manual_free_buffers()
+       manual_free_buffers ()
 {
-	int i;
-	/* first free previously allocated memory */
-	/* for the manual itself... */
-	if (manual)
-	{
-		for (i = 0; i <= ManualLines; i++)
-		{
-			xfree(manual[i]);
-		}
-		xfree(manual);
-		manual = 0;
-		ManualLines = 0;
-	}
-	/* ...and for the list of manual hypertext */
-	if (manuallinks)
-	{				/* links */
-		for (i = 0; i < ManualLinks; i++)
-		{
-			xfree(manuallinks[i].name);
-		}
-		xfree(manuallinks);
-		manuallinks = 0;
-		ManualLinks = 0;
-		selected = -1;
-	}
+  int i;
+  /* first free previously allocated memory */
+  /* for the manual itself... */
+  if (manual) {
+    for (i = 0; i <= ManualLines; i++) {
+      xfree (manual[i]);
+    }
+    xfree (manual);
+    manual = 0;
+    ManualLines = 0;
+  }
+  /* ...and for the list of manual hypertext */
+  if (manuallinks) {		/* links */
+    for (i = 0; i < ManualLinks; i++) {
+      xfree (manuallinks[i].name);
+    }
+    xfree (manuallinks);
+    manuallinks = 0;
+    ManualLinks = 0;
+    selected = -1;
+  }
 }
 
 /* initialize history variables for manual pages.  */
 void
-set_initial_history(char *name)
+set_initial_history (char *name)
 {
-	int len = strlen(name), i;
-	char *name1 = strdup(name);
+  int len = strlen (name), i;
+  char *name1 = strdup (name);
 
-	/* one object of array */
-	manualhistory = (manhistory*)xmalloc(sizeof(manhistory));
-	/* filter trailing spaces */
-	while ((len > 1) &&(isspace(name1[len - 1])))
-	{
-		name1[len - 1] = 0;
-		len--;
-	}
-	i = len;
-	/* find the beginning of the last token */
-	for (i = len - 1;(i > 0) &&(!isspace(name1[i])); i--);
+  /* one object of array */
+  manualhistory = (manhistory *) xmalloc (sizeof (manhistory));
+  /* filter trailing spaces */
+  while ((len > 1) && (isspace (name1[len - 1]))) {
+    name1[len - 1] = 0;
+    len--;
+  }
+  i = len;
+  /* find the beginning of the last token */
+  for (i = len - 1; (i > 0) && (!isspace (name1[i])); i--);
 
-	/* if we've found space, then we move to the first nonspace character */
-	if (i > 0)
-		i++;
+  /* if we've found space, then we move to the first nonspace character */
+  if (i > 0)
+    i++;
 
-	/* filename->name */
-	strcpy(manualhistory[0].name, &name1[i]);
-	/* section unknown */
-	strcpy(manualhistory[0].sect, "");
-	/* selected unknown */
-	manualhistory[0].selected = -1;
-	/* pos=0 */
-	manualhistory[0].pos = 0;
-	free(name1);
+  /* filename->name */
+  strcpy (manualhistory[0].name, &name1[i]);
+  /* section unknown */
+  strcpy (manualhistory[0].sect, "");
+  /* selected unknown */
+  manualhistory[0].selected = -1;
+  /* pos=0 */
+  manualhistory[0].pos = 0;
+  free (name1);
 }
 
 /* construct man name; take care about carry */
 void
-construct_manualname(char *buf, int which)
+construct_manualname (char *buf, int which)
 {
-	if (!manuallinks[which].carry)
-	{
-		/* workaround for names starting with '(' */
-		if (manuallinks[which].name[0] == '(') strcpy(buf, manuallinks[which].name + 1);
-		else strcpy(buf, manuallinks[which].name);
-		return;
-	}
-	else
-	{
-		/* normal manual reference */
-		if (manuallinks[which].section_mark < HTTPSECTION)
-		{
-			char *base = (char*)xmalloc(1024);
-			char *ptr;
-			int tmppos;
-			strcpy(base, manual[manuallinks[which].line - 1]);
-			strip_manual(base);
-			ptr = base + strlen(base) - 3;
-			while (((isalpha(*ptr)) ||(*ptr == '.') ||(*ptr == '_')) &&(ptr > base))
-				ptr--;
-			/* workaround for man pages with leading '(' see svgalib man pages */
-			if (*ptr == '(')
-				ptr++;
-			strcpy(buf, ptr);
-			tmppos = strlen(buf);
-			/* TODO: check the following statement */
-			if (tmppos > 1);
-			buf[tmppos - 2] = 0;
-			strcat(buf, manuallinks[which].name);
-			xfree(base);
-		}
-		/* url reference */
-		else
-		{
-			char *base = (char*)xmalloc(1024);
-			char *ptr, *eptr;
-			int tmppos;
-			int namelen = strlen(manuallinks[which].name);
-			strcpy(base, manual[manuallinks[which].line + 1]);
-			strip_manual(base);
-			ptr = base;
-			/* skip whitespace */
-			while (isspace(*ptr))
-				ptr++;
-			eptr = findurlend(ptr);
-			*eptr = 0;
-			strcpy(buf, manuallinks[which].name);
-			/* cut the hyphen */
-			buf[namelen - 1] = 0;
-			strcat(buf, ptr);
-			xfree(base);
-		}
-	}
+  if (!manuallinks[which].carry) {
+    /* workaround for names starting with '(' */
+    if (manuallinks[which].name[0] == '(')
+      strcpy (buf, manuallinks[which].name + 1);
+    else
+      strcpy (buf, manuallinks[which].name);
+    return;
+  } else {
+    /* normal manual reference */
+    if (manuallinks[which].section_mark < HTTPSECTION) {
+      char *base = (char *) xmalloc (1024);
+      char *ptr;
+      int tmppos;
+      strcpy (base, manual[manuallinks[which].line - 1]);
+      strip_manual (base);
+      ptr = base + strlen (base) - 3;
+      while (((isalpha (*ptr)) || (*ptr == '.') || (*ptr == '_'))
+	     && (ptr > base))
+	ptr--;
+      /* workaround for man pages with leading '(' see svgalib man pages */
+      if (*ptr == '(')
+	ptr++;
+      strcpy (buf, ptr);
+      tmppos = strlen (buf);
+      /* TODO: check the following statement */
+      if (tmppos > 1);
+      buf[tmppos - 2] = 0;
+      strcat (buf, manuallinks[which].name);
+      xfree (base);
+    }
+    /* url reference */
+    else {
+      char *base = (char *) xmalloc (1024);
+      char *ptr, *eptr;
+      int tmppos;
+      int namelen = strlen (manuallinks[which].name);
+      strcpy (base, manual[manuallinks[which].line + 1]);
+      strip_manual (base);
+      ptr = base;
+      /* skip whitespace */
+      while (isspace (*ptr))
+	ptr++;
+      eptr = findurlend (ptr);
+      *eptr = 0;
+      strcpy (buf, manuallinks[which].name);
+      /* cut the hyphen */
+      buf[namelen - 1] = 0;
+      strcat (buf, ptr);
+      xfree (base);
+    }
+  }
 }
 
 /* this is something like main() function for the manual viewer code.  */
 int
-handlemanual(char *name)
+handlemanual (char *name)
 {
-	int return_value = 0;
-	struct stat statbuf;
-	FILE *id, *source;
+  int return_value = 0;
+  struct stat statbuf;
+  FILE *id, *source;
 
-	char **ignored_entries;
-	char manualname[256];
-	char cmd[256];
-	char location[256];
-	char line[1025];
-	char *raw_tempfilename = 0;
-	char *apropos_tempfilename = 0;
-	char *end, *prev;
-	size_t macroline_size;
-	int ignored_items = 0, i = 0;
-	char zipped = 0;
+  char **ignored_entries;
+  char manualname[256];
+  char cmd[256];
+  char location[256];
+  char line[1025];
+  char *raw_tempfilename = 0;
+  char *apropos_tempfilename = 0;
+  char *end, *prev;
+  size_t macroline_size;
+  int ignored_items = 0, i = 0;
+  char zipped = 0;
 
-	if (tmpfilename1)
-	{
-		unlink(tmpfilename1);
-		xfree(tmpfilename1);
-	}
-	tmpfilename1 = tempnam("/tmp", NULL);
+  if (tmpfilename1) {
+    unlink (tmpfilename1);
+    xfree (tmpfilename1);
+  }
+  tmpfilename1 = tempnam ("/tmp", NULL);
 
 #ifdef getmaxyx
-	init_curses();
-	/* if ncurses, get maxx and maxy */
-	getmaxyx(stdscr, maxy, maxx);
-	myendwin();
-	if ((!getenv("MANWIDTH")) ||(manwidthChanged))
-	{
-		/* set MANWIDTH environment variable */
-		static char tmp[24];
-		snprintf(tmp, 24, "MANWIDTH=%d", maxx);
-		putenv(tmp);
-		manwidthChanged = 1;
-	}
+  init_curses ();
+  /* if ncurses, get maxx and maxy */
+  getmaxyx (stdscr, maxy, maxx);
+  myendwin ();
+  if ((!getenv ("MANWIDTH")) || (manwidthChanged)) {
+    /* set MANWIDTH environment variable */
+    static char tmp[24];
+    snprintf (tmp, 24, "MANWIDTH=%d", maxx);
+    putenv (tmp);
+    manwidthChanged = 1;
+  }
 #else
-	/* otherwise hardcode 80x25... */
-	maxx = 80;
-	maxy = 25;
+  /* otherwise hardcode 80x25... */
+  maxx = 80;
+  maxy = 25;
 #endif /* getmaxyx */
 #ifdef NIETS
 	/****************************************************************************
@@ -297,1270 +285,1128 @@
 	 * There is a stored variable raw_tempfilename to allow unlinking this temp *
 	 * file after usage							    *
 	 ****************************************************************************/
-	/* if the pointer is non-null */
-	if (ignoredmacros)
-		/* if there are some macros */
-		if (*ignoredmacros && strlen(ignoredmacros))
-		{				/* that should be ignored   */
-			*location = '\0';
-			/* we need to know the path */
-			snprintf(cmd, 255, "man -W %s %s",
-					ManOptions,
-					name);
-			id = popen(cmd, "r");
-			if (!id)
-			{
-				printf(_("Error: Cannot call man command.\n"));
-				return 1;
-			}
-			fflush(id);
-			fgets(location, 255, id);
-			pclose(id);
+  /* if the pointer is non-null */
+  if (ignoredmacros)
+    /* if there are some macros */
+    if (*ignoredmacros && strlen (ignoredmacros)) {	/* that should be ignored   */
+      *location = '\0';
+      /* we need to know the path */
+      snprintf (cmd, 255, "man -W %s %s", ManOptions, name);
+      id = popen (cmd, "r");
+      if (!id) {
+	printf (_("Error: Cannot call man command.\n"));
+	return 1;
+      }
+      fflush (id);
+      fgets (location, 255, id);
+      pclose (id);
 
-			if (*location == '\0')
-			{
-				printf(_("Error: No manual page found either.\n"));
-				if (use_apropos)
-				{
-					printf(_("Appropriate pages:\n"));
-					snprintf(cmd, 255, "apropos %s|cat %s", name, StderrRedirection);
-					system(cmd);
-				}
-				return 1;
-			}
+      if (*location == '\0') {
+	printf (_("Error: No manual page found either.\n"));
+	if (use_apropos) {
+	  printf (_("Appropriate pages:\n"));
+	  snprintf (cmd, 255, "apropos %s|cat %s", name, StderrRedirection);
+	  system (cmd);
+	}
+	return 1;
+      }
 
 
-			ignored_items++;
-			prev = ignoredmacros;
-			/* counting items */
-			while ((end = strchr(prev, ':')))
-			{
-				ignored_items++;
-				prev = end + 1;
-			}
+      ignored_items++;
+      prev = ignoredmacros;
+      /* counting items */
+      while ((end = strchr (prev, ':'))) {
+	ignored_items++;
+	prev = end + 1;
+      }
 
-			ignored_entries =(char **) (char*)xmalloc(ignored_items * sizeof(char **));
-			ignored_entries[0] = ignoredmacros;
-			prev = ignoredmacros;
-			i = 0;
-			/* creating pointers */
-			while ((end = strchr(prev, ':')))
-			{
-				*end = '\0';
-				prev = end + 1;
-				i++;
-				ignored_entries[i] = prev;
-			}
+      ignored_entries =
+	(char **) (char *) xmalloc (ignored_items * sizeof (char **));
+      ignored_entries[0] = ignoredmacros;
+      prev = ignoredmacros;
+      i = 0;
+      /* creating pointers */
+      while ((end = strchr (prev, ':'))) {
+	*end = '\0';
+	prev = end + 1;
+	i++;
+	ignored_entries[i] = prev;
+      }
 
-			/* removing newline */
-			if ((prev = rindex(location, '\n')))
-				*prev = '\0';
+      /* removing newline */
+      if ((prev = rindex (location, '\n')))
+	*prev = '\0';
 
-			/* checking if it's compressed */
-			prev = index(location, '\0');
-			if ((strlen(location)) > 3
-					&&((*(prev - 1) == 'Z' && *(prev - 2) == '.')
-						||(*(prev - 1) == 'z' && *(prev - 2) == 'g' && *(prev - 3) == '.')
-					   )
-			   )
-			{
-				if (verbose)
-					printf("%s %s\n", _("Calling gunzip for"), location);
-				snprintf(cmd, 255, "gunzip -c %s", location);
-				source = popen(cmd, "r");
-				zipped = 1;
-				if (!source)
-				{
-					printf(_("Couldn't call gunzip.\n"));
-					return 1;
-				}
-			}
-			else /* from cmd output  */
-				source = fopen(location, "r");
-			name = tempnam("/tmp", NULL);
-			raw_tempfilename = name;
-			id = fopen(name, "w");
+      /* checking if it's compressed */
+      prev = index (location, '\0');
+      if ((strlen (location)) > 3
+	  && ((*(prev - 1) == 'Z' && *(prev - 2) == '.')
+	      || (*(prev - 1) == 'z' && *(prev - 2) == 'g'
+		  && *(prev - 3) == '.')
+	  )
+	) {
+	if (verbose)
+	  printf ("%s %s\n", _("Calling gunzip for"), location);
+	snprintf (cmd, 255, "gunzip -c %s", location);
+	source = popen (cmd, "r");
+	zipped = 1;
+	if (!source) {
+	  printf (_("Couldn't call gunzip.\n"));
+	  return 1;
+	}
+      } else			/* from cmd output  */
+	source = fopen (location, "r");
+      name = tempnam ("/tmp", NULL);
+      raw_tempfilename = name;
+      id = fopen (name, "w");
 
-			/* we read until eof */
-			while (!feof(source))
-			{
-				if (fgets(line, 1024, source) == NULL)
-					line[0] = '\0';
+      /* we read until eof */
+      while (!feof (source)) {
+	if (fgets (line, 1024, source) == NULL)
+	  line[0] = '\0';
 
-				/* macro starts with a dot*/
-				if (line[0] != '.' ||(strlen(line)) <(size_t) 2)
-				{
-					fprintf(id, "%s", line);
-					continue;
-				}
-				else
-					while (i >= 0)
-					{
-						macroline_size = strlen(ignored_entries[i]);
-						if (strlen(line + 1) < macroline_size)
-							macroline_size = strlen(line + 1);
-						if ((strncmp(ignored_entries[i], line + 1, macroline_size)) == 0
-								&&(*(line + 1 +(int) macroline_size) == ' '
-									|| *(line + 1 +(int) macroline_size) == '\n'
-									|| *(line + 1 +(int) macroline_size) == '\t'))
-						{
-							if (quote_ignored)
-							{
-								if ((prev = rindex(line, '\n')))
-									*prev = '\0';
-								sprintf(cmd, "\n.br\n.nf\n[ [pinfo] - %s: %.42s", _("IGNORING"), line);
-								if ((strlen(line)) >(size_t) 42)
-									strcat(cmd, "(...)]\n.fi\n");
-								else
-									strcat(cmd, " ]\n.fi\n");
-							}
-							else
-							{
-								sprintf(cmd, ".\\\" removed macro: %.42s", line);
-								if ((strlen(line)) >(size_t) 42)
-									strcat(cmd, "(...)");
-							}
-							strcpy(line, cmd);
-							break;
-						}
-						i--;
-					}
+	/* macro starts with a dot */
+	if (line[0] != '.' || (strlen (line)) < (size_t) 2) {
+	  fprintf (id, "%s", line);
+	  continue;
+	} else
+	  while (i >= 0) {
+	    macroline_size = strlen (ignored_entries[i]);
+	    if (strlen (line + 1) < macroline_size)
+	      macroline_size = strlen (line + 1);
+	    if ((strncmp (ignored_entries[i], line + 1, macroline_size)) == 0
+		&& (*(line + 1 + (int) macroline_size) == ' '
+		    || *(line + 1 + (int) macroline_size) == '\n'
+		    || *(line + 1 + (int) macroline_size) == '\t')) {
+	      if (quote_ignored) {
+		if ((prev = rindex (line, '\n')))
+		  *prev = '\0';
+		sprintf (cmd, "\n.br\n.nf\n[ [pinfo] - %s: %.42s",
+			 _("IGNORING"), line);
+		if ((strlen (line)) > (size_t) 42)
+		  strcat (cmd, "(...)]\n.fi\n");
+		else
+		  strcat (cmd, " ]\n.fi\n");
+	      } else {
+		sprintf (cmd, ".\\\" removed macro: %.42s", line);
+		if ((strlen (line)) > (size_t) 42)
+		  strcat (cmd, "(...)");
+	      }
+	      strcpy (line, cmd);
+	      break;
+	    }
+	    i--;
+	  }
 
-				fprintf(id, "%s", line);
-				i = ignored_items - 1;
-			}			/* while (!feof(source)) */
-			if (zipped)
-				pclose(source);
-			else
-				fclose(source);
-			fclose(id);
-			free(ignored_entries);
-		}				/* if (ignored_macros... */
-	/****************************************************************************
+	fprintf (id, "%s", line);
+	i = ignored_items - 1;
+      }				/* while (!feof(source)) */
+      if (zipped)
+	pclose (source);
+      else
+	fclose (source);
+      fclose (id);
+      free (ignored_entries);
+    }
+  /* if (ignored_macros... */
+ /****************************************************************************
 	 *                    Ignore macros part: END                               *
 	 ****************************************************************************/
 #endif
-	if (!plain_apropos)
-		snprintf(cmd, 255, "man %s %s %s > %s",
-				ManOptions,
-				name,
-				StderrRedirection,
-				tmpfilename1);
-	if ((plain_apropos) ||(system(cmd) != 0))
-	{
-		if (!plain_apropos)
-		{
-			unlink(tmpfilename1);
-			printf(_("Error: No manual page found\n"));
-		}
-		plain_apropos = 0;
-		if (use_apropos)
-		{
-			printf(_("Calling apropos \n"));
-			apropos_tempfilename = tempnam("/tmp", NULL);
-			snprintf(cmd, 255, "apropos %s > %s", name, apropos_tempfilename);
-			if (system(cmd) != 0)
-			{
-				printf(_("Nothing apropiate\n"));
-				unlink(apropos_tempfilename);
-				return 1;
-			}
-			id = fopen(apropos_tempfilename, "r");
-		}
-		else
-			return 1;
-	}
-	else
-		id = fopen(tmpfilename1, "r");
-	init_curses();
+  if (!plain_apropos)
+    snprintf (cmd, 255, "man %s %s %s > %s",
+	      ManOptions, name, StderrRedirection, tmpfilename1);
+  if ((plain_apropos) || (system (cmd) != 0)) {
+    if (!plain_apropos) {
+      unlink (tmpfilename1);
+      printf (_("Error: No manual page found\n"));
+    }
+    plain_apropos = 0;
+    if (use_apropos) {
+      printf (_("Calling apropos \n"));
+      apropos_tempfilename = tempnam ("/tmp", NULL);
+      snprintf (cmd, 255, "apropos %s > %s", name, apropos_tempfilename);
+      if (system (cmd) != 0) {
+	printf (_("Nothing apropiate\n"));
+	unlink (apropos_tempfilename);
+	return 1;
+      }
+      id = fopen (apropos_tempfilename, "r");
+    } else
+      return 1;
+  } else
+    id = fopen (tmpfilename1, "r");
+  init_curses ();
 
 
-	set_initial_history(name);
-	/* load manual to memory */
-	loadmanual(id);
-	fclose(id);
-	do
-	{
-		/* manualwork handles all actions when viewing man page */
-		return_value = manualwork();
+  set_initial_history (name);
+  /* load manual to memory */
+  loadmanual (id);
+  fclose (id);
+  do {
+    /* manualwork handles all actions when viewing man page */
+    return_value = manualwork ();
 #ifdef getmaxyx
-		/* if ncurses, get maxx and maxy */
-		getmaxyx(stdscr, maxy, maxx);
-		if ((!getenv("MANWIDTH")) ||(manwidthChanged))
-		{
-			/* set MANWIDTH environment variable */
-			static char tmp[24];
-			snprintf(tmp, 24, "MANWIDTH=%d", maxx);
-			putenv(tmp);
-			manwidthChanged = 1;
-		}
+    /* if ncurses, get maxx and maxy */
+    getmaxyx (stdscr, maxy, maxx);
+    if ((!getenv ("MANWIDTH")) || (manwidthChanged)) {
+      /* set MANWIDTH environment variable */
+      static char tmp[24];
+      snprintf (tmp, 24, "MANWIDTH=%d", maxx);
+      putenv (tmp);
+      manwidthChanged = 1;
+    }
 #endif
-		manual_aftersearch = 0;
-		/* -1 is quit key */
-		if (return_value != -1)
-		{
-			if (tmpfilename2)
-			{
-				unlink(tmpfilename2);
-				xfree(tmpfilename2);
-			}
-			tmpfilename2 = tempnam("/tmp", NULL);
-			/*
-			 * key_back is not pressed; and return_value is an offset to
-			 * manuallinks
-			 */
-			if (return_value != -2)
-			{
-				construct_manualname(manualname, return_value);
-				snprintf(cmd, 255, "man %s %s %s %s > %s",
-						ManOptions,
-						manuallinks[return_value].section,
-						manualname,
-						StderrRedirection,
-						tmpfilename2);
-			}
-			else /* key_back was pressed */
-			{
-				manualhistorylength--;
-				if (manualhistorylength == 0 && apropos_tempfilename)
-				{
-					id = fopen(apropos_tempfilename, "r");
-					loadmanual(id);
-					fclose(id);
-					continue;
-				}
-				if (manualhistory[manualhistorylength].sect[0] == 0)
-					snprintf(cmd, 255, "man %s %s %s > %s",
-							ManOptions,
-							manualhistory[manualhistorylength].name,
-							StderrRedirection,
-							tmpfilename2);
-				else
-					snprintf(cmd, 255, "man %s %s %s %s > %s",
-							ManOptions,
-							manualhistory[manualhistorylength].sect,
-							manualhistory[manualhistorylength].name,
-							StderrRedirection,
-							tmpfilename2);
-				/*
-				 * flag to make sure, that
-				 * manualwork will refresh the variables manualpos and selected
-				 * when going back to this page
-				 */
-				historical = 1;
-			}
-			system(cmd);
-			stat(tmpfilename2, &statbuf);
-			if (statbuf.st_size > 0)
-			{
-				snprintf(cmd, 255, "mv %s %s", tmpfilename2, tmpfilename1);
-				/* create tmp file containing man page */
-				system(cmd);
-				/* open man page */
-				id = fopen(tmpfilename1, "r");
-				if (id != NULL)
-				{
-					/* now we create history entry for new page */
-					if (!historical)
-					{
-						manualhistorylength++;
-						manualhistory = (manhistory*)xrealloc(manualhistory,(manualhistorylength + 2) * sizeof(manhistory));
-						/*
-						 * we can write so since this code applies
-						 * only when it's not a history call
-						 */
-						strcpy(manualhistory[manualhistorylength].name,
-								manualname);
-						strcpy(manualhistory[manualhistorylength].sect,
-								manuallinks[return_value].section);
-					}
-					/* loading manual page and its defaults... */
-					loadmanual(id);
-					fclose(id);
-					/* continuing with creation of history */
-					if (!historical)
-					{
-						manualhistory[manualhistorylength].pos = manualpos;
-						manualhistory[manualhistorylength].selected = selected;
-					}
-					else
-						historical = 0;
-				}
-				else
-					return_value = -1;
-			}
-		}
+    manual_aftersearch = 0;
+    /* -1 is quit key */
+    if (return_value != -1) {
+      if (tmpfilename2) {
+	unlink (tmpfilename2);
+	xfree (tmpfilename2);
+      }
+      tmpfilename2 = tempnam ("/tmp", NULL);
+      /*
+       * key_back is not pressed; and return_value is an offset to
+       * manuallinks
+       */
+      if (return_value != -2) {
+	construct_manualname (manualname, return_value);
+	snprintf (cmd, 255, "man %s %s %s %s > %s",
+		  ManOptions,
+		  manuallinks[return_value].section,
+		  manualname, StderrRedirection, tmpfilename2);
+      } else {			/* key_back was pressed */
+
+	manualhistorylength--;
+	if (manualhistorylength == 0 && apropos_tempfilename) {
+	  id = fopen (apropos_tempfilename, "r");
+	  loadmanual (id);
+	  fclose (id);
+	  continue;
 	}
-	while (return_value != -1);
-	if (apropos_tempfilename)
-		unlink(apropos_tempfilename);
-	/* we were using temporary */
-	if (raw_tempfilename)
-		unlink(raw_tempfilename);
-	/* raw-manpage for scaning */
-	return 0;
+	if (manualhistory[manualhistorylength].sect[0] == 0)
+	  snprintf (cmd, 255, "man %s %s %s > %s",
+		    ManOptions,
+		    manualhistory[manualhistorylength].name,
+		    StderrRedirection, tmpfilename2);
+	else
+	  snprintf (cmd, 255, "man %s %s %s %s > %s",
+		    ManOptions,
+		    manualhistory[manualhistorylength].sect,
+		    manualhistory[manualhistorylength].name,
+		    StderrRedirection, tmpfilename2);
+	/*
+	 * flag to make sure, that
+	 * manualwork will refresh the variables manualpos and selected
+	 * when going back to this page
+	 */
+	historical = 1;
+      }
+      system (cmd);
+      stat (tmpfilename2, &statbuf);
+      if (statbuf.st_size > 0) {
+	snprintf (cmd, 255, "mv %s %s", tmpfilename2, tmpfilename1);
+	/* create tmp file containing man page */
+	system (cmd);
+	/* open man page */
+	id = fopen (tmpfilename1, "r");
+	if (id != NULL) {
+	  /* now we create history entry for new page */
+	  if (!historical) {
+	    manualhistorylength++;
+	    manualhistory =
+	      (manhistory *) xrealloc (manualhistory,
+				       (manualhistorylength +
+					2) * sizeof (manhistory));
+	    /*
+	     * we can write so since this code applies
+	     * only when it's not a history call
+	     */
+	    strcpy (manualhistory[manualhistorylength].name, manualname);
+	    strcpy (manualhistory[manualhistorylength].sect,
+		    manuallinks[return_value].section);
+	  }
+	  /* loading manual page and its defaults... */
+	  loadmanual (id);
+	  fclose (id);
+	  /* continuing with creation of history */
+	  if (!historical) {
+	    manualhistory[manualhistorylength].pos = manualpos;
+	    manualhistory[manualhistorylength].selected = selected;
+	  } else
+	    historical = 0;
+	} else
+	  return_value = -1;
+      }
+    }
+  }
+  while (return_value != -1);
+  if (apropos_tempfilename)
+    unlink (apropos_tempfilename);
+  /* we were using temporary */
+  if (raw_tempfilename)
+    unlink (raw_tempfilename);
+  /* raw-manpage for scaning */
+  return 0;
 }
 
 void
 /* loads manual from given filedescriptor */
-loadmanual(FILE * id)
+loadmanual (FILE * id)
 {
-	char prevlinechar = 0;
-	/* tmp variable, set after reading first nonempty line of input */
-	int cutheader = 0;
-	int carryflag = 0;
-	manualpos = 0;
-	manual_free_buffers();
-	manual = (char**)xmalloc(sizeof(char *));
-	manuallinks = (manuallink*)xmalloc(sizeof(manuallinks));
-	manual[ManualLines] = (char*)xmalloc(1024);
+  char prevlinechar = 0;
+  /* tmp variable, set after reading first nonempty line of input */
+  int cutheader = 0;
+  int carryflag = 0;
+  manualpos = 0;
+  manual_free_buffers ();
+  manual = (char **) xmalloc (sizeof (char *));
+  manuallinks = (manuallink *) xmalloc (sizeof (manuallinks));
+  manual[ManualLines] = (char *) xmalloc (1024);
 
-	/* we read until eof */
-	while (!feof(id))
-	{
-		char *tmp;
-		/*
-		 * it happens sometimes, that the last line is weird
-		 * and causes sigsegvs by not entering anything to buffer, what
-		 * confuses strlen
-		 */
-		if (fgets(manual[ManualLines], 1024, id) == NULL)
-			manual[ManualLines][0] = 0;
+  /* we read until eof */
+  while (!feof (id)) {
+    char *tmp;
+    /*
+     * it happens sometimes, that the last line is weird
+     * and causes sigsegvs by not entering anything to buffer, what
+     * confuses strlen
+     */
+    if (fgets (manual[ManualLines], 1024, id) == NULL)
+      manual[ManualLines][0] = 0;
 
-		if (cutheader)
-		{
-			if (strcmp(manual[cutheader], manual[ManualLines]) == 0)
-			{
-				manual[ManualLines][0] = '\n';
-				manual[ManualLines][1] = 0;
-			}
-		}
-		if (FilterB7)
-		{
-			char *filter_pos = index(manual[ManualLines], 0xb7);
-			if (filter_pos)
-				*filter_pos = 'o';
-		}
-		if (CutManHeaders)
-			if (!cutheader)
-			{
-				if (strlen(manual[ManualLines]) > 1)
-				{
-					cutheader = ManualLines;
-				}
-			}
-		if ((CutEmptyManLines) &&((manual[ManualLines][0]) == '\n') &&
-				(prevlinechar == '\n'))
-			;			/* do nothing :)) */
-		else
-		{
-			int manlinelen = strlen(manual[ManualLines]);
-			manual[ManualLines] = (char*)xrealloc(manual[ManualLines],
-					manlinelen + 10);
+    if (cutheader) {
+      if (strcmp (manual[cutheader], manual[ManualLines]) == 0) {
+	manual[ManualLines][0] = '\n';
+	manual[ManualLines][1] = 0;
+      }
+    }
+    if (FilterB7) {
+      char *filter_pos = index (manual[ManualLines], 0xb7);
+      if (filter_pos)
+	*filter_pos = 'o';
+    }
+    if (CutManHeaders)
+      if (!cutheader) {
+	if (strlen (manual[ManualLines]) > 1) {
+	  cutheader = ManualLines;
+	}
+      }
+    if ((CutEmptyManLines) && ((manual[ManualLines][0]) == '\n') && (prevlinechar == '\n'));	/* do nothing :)) */
+    else {
+      int manlinelen = strlen (manual[ManualLines]);
+      manual[ManualLines] = (char *) xrealloc (manual[ManualLines],
+					       manlinelen + 10);
 
-			/* temporary variable for determining hypertextuality of fields */
-			tmp = (char*)xmalloc(manlinelen + 10);
+      /* temporary variable for determining hypertextuality of fields */
+      tmp = (char *) xmalloc (manlinelen + 10);
 
-			strcpy(tmp, manual[ManualLines]);
+      strcpy (tmp, manual[ManualLines]);
 
-			/* remove formatting chars */
-			strip_manual(tmp);
-			man_initializelinks(tmp, carryflag);
-			carryflag = 0;
-			if (manlinelen > 1)
-				if (ishyphen(manual[ManualLines][manlinelen - 2]))
-					carryflag = 1;
-			/* free temporary buffer */
-			xfree(tmp);
-			prevlinechar = manual[ManualLines][0];
-			/* increase the number of man lines */
-			ManualLines++;
-			/*
-			 * and realloc manual to add an empty space for
-			 * next entry of manual line
-			 */
-			manual = (char**)xrealloc(manual,(ManualLines + 5) * sizeof(char *));
-			manual[ManualLines] = (char*)xmalloc(1024);
-		}
-	}
+      /* remove formatting chars */
+      strip_manual (tmp);
+      man_initializelinks (tmp, carryflag);
+      carryflag = 0;
+      if (manlinelen > 1)
+	if (ishyphen (manual[ManualLines][manlinelen - 2]))
+	  carryflag = 1;
+      /* free temporary buffer */
+      xfree (tmp);
+      prevlinechar = manual[ManualLines][0];
+      /* increase the number of man lines */
+      ManualLines++;
+      /*
+       * and realloc manual to add an empty space for
+       * next entry of manual line
+       */
+      manual =
+	(char **) xrealloc (manual, (ManualLines + 5) * sizeof (char *));
+      manual[ManualLines] = (char *) xmalloc (1024);
+    }
+  }
 
 }
 
 int
-compare_manuallink(const void *a, const void *b)
+compare_manuallink (const void *a, const void *b)
 {
-	return ((manuallink *) a)->col -((manuallink *) b)->col;
+  return ((manuallink *) a)->col - ((manuallink *) b)->col;
 }
 
 void
-sort_manuallinks_from_current_line(long startlink, long endlink)
+sort_manuallinks_from_current_line (long startlink, long endlink)
 {
-	qsort(manuallinks + startlink, endlink - startlink, sizeof(manuallink), compare_manuallink);
+  qsort (manuallinks + startlink, endlink - startlink, sizeof (manuallink),
+	 compare_manuallink);
 }
 
 
 /* initializes hyperlinks in manual */
 void
-man_initializelinks(char *tmp, int carry)
+man_initializelinks (char *tmp, int carry)
 {
-	/* set tmpcnt to the trailing zero of tmp */
-	int tmpcnt = strlen(tmp) + 1;
-	char *link = tmp;
-	char *urlstart, *urlend;
-	long initialManualLinks = ManualLinks;
-	int i, b;
+  /* set tmpcnt to the trailing zero of tmp */
+  int tmpcnt = strlen (tmp) + 1;
+  char *link = tmp;
+  char *urlstart, *urlend;
+  long initialManualLinks = ManualLinks;
+  int i, b;
 	/******************************************************************************
 	 * handle url refrences                                                       *
 	 *****************************************************************************/
-	urlend = tmp;
-	while ((urlstart = strstr(urlend, "http://")) != NULL)
-	{
-		/* always successfull */
-		urlend = findurlend(urlstart);
-		manuallinks = (manuallink*)xrealloc(manuallinks, sizeof(manuallink) *(ManualLinks + 3));
-		manuallinks[ManualLinks].line = ManualLines;
-		manuallinks[ManualLinks].col = urlstart - tmp;
-		strcpy(manuallinks[ManualLinks].section, "HTTPSECTION");
-		manuallinks[ManualLinks].section_mark = HTTPSECTION;
-		manuallinks[ManualLinks].name = (char*)xmalloc(urlend - urlstart + 10);
-		strncpy(manuallinks[ManualLinks].name, urlstart, urlend - urlstart);
-		manuallinks[ManualLinks].name[urlend - urlstart] = 0;
-		if (ishyphen(manuallinks[ManualLinks].name[urlend - urlstart - 1]))
-			manuallinks[ManualLinks].carry = 1;
-		else
-			manuallinks[ManualLinks].carry = 0;
-		ManualLinks++;
-	}
-	urlend = tmp;
-	while ((urlstart = strstr(urlend, "ftp://")) != NULL)
-	{
-		/* always successfull */
-		urlend = findurlend(urlstart);
-		manuallinks = (manuallink*)xrealloc(manuallinks, sizeof(manuallink) *(ManualLinks + 3));
-		manuallinks[ManualLinks].line = ManualLines;
-		manuallinks[ManualLinks].col = urlstart - tmp;
-		strcpy(manuallinks[ManualLinks].section, "FTPSECTION");
-		manuallinks[ManualLinks].section_mark = FTPSECTION;
-		manuallinks[ManualLinks].name = (char*)xmalloc(urlend - urlstart + 10);
-		strncpy(manuallinks[ManualLinks].name, urlstart, urlend - urlstart);
-		manuallinks[ManualLinks].name[urlend - urlstart] = 0;
-		if (ishyphen(manuallinks[ManualLinks].name[urlend - urlstart - 1]))
-			manuallinks[ManualLinks].carry = 1;
-		else
-			manuallinks[ManualLinks].carry = 0;
-		ManualLinks++;
-	}
-	urlend = tmp;
-	while ((urlstart = findemailstart(urlend)) != NULL)
-	{
-		/* always successfull */
-		urlend = findurlend(urlstart);
-		manuallinks = (manuallink*)xrealloc(manuallinks, sizeof(manuallink) *(ManualLinks + 3));
-		manuallinks[ManualLinks].line = ManualLines;
-		manuallinks[ManualLinks].col = urlstart - tmp;
-		strcpy(manuallinks[ManualLinks].section, "MAILSECTION");
-		manuallinks[ManualLinks].section_mark = MAILSECTION;
-		manuallinks[ManualLinks].name = (char*)xmalloc(urlend - urlstart + 10);
-		strncpy(manuallinks[ManualLinks].name, urlstart, urlend - urlstart);
-		manuallinks[ManualLinks].name[urlend - urlstart] = 0;
-		if (ishyphen(manuallinks[ManualLinks].name[urlend - urlstart - 1]))
-			manuallinks[ManualLinks].carry = 1;
-		else
-			manuallinks[ManualLinks].carry = 0;
+  urlend = tmp;
+  while ((urlstart = strstr (urlend, "http://")) != NULL) {
+    /* always successfull */
+    urlend = findurlend (urlstart);
+    manuallinks =
+      (manuallink *) xrealloc (manuallinks,
+			       sizeof (manuallink) * (ManualLinks + 3));
+    manuallinks[ManualLinks].line = ManualLines;
+    manuallinks[ManualLinks].col = urlstart - tmp;
+    strcpy (manuallinks[ManualLinks].section, "HTTPSECTION");
+    manuallinks[ManualLinks].section_mark = HTTPSECTION;
+    manuallinks[ManualLinks].name = (char *) xmalloc (urlend - urlstart + 10);
+    strncpy (manuallinks[ManualLinks].name, urlstart, urlend - urlstart);
+    manuallinks[ManualLinks].name[urlend - urlstart] = 0;
+    if (ishyphen (manuallinks[ManualLinks].name[urlend - urlstart - 1]))
+      manuallinks[ManualLinks].carry = 1;
+    else
+      manuallinks[ManualLinks].carry = 0;
+    ManualLinks++;
+  }
+  urlend = tmp;
+  while ((urlstart = strstr (urlend, "ftp://")) != NULL) {
+    /* always successfull */
+    urlend = findurlend (urlstart);
+    manuallinks =
+      (manuallink *) xrealloc (manuallinks,
+			       sizeof (manuallink) * (ManualLinks + 3));
+    manuallinks[ManualLinks].line = ManualLines;
+    manuallinks[ManualLinks].col = urlstart - tmp;
+    strcpy (manuallinks[ManualLinks].section, "FTPSECTION");
+    manuallinks[ManualLinks].section_mark = FTPSECTION;
+    manuallinks[ManualLinks].name = (char *) xmalloc (urlend - urlstart + 10);
+    strncpy (manuallinks[ManualLinks].name, urlstart, urlend - urlstart);
+    manuallinks[ManualLinks].name[urlend - urlstart] = 0;
+    if (ishyphen (manuallinks[ManualLinks].name[urlend - urlstart - 1]))
+      manuallinks[ManualLinks].carry = 1;
+    else
+      manuallinks[ManualLinks].carry = 0;
+    ManualLinks++;
+  }
+  urlend = tmp;
+  while ((urlstart = findemailstart (urlend)) != NULL) {
+    /* always successfull */
+    urlend = findurlend (urlstart);
+    manuallinks =
+      (manuallink *) xrealloc (manuallinks,
+			       sizeof (manuallink) * (ManualLinks + 3));
+    manuallinks[ManualLinks].line = ManualLines;
+    manuallinks[ManualLinks].col = urlstart - tmp;
+    strcpy (manuallinks[ManualLinks].section, "MAILSECTION");
+    manuallinks[ManualLinks].section_mark = MAILSECTION;
+    manuallinks[ManualLinks].name = (char *) xmalloc (urlend - urlstart + 10);
+    strncpy (manuallinks[ManualLinks].name, urlstart, urlend - urlstart);
+    manuallinks[ManualLinks].name[urlend - urlstart] = 0;
+    if (ishyphen (manuallinks[ManualLinks].name[urlend - urlstart - 1]))
+      manuallinks[ManualLinks].carry = 1;
+    else
+      manuallinks[ManualLinks].carry = 0;
 
-		/* there should be a dot in e-mail domain */
-		if (strchr(manuallinks[ManualLinks].name, '.') != NULL)
-			ManualLinks++;
-	}
+    /* there should be a dot in e-mail domain */
+    if (strchr (manuallinks[ManualLinks].name, '.') != NULL)
+      ManualLinks++;
+  }
 	/******************************************************************************
 	 * handle normal manual refrences -- reference(section)                       *
 	 ******************************************************************************/
-	do
-	{
-		/* we look for '(', since manual link */
-		link = strchr(link, '(');
-		/* has form of  'blah(x)' */
-		if (link != NULL)
-		{
-			char *temp;
-			/* look for the closing bracket */
-			if ((temp = strchr(link, ')')))
-			{
-				char *p_t1, *p_t;
-				p_t = p_t1 = (char*)xmalloc((strlen(link) + 10) * sizeof(char));
-				for (++link; link != temp; *p_t++ = *link++);
-				*p_t = '\0';
-				link -=(strlen(p_t1) + sizeof(char));
+  do {
+    /* we look for '(', since manual link */
+    link = strchr (link, '(');
+    /* has form of  'blah(x)' */
+    if (link != NULL) {
+      char *temp;
+      /* look for the closing bracket */
+      if ((temp = strchr (link, ')'))) {
+	char *p_t1, *p_t;
+	p_t = p_t1 = (char *) xmalloc ((strlen (link) + 10) * sizeof (char));
+	for (++link; link != temp; *p_t++ = *link++);
+	*p_t = '\0';
+	link -= (strlen (p_t1) + sizeof (char));
 
-				if ((!strchr(p_t1, '(')) &&(!is_in_manlinks(manlinks, p_t1)))
-				{
-					char tempchar;
-					int breakpos;
-					i = link - tmp - 1;
-					if (i < 0)
-						i++;
-					for (; i > 0; --i)
-					{
-						if (!isspace(tmp[i]))
-							/* ignore spaces between linkname and '(x)' */
-							break;
-					}
-					/* we'll put zero on the last non-textual character of link */
-					breakpos = i + 1;
-					/* but remember the cleared char for the future */
-					tempchar = tmp[breakpos];
-					tmp[breakpos] = 0;
-					/*
-					 * scan to the first space sign or to 0 -- that means go to
-					 * the beginning of the scanned token
-					 */
-					for (i = breakpos; i > 0; --i)
-					{
-						if (isspace(tmp[i]))
-						{
-							i++;
-							break;
-						}
-					}
-					/* now we have needed string in i..breakpos. We need now to
-					 * realloc the
-					 * manuallinks table to make free space for new entry
-					 */
+	if ((!strchr (p_t1, '(')) && (!is_in_manlinks (manlinks, p_t1))) {
+	  char tempchar;
+	  int breakpos;
+	  i = link - tmp - 1;
+	  if (i < 0)
+	    i++;
+	  for (; i > 0; --i) {
+	    if (!isspace (tmp[i]))
+	      /* ignore spaces between linkname and '(x)' */
+	      break;
+	  }
+	  /* we'll put zero on the last non-textual character of link */
+	  breakpos = i + 1;
+	  /* but remember the cleared char for the future */
+	  tempchar = tmp[breakpos];
+	  tmp[breakpos] = 0;
+	  /*
+	   * scan to the first space sign or to 0 -- that means go to
+	   * the beginning of the scanned token
+	   */
+	  for (i = breakpos; i > 0; --i) {
+	    if (isspace (tmp[i])) {
+	      i++;
+	      break;
+	    }
+	  }
+	  /* now we have needed string in i..breakpos. We need now to
+	   * realloc the
+	   * manuallinks table to make free space for new entry
+	   */
 
-					/* a small check */
-					if (!((use_apropos) &&(manualhistorylength == 0)))
-					{
-						/*
-						 * In English: if the name of the link is the name of
-						 * the current page and the section of the link is the
-						 * current section or if we don't know the current
-						 * section, then...
-						 */
-						if ((!strcasecmp(&tmp[i], manualhistory[manualhistorylength].name))
-								&&((!strcasecmp(p_t1, manualhistory[manualhistorylength].sect))
-									||(manualhistory[manualhistorylength].sect[0] == 0)
-									||(!strcmp(manualhistory[manualhistorylength].sect, " "))))
+	  /* a small check */
+	  if (!((use_apropos) && (manualhistorylength == 0))) {
+	    /*
+	     * In English: if the name of the link is the name of
+	     * the current page and the section of the link is the
+	     * current section or if we don't know the current
+	     * section, then...
+	     */
+	    if ((!strcasecmp
+		 (&tmp[i], manualhistory[manualhistorylength].name))
+		&&
+		((!strcasecmp (p_t1, manualhistory[manualhistorylength].sect))
+		 || (manualhistory[manualhistorylength].sect[0] == 0)
+		 || (!strcmp (manualhistory[manualhistorylength].sect, " "))))
 
-							break;
-					}
-					manuallinks = (manuallink*)xrealloc(manuallinks, sizeof(manuallink) *(ManualLinks + 3));
-					manuallinks[ManualLinks].line = ManualLines;
-					manuallinks[ManualLinks].col = i;
-					if (LongManualLinks)
-					{
-						for (b = 1; link[b] != ')'; b++)
-							manuallinks[ManualLinks].section[b - 1] = tolower(link[b]);
-						manuallinks[ManualLinks].section[b - 1] = 0;
-					}
-					else
-					{
-						manuallinks[ManualLinks].section[0] = link[1];
-						manuallinks[ManualLinks].section[1] = 0;
-					}
-					manuallinks[ManualLinks].section_mark = 0;
-					manuallinks[ManualLinks].name = (char*)xmalloc((breakpos - i) + 10);
-					strcpy(manuallinks[ManualLinks].name, tmp + i);
-					tmp[breakpos] = tempchar;
+	      break;
+	  }
+	  manuallinks =
+	    (manuallink *) xrealloc (manuallinks,
+				     sizeof (manuallink) * (ManualLinks + 3));
+	  manuallinks[ManualLinks].line = ManualLines;
+	  manuallinks[ManualLinks].col = i;
+	  if (LongManualLinks) {
+	    for (b = 1; link[b] != ')'; b++)
+	      manuallinks[ManualLinks].section[b - 1] = tolower (link[b]);
+	    manuallinks[ManualLinks].section[b - 1] = 0;
+	  } else {
+	    manuallinks[ManualLinks].section[0] = link[1];
+	    manuallinks[ManualLinks].section[1] = 0;
+	  }
+	  manuallinks[ManualLinks].section_mark = 0;
+	  manuallinks[ManualLinks].name =
+	    (char *) xmalloc ((breakpos - i) + 10);
+	  strcpy (manuallinks[ManualLinks].name, tmp + i);
+	  tmp[breakpos] = tempchar;
 
-					/* check whether this is a carry'ed entry(i.e. in the
-					 * previous line there was `-' at end, and this is the
-					 * first word of this line */
-					for (b = i - 1; b >= 0; b--)
-					{
-						if (b > 0)
-							if (!isspace(tmp[b]))
-								break;
-					}
-					if (b >= 0)
-						manuallinks[ManualLinks].carry = 0;
-					else
-						manuallinks[ManualLinks].carry = carry;
-					/* increase the number of entries */
-					ManualLinks++;
-				}		/*... if (in man links) */
-				xfree((void *) p_t1);
-			}
-		}
-		if (link)
-			link++;
-		if (link >(tmp + tmpcnt))
-		{
-			break;
-		}
-	}
-	/* do this line until strchr() won't find a '(' in string */
-	while (link != NULL);
-	if (initialManualLinks != ManualLinks)
-		sort_manuallinks_from_current_line(initialManualLinks, ManualLinks);
+	  /* check whether this is a carry'ed entry(i.e. in the
+	   * previous line there was `-' at end, and this is the
+	   * first word of this line */
+	  for (b = i - 1; b >= 0; b--) {
+	    if (b > 0)
+	      if (!isspace (tmp[b]))
+		break;
+	  }
+	  if (b >= 0)
+	    manuallinks[ManualLinks].carry = 0;
+	  else
+	    manuallinks[ManualLinks].carry = carry;
+	  /* increase the number of entries */
+	  ManualLinks++;
+	}			/*... if (in man links) */
+	xfree ((void *) p_t1);
+      }
+    }
+    if (link)
+      link++;
+    if (link > (tmp + tmpcnt)) {
+      break;
+    }
+  }
+  /* do this line until strchr() won't find a '(' in string */
+  while (link != NULL);
+  if (initialManualLinks != ManualLinks)
+    sort_manuallinks_from_current_line (initialManualLinks, ManualLinks);
 }
 
 /* viewer function. Handles keyboard actions--main event loop */
 int
-manualwork()
+manualwork ()
 {
-	/* for user's shell commands */
-	FILE *pipe;
-	/* a temporary buffer */
-	char *token;
-	/* again the same */
-	char *tmp;
-	/* key, which contains the value entered by user */
-	int key = 0;
-	/* tmp values */
-	int i, selectedchanged;
-	int statusline = FREE;
+  /* for user's shell commands */
+  FILE *pipe;
+  /* a temporary buffer */
+  char *token;
+  /* again the same */
+  char *tmp;
+  /* key, which contains the value entered by user */
+  int key = 0;
+  /* tmp values */
+  int i, selectedchanged;
+  int statusline = FREE;
 #ifdef getmaxyx
-	/* if ncurses, get maxx and maxy */
-	getmaxyx(stdscr, maxy, maxx);
-	if ((!getenv("MANWIDTH")) ||(manwidthChanged))
-	{
-		/* set MANWIDTH environment variable */
-		static char tmp[24];
-		snprintf(tmp, 24, "MANWIDTH=%d", maxx);
-		putenv(tmp);
-		manwidthChanged = 1;
-	}
+  /* if ncurses, get maxx and maxy */
+  getmaxyx (stdscr, maxy, maxx);
+  if ((!getenv ("MANWIDTH")) || (manwidthChanged)) {
+    /* set MANWIDTH environment variable */
+    static char tmp[24];
+    snprintf (tmp, 24, "MANWIDTH=%d", maxx);
+    putenv (tmp);
+    manwidthChanged = 1;
+  }
 #else
-	maxx = 80;
-	/* otherwise hardcode 80x25... */
-	maxy = 25;
+  maxx = 80;
+  /* otherwise hardcode 80x25... */
+  maxy = 25;
 #endif /* getmaxyx */
 
-	/* get manualpos from history.  it is set in handlemanual() */
-	manualpos = manualhistory[manualhistorylength].pos;
-	/* if there was a valid selected entry, apply it */
-	if (manualhistory[manualhistorylength].selected != -1)
-		selected = manualhistory[manualhistorylength].selected;
-	else /* otherwise scan for selected on currently viewed page */
-		rescan_selected();
+  /* get manualpos from history.  it is set in handlemanual() */
+  manualpos = manualhistory[manualhistorylength].pos;
+  /* if there was a valid selected entry, apply it */
+  if (manualhistory[manualhistorylength].selected != -1)
+    selected = manualhistory[manualhistorylength].selected;
+  else				/* otherwise scan for selected on currently viewed page */
+    rescan_selected ();
 
-	/* clean screen */
-	erase();
+  /* clean screen */
+  erase ();
 
-	/* user events loop. finish when key_quit */
-	while (1)
-	{
-		/* make getch not wait for user */
-		nodelay(stdscr, TRUE);
-		/* action -- return ERR */
-		key = pinfo_getch();
-		/* if there was nothing in buffer */
-		if (key == ERR)
-		{
-			/* then show screen */
-			if (statusline == FREE)
-				showmanualscreen();
-			wrefresh(stdscr);
-			waitforgetch();
-			key = pinfo_getch();
-		}
-		nodelay(stdscr, FALSE);
-		statusline = FREE;
-		if (winchanged)
-		{
-			handlewinch();
-			winchanged = 0;
-			key = pinfo_getch();
-		}
+  /* user events loop. finish when key_quit */
+  while (1) {
+    /* make getch not wait for user */
+    nodelay (stdscr, TRUE);
+    /* action -- return ERR */
+    key = pinfo_getch ();
+    /* if there was nothing in buffer */
+    if (key == ERR) {
+      /* then show screen */
+      if (statusline == FREE)
+	showmanualscreen ();
+      wrefresh (stdscr);
+      waitforgetch ();
+      key = pinfo_getch ();
+    }
+    nodelay (stdscr, FALSE);
+    statusline = FREE;
+    if (winchanged) {
+      handlewinch ();
+      winchanged = 0;
+      key = pinfo_getch ();
+    }
 		/************************ keyboard handling **********************************/
-		if (key != 0)
-		{
-			if ((key == keys.print_1) ||
-					(key == keys.print_2))
-			{
-				if (yesno(_("Are you sure to print?"), 0))
-					printmanual(manual, ManualLines);
-			}
+    if (key != 0) {
+      if ((key == keys.print_1) || (key == keys.print_2)) {
+	if (yesno (_("Are you sure to print?"), 0))
+	  printmanual (manual, ManualLines);
+      }
 			/*====================================================*/
-			if ((key == keys.goto_1) ||
-					(key == keys.goto_2))
-			{
-				manuallinks = (manuallink*)xrealloc(manuallinks,(ManualLinks + 1) *(sizeof(manuallink) + 3));
+      if ((key == keys.goto_1) || (key == keys.goto_2)) {
+	manuallinks =
+	  (manuallink *) xrealloc (manuallinks,
+				   (ManualLinks + 1) * (sizeof (manuallink) +
+							3));
 
-				/* get user's value */
-				attrset(bottomline);
-				move(maxy - 1, 0);
-				echo();
-				curs_set(1);
-				manuallinks[ManualLinks].name = getstring(_("Enter manual name: "));
-				curs_set(0);
-				noecho();
-				move(maxy - 1, 0);
+	/* get user's value */
+	attrset (bottomline);
+	move (maxy - 1, 0);
+	echo ();
+	curs_set (1);
+	manuallinks[ManualLinks].name = getstring (_("Enter manual name: "));
+	curs_set (0);
+	noecho ();
+	move (maxy - 1, 0);
 #ifdef HAVE_BKGDSET
-				bkgdset(' ' | bottomline);
-				clrtoeol();
-				bkgdset(0);
+	bkgdset (' ' | bottomline);
+	clrtoeol ();
+	bkgdset (0);
 #else
-				myclrtoeol();
+	myclrtoeol ();
 #endif
-				attrset(normal);
+	attrset (normal);
 
-				manuallinks[ManualLinks].carry = 0;
-				manuallinks[ManualLinks].section_mark = 0;
-				strcpy(manuallinks[ManualLinks].section, " ");
-				manuallinks[ManualLinks].line = -1;
-				manuallinks[ManualLinks].col = -1;
-				ManualLinks++;
-				return ManualLinks - 1;
-			}
+	manuallinks[ManualLinks].carry = 0;
+	manuallinks[ManualLinks].section_mark = 0;
+	strcpy (manuallinks[ManualLinks].section, " ");
+	manuallinks[ManualLinks].line = -1;
+	manuallinks[ManualLinks].col = -1;
+	ManualLinks++;
+	return ManualLinks - 1;
+      }
 			/*====================================================*/
-			if ((key == keys.goline_1) ||
-					(key == keys.goline_2))
-			{
-				long newpos;
-				/* get user's value */
-				attrset(bottomline);
-				move(maxy - 1, 0);
-				echo();
-				curs_set(1);
-				token = getstring(_("Enter line: "));
-				curs_set(0);
-				noecho();
-				move(maxy - 1, 0);
+      if ((key == keys.goline_1) || (key == keys.goline_2)) {
+	long newpos;
+	/* get user's value */
+	attrset (bottomline);
+	move (maxy - 1, 0);
+	echo ();
+	curs_set (1);
+	token = getstring (_("Enter line: "));
+	curs_set (0);
+	noecho ();
+	move (maxy - 1, 0);
 #ifdef HAVE_BKGDSET
-				bkgdset(' ' | bottomline);
-				clrtoeol();
-				bkgdset(0);
+	bkgdset (' ' | bottomline);
+	clrtoeol ();
+	bkgdset (0);
 #else
-				myclrtoeol();
+	myclrtoeol ();
 #endif
-				attrset(normal);
-				/* convert string to long.  careful with nondigit strings.  */
-				if (token)
-				{
-					int digit_val = 1;
-					for (i = 0; token[i] != 0; i++)
-					{
-						if (!isdigit(token[i]))
-							digit_val = 0;
-					}
-					/* move cursor position */
-					if (digit_val)
-					{
-						newpos = atol(token);
-						newpos -=(maxy - 1);
-						if ((newpos >= 0) &&(newpos < ManualLines -(maxy - 2)))
-							manualpos = newpos;
-						else if (newpos > 0)
-							manualpos = ManualLines -(maxy - 2);
-						else
-							manualpos = 0;
-					}
-					xfree(token);
-					token = 0;
-				}
-			}
+	attrset (normal);
+	/* convert string to long.  careful with nondigit strings.  */
+	if (token) {
+	  int digit_val = 1;
+	  for (i = 0; token[i] != 0; i++) {
+	    if (!isdigit (token[i]))
+	      digit_val = 0;
+	  }
+	  /* move cursor position */
+	  if (digit_val) {
+	    newpos = atol (token);
+	    newpos -= (maxy - 1);
+	    if ((newpos >= 0) && (newpos < ManualLines - (maxy - 2)))
+	      manualpos = newpos;
+	    else if (newpos > 0)
+	      manualpos = ManualLines - (maxy - 2);
+	    else
+	      manualpos = 0;
+	  }
+	  xfree (token);
+	  token = 0;
+	}
+      }
 			/*=====================================================*/
-			if ((key == keys.shellfeed_1) ||
-					(key == keys.shellfeed_2))
-			{
-				/* get command name */
-				curs_set(1);
-				attrset(bottomline);
-				move(maxy - 1, 0);
-				echo();
-				/* get users cmd */
-				token = getstring(_("Enter command: "));
-				noecho();
-				move(maxy - 1, 0);
+      if ((key == keys.shellfeed_1) || (key == keys.shellfeed_2)) {
+	/* get command name */
+	curs_set (1);
+	attrset (bottomline);
+	move (maxy - 1, 0);
+	echo ();
+	/* get users cmd */
+	token = getstring (_("Enter command: "));
+	noecho ();
+	move (maxy - 1, 0);
 #ifdef HAVE_BKGDSET
-				bkgdset(' ' | bottomline);
-				clrtoeol();
-				bkgdset(0);
+	bkgdset (' ' | bottomline);
+	clrtoeol ();
+	bkgdset (0);
 #else
-				myclrtoeol();
+	myclrtoeol ();
 #endif
-				attrset(normal);
+	attrset (normal);
 
-				myendwin();
-				system("clear");
-				/* open pipe */
-				pipe = popen(token, "w");
-				if (pipe != NULL)
-				{
-					/* and flush the msg to stdin */
-					for (i = 0; i < ManualLines; i++)
-						fprintf(pipe, "%s", manual[i]);
-					pclose(pipe);
-				}
-				getchar();
-				doupdate();
-				curs_set(0);
-			}
+	myendwin ();
+	system ("clear");
+	/* open pipe */
+	pipe = popen (token, "w");
+	if (pipe != NULL) {
+	  /* and flush the msg to stdin */
+	  for (i = 0; i < ManualLines; i++)
+	    fprintf (pipe, "%s", manual[i]);
+	  pclose (pipe);
+	}
+	getchar ();
+	doupdate ();
+	curs_set (0);
+      }
 			/*=====================================================*/
-			if ((key == keys.refresh_1) ||
-					(key == keys.refresh_2))
-			{
-				myendwin();
-				doupdate();
-				refresh();
-				curs_set(0);
-			}
+      if ((key == keys.refresh_1) || (key == keys.refresh_2)) {
+	myendwin ();
+	doupdate ();
+	refresh ();
+	curs_set (0);
+      }
 			/*=====================================================*/
-			/* search in current node */
-			if ((key == keys.search_1) ||
-					(key == keys.search_2))
-			{
-				int success = 0;
-				/* procedure of getting regexp string */
-				move(maxy - 1, 0);
-				attrset(bottomline);
-				echo();
-				curs_set(1);
-				/*
-				 * searchagain handler. see keys.totalsearch at mainfunction.c
-				 * for comments
-				 */
-				if (!searchagain.search)
-				{
-					token = getstring(_("Enter regexp: "));
-					strcpy(searchagain.lastsearch, token);
-					searchagain.type = key;
-				}
-				else
-				{
-					token = (char*)xmalloc(strlen(searchagain.lastsearch) + 1);
-					strcpy(token, searchagain.lastsearch);
-					searchagain.search = 0;
-				}		/* end of searchagain handler */
-				if (strlen(token) == 0)
-				{
-					xfree(token);
-					goto skip_search;
-				}
-				curs_set(0);
-				noecho();
-				move(maxy - 1, 0);
+      /* search in current node */
+      if ((key == keys.search_1) || (key == keys.search_2)) {
+	int success = 0;
+	/* procedure of getting regexp string */
+	move (maxy - 1, 0);
+	attrset (bottomline);
+	echo ();
+	curs_set (1);
+	/*
+	 * searchagain handler. see keys.totalsearch at mainfunction.c
+	 * for comments
+	 */
+	if (!searchagain.search) {
+	  token = getstring (_("Enter regexp: "));
+	  strcpy (searchagain.lastsearch, token);
+	  searchagain.type = key;
+	} else {
+	  token = (char *) xmalloc (strlen (searchagain.lastsearch) + 1);
+	  strcpy (token, searchagain.lastsearch);
+	  searchagain.search = 0;
+	}			/* end of searchagain handler */
+	if (strlen (token) == 0) {
+	  xfree (token);
+	  goto skip_search;
+	}
+	curs_set (0);
+	noecho ();
+	move (maxy - 1, 0);
 #ifdef HAVE_BKGDSET
-				bkgdset(' ' | bottomline);
-				clrtoeol();
-				bkgdset(0);
+	bkgdset (' ' | bottomline);
+	clrtoeol ();
+	bkgdset (0);
 #else
-				myclrtoeol();
+	myclrtoeol ();
 #endif
-				attrset(normal);
-				/* compile regexp expression */
-				if (pinfo_re_comp(token) != 0)
-				{
-					/* print error message */
-					attrset(bottomline);
-					mymvhline(maxy - 1, 0, ' ', maxx);
-					move(maxy - 1, 0);
-					printw(_("Invalid regular expression;"));
-					printw(" ");
-					printw(_("Press any key to continue..."));
-					getch();
-					goto skip_search;
-				}
-				/* and search for it in all subsequential lines */
-				for (i = manualpos + 1; i < ManualLines - 1; i++)
-				{
-					tmp = (char*)xmalloc(strlen(manual[i]) + strlen(manual[i + 1]) + 10);
-					/*
-					 * glue two following lines together, to find expres- sions
-					 * split up into two lines
-					 */
-					strcpy(tmp, manual[i]);
-					strcat(tmp, manual[i + 1]);
-					strip_manual(tmp);
+	attrset (normal);
+	/* compile regexp expression */
+	if (pinfo_re_comp (token) != 0) {
+	  /* print error message */
+	  attrset (bottomline);
+	  mymvhline (maxy - 1, 0, ' ', maxx);
+	  move (maxy - 1, 0);
+	  printw (_("Invalid regular expression;"));
+	  printw (" ");
+	  printw (_("Press any key to continue..."));
+	  getch ();
+	  goto skip_search;
+	}
+	/* and search for it in all subsequential lines */
+	for (i = manualpos + 1; i < ManualLines - 1; i++) {
+	  tmp =
+	    (char *) xmalloc (strlen (manual[i]) + strlen (manual[i + 1]) +
+			      10);
+	  /*
+	   * glue two following lines together, to find expres- sions
+	   * split up into two lines
+	   */
+	  strcpy (tmp, manual[i]);
+	  strcat (tmp, manual[i + 1]);
+	  strip_manual (tmp);
 
-					/* execute search */
-					if (pinfo_re_exec(tmp))
-					{		/* if found, enter here... */
-						success = 1;
-						strcpy(tmp, manual[i + 1]);
-						strip_manual(tmp);
-						/*
-						 * if it was found in the second line of the glued
-						 * expression.
-						 */
-						if (pinfo_re_exec(tmp))
-							manualpos = i + 1;
-						else
-							manualpos = i;
-						xfree(tmp);
-						break;
-					}
-					xfree(tmp);
-				}
-				xfree(token);
-				rescan_selected();
-				if (!success)
-				{
-					attrset(bottomline);
-					mvaddstr(maxy - 1, 0, _("Search string not found..."));
-					statusline = LOCKED;
-				}
+	  /* execute search */
+	  if (pinfo_re_exec (tmp)) {	/* if found, enter here... */
+	    success = 1;
+	    strcpy (tmp, manual[i + 1]);
+	    strip_manual (tmp);
+	    /*
+	     * if it was found in the second line of the glued
+	     * expression.
+	     */
+	    if (pinfo_re_exec (tmp))
+	      manualpos = i + 1;
+	    else
+	      manualpos = i;
+	    xfree (tmp);
+	    break;
+	  }
+	  xfree (tmp);
+	}
+	xfree (token);
+	rescan_selected ();
+	if (!success) {
+	  attrset (bottomline);
+	  mvaddstr (maxy - 1, 0, _("Search string not found..."));
+	  statusline = LOCKED;
+	}
 
-				manual_aftersearch = 1;
-			}
+	manual_aftersearch = 1;
+      }
 			/*=====================================================*/
-			/* search again */
-			/* see mainfunction.c for comments */
-			if ((key == keys.search_again_1) ||
-					(key == keys.search_again_2))
-			{
-				if (searchagain.type != 0)
-				{
-					searchagain.search = 1;
-					ungetch(searchagain.type);
-				}
-			}
-skip_search:
+      /* search again */
+      /* see mainfunction.c for comments */
+      if ((key == keys.search_again_1) || (key == keys.search_again_2)) {
+	if (searchagain.type != 0) {
+	  searchagain.search = 1;
+	  ungetch (searchagain.type);
+	}
+      }
+    skip_search:
 			/*=====================================================*/
-			if ((key == keys.twoup_1) ||
-					(key == keys.twoup_2))
-			{
-				ungetch(keys.up_1);
-				ungetch(keys.up_1);
-			}
+      if ((key == keys.twoup_1) || (key == keys.twoup_2)) {
+	ungetch (keys.up_1);
+	ungetch (keys.up_1);
+      }
 			/*=====================================================*/
-			if ((key == keys.up_1) ||
-					(key == keys.up_2))
-			{
-				selectedchanged = 0;
-				/* if there are links at all */
-				if (selected != -1)
-				{
-					/* if one is selected */
-					if (selected > 0)
-						/*
-						 * scan for a next visible one, which is above the
-						 * current.
-						 */
-						for (i = selected - 1; i >= 0; i--)
-						{
-							if ((manuallinks[i].line >= manualpos) &&
-									(manuallinks[i].line < manualpos +(maxy - 1)))
-							{
-								selected = i;
-								selectedchanged = 1;
-								break;
-							}
-						}
-				}
-				/* if new link not found */
-				if (!selectedchanged)
-				{
-					/* move one position up */
-					if (manualpos >= 1)
-						manualpos--;
-					/* and scan for selected again :) */
-					for (i = 0; i < ManualLinks; i++)
-					{
-						if (manuallinks[i].line == manualpos)
-						{
-							selected = i;
-							break;
-						}
-					}
-				}
-			}
+      if ((key == keys.up_1) || (key == keys.up_2)) {
+	selectedchanged = 0;
+	/* if there are links at all */
+	if (selected != -1) {
+	  /* if one is selected */
+	  if (selected > 0)
+	    /*
+	     * scan for a next visible one, which is above the
+	     * current.
+	     */
+	    for (i = selected - 1; i >= 0; i--) {
+	      if ((manuallinks[i].line >= manualpos) &&
+		  (manuallinks[i].line < manualpos + (maxy - 1))) {
+		selected = i;
+		selectedchanged = 1;
+		break;
+	      }
+	    }
+	}
+	/* if new link not found */
+	if (!selectedchanged) {
+	  /* move one position up */
+	  if (manualpos >= 1)
+	    manualpos--;
+	  /* and scan for selected again :) */
+	  for (i = 0; i < ManualLinks; i++) {
+	    if (manuallinks[i].line == manualpos) {
+	      selected = i;
+	      break;
+	    }
+	  }
+	}
+      }
 			/*=====================================================*/
-			if ((key == keys.end_1) ||
-					(key == keys.end_2))
-			{
-				manualpos = ManualLines -(maxy - 1);
-				if (manualpos < 0)
-					manualpos = 0;
-				selected = ManualLinks - 1;
-			}
+      if ((key == keys.end_1) || (key == keys.end_2)) {
+	manualpos = ManualLines - (maxy - 1);
+	if (manualpos < 0)
+	  manualpos = 0;
+	selected = ManualLinks - 1;
+      }
 			/*=====================================================*/
-			if ((key == keys.nextnode_1) ||
-					(key == keys.nextnode_2))
-			{
-				for (i = manualpos + 1; i < ManualLines; i++)
-				{
-					if (manual[i][1] == 8)
-					{
-						manualpos = i;
-						break;
-					}
-				}
-			}
+      if ((key == keys.nextnode_1) || (key == keys.nextnode_2)) {
+	for (i = manualpos + 1; i < ManualLines; i++) {
+	  if (manual[i][1] == 8) {
+	    manualpos = i;
+	    break;
+	  }
+	}
+      }
 			/*=====================================================*/
-			if ((key == keys.prevnode_1) ||
-					(key == keys.prevnode_2))
-			{
-				for (i = manualpos - 1; i > 0; i--)
-				{
-					if (manual[i][1] == 8)
-					{
-						manualpos = i;
-						break;
-					}
-				}
-			}
+      if ((key == keys.prevnode_1) || (key == keys.prevnode_2)) {
+	for (i = manualpos - 1; i > 0; i--) {
+	  if (manual[i][1] == 8) {
+	    manualpos = i;
+	    break;
+	  }
+	}
+      }
 			/*=====================================================*/
-			if ((key == keys.pgdn_1) ||
-					(key == keys.pgdn_2))
-			{
-				if (manualpos +(maxy - 2) < ManualLines -(maxy - 1))
-				{
-					manualpos +=(maxy - 2);
-					rescan_selected();
-				}
-				else if (ManualLines -(maxy - 1) >= 1)
-				{
-					manualpos = ManualLines -(maxy - 1);
-					selected = ManualLinks - 1;
-				}
-				else
-				{
-					manualpos = 0;
-					selected = ManualLinks - 1;
-				}
-			}
+      if ((key == keys.pgdn_1) || (key == keys.pgdn_2)) {
+	if (manualpos + (maxy - 2) < ManualLines - (maxy - 1)) {
+	  manualpos += (maxy - 2);
+	  rescan_selected ();
+	} else if (ManualLines - (maxy - 1) >= 1) {
+	  manualpos = ManualLines - (maxy - 1);
+	  selected = ManualLinks - 1;
+	} else {
+	  manualpos = 0;
+	  selected = ManualLinks - 1;
+	}
+      }
 			/*=====================================================*/
-			if ((key == keys.home_1) || (key == keys.home_2))
-			{
-				manualpos = 0;
-				rescan_selected();
-			}
+      if ((key == keys.home_1) || (key == keys.home_2)) {
+	manualpos = 0;
+	rescan_selected ();
+      }
 			/*=====================================================*/
-			if ((key == keys.pgup_1) | (key == keys.pgup_2))
-			{
-				if (manualpos >(maxy - 1))
-					manualpos -=(maxy - 1);
-				else
-					manualpos = 0;
-				rescan_selected();
-			}
+      if ((key == keys.pgup_1) | (key == keys.pgup_2)) {
+	if (manualpos > (maxy - 1))
+	  manualpos -= (maxy - 1);
+	else
+	  manualpos = 0;
+	rescan_selected ();
+      }
 			/*=====================================================*/
-			/* top+bottom line \|/ */
-			/* see keys.up for comments */
-			if ((key == keys.twodown_1) || (key == keys.twodown_2))
-			{
-				ungetch(keys.down_1);
-				ungetch(keys.down_1);
-			}
+      /* top+bottom line \|/ */
+      /* see keys.up for comments */
+      if ((key == keys.twodown_1) || (key == keys.twodown_2)) {
+	ungetch (keys.down_1);
+	ungetch (keys.down_1);
+      }
 			/*=====================================================*/
-			/* top+bottom line \|/ */
-			/* see keys.up for comments */
-			if ((key == keys.down_1) || (key == keys.down_2))
-			{
-				selectedchanged = 0;
-				if (selected < ManualLinks)
-					for (i = selected + 1; i < ManualLinks; i++)
-					{
-						if ((manuallinks[i].line >= manualpos) &&
-								(manuallinks[i].line < manualpos +(maxy - 2)))
-						{
-							selected = i;
-							selectedchanged = 1;
-							break;
-						}
-					}
-				if (!selectedchanged)
-				{
-					if (manualpos < ManualLines -(maxy - 1))
-						manualpos++;
-					if (selected < ManualLinks)
-						for (i = selected + 1; i < ManualLinks; i++)
-						{
-							if ((manuallinks[i].line >= manualpos) &&
-									(manuallinks[i].line < manualpos +(maxy - 2)))
-							{
-								selected = i;
-								selectedchanged = 1;
-								break;
-							}
-						}
-				}
-			}
+      /* top+bottom line \|/ */
+      /* see keys.up for comments */
+      if ((key == keys.down_1) || (key == keys.down_2)) {
+	selectedchanged = 0;
+	if (selected < ManualLinks)
+	  for (i = selected + 1; i < ManualLinks; i++) {
+	    if ((manuallinks[i].line >= manualpos) &&
+		(manuallinks[i].line < manualpos + (maxy - 2))) {
+	      selected = i;
+	      selectedchanged = 1;
+	      break;
+	    }
+	  }
+	if (!selectedchanged) {
+	  if (manualpos < ManualLines - (maxy - 1))
+	    manualpos++;
+	  if (selected < ManualLinks)
+	    for (i = selected + 1; i < ManualLinks; i++) {
+	      if ((manuallinks[i].line >= manualpos) &&
+		  (manuallinks[i].line < manualpos + (maxy - 2))) {
+		selected = i;
+		selectedchanged = 1;
+		break;
+	      }
+	    }
+	}
+      }
 			/*=====================================================*/
-			if ((key == keys.back_1) ||
-					(key == keys.back_2))
-			{
-				if (manualhistorylength)
-					return -2;
-			}
+      if ((key == keys.back_1) || (key == keys.back_2)) {
+	if (manualhistorylength)
+	  return -2;
+      }
 			/*=====================================================*/
-			if ((key == keys.followlink_1) ||
-					(key == keys.followlink_2))
-			{
-				manualhistory[manualhistorylength].pos = manualpos;
-				manualhistory[manualhistorylength].selected = selected;
-				if (selected >= 0)
-					if ((manuallinks[selected].line >= manualpos) &&
-							(manuallinks[selected].line < manualpos +(maxy - 1)))
-					{
-						if (!strncmp(manuallinks[selected].section, "HTTPSECTION", 11))
-						{
-							int buflen;
-							char *tempbuf = (char*)xmalloc(1024);
-							strcpy(tempbuf, httpviewer);
-							strcat(tempbuf, " ");
-							buflen = strlen(tempbuf);
-							construct_manualname(tempbuf + buflen, selected);
-							myendwin();
-							system(tempbuf);
-							doupdate();
-							xfree(tempbuf);
-						}
-						else if (!strncmp(manuallinks[selected].section, "FTPSECTION", 10))
-						{
-							int buflen;
-							char *tempbuf = (char*)xmalloc(1024);
-							strcpy(tempbuf, ftpviewer);
-							strcat(tempbuf, " ");
-							buflen = strlen(tempbuf);
-							construct_manualname(tempbuf + buflen, selected);
-							myendwin();
-							system(tempbuf);
-							doupdate();
-							xfree(tempbuf);
-						}
-						else if (!strncmp(manuallinks[selected].section, "MAILSECTION", 11))
-						{
-							int buflen;
-							char *tempbuf = (char*)xmalloc(1024);
-							strcpy(tempbuf, maileditor);
-							strcat(tempbuf, " ");
-							buflen = strlen(tempbuf);
-							construct_manualname(tempbuf + buflen, selected);
-							myendwin();
-							system(tempbuf);
-							doupdate();
-							xfree(tempbuf);
-						}
-						else
-						{
-							return selected;
-						}
-					}
-			}
+      if ((key == keys.followlink_1) || (key == keys.followlink_2)) {
+	manualhistory[manualhistorylength].pos = manualpos;
+	manualhistory[manualhistorylength].selected = selected;
+	if (selected >= 0)
+	  if ((manuallinks[selected].line >= manualpos) &&
+	      (manuallinks[selected].line < manualpos + (maxy - 1))) {
+	    if (!strncmp (manuallinks[selected].section, "HTTPSECTION", 11)) {
+	      int buflen;
+	      char *tempbuf = (char *) xmalloc (1024);
+	      strcpy (tempbuf, httpviewer);
+	      strcat (tempbuf, " ");
+	      buflen = strlen (tempbuf);
+	      construct_manualname (tempbuf + buflen, selected);
+	      myendwin ();
+	      system (tempbuf);
+	      doupdate ();
+	      xfree (tempbuf);
+	    } else
+	      if (!strncmp (manuallinks[selected].section, "FTPSECTION", 10))
+	    {
+	      int buflen;
+	      char *tempbuf = (char *) xmalloc (1024);
+	      strcpy (tempbuf, ftpviewer);
+	      strcat (tempbuf, " ");
+	      buflen = strlen (tempbuf);
+	      construct_manualname (tempbuf + buflen, selected);
+	      myendwin ();
+	      system (tempbuf);
+	      doupdate ();
+	      xfree (tempbuf);
+	    } else
+	      if (!strncmp (manuallinks[selected].section, "MAILSECTION", 11))
+	    {
+	      int buflen;
+	      char *tempbuf = (char *) xmalloc (1024);
+	      strcpy (tempbuf, maileditor);
+	      strcat (tempbuf, " ");
+	      buflen = strlen (tempbuf);
+	      construct_manualname (tempbuf + buflen, selected);
+	      myendwin ();
+	      system (tempbuf);
+	      doupdate ();
+	      xfree (tempbuf);
+	    } else {
+	      return selected;
+	    }
+	  }
+      }
 			/*=====================================================*/
-			if ((key==keys.left_1)||(key==keys.left_2))
-				if (manualcol>0) manualcol--;
-			if ((key==keys.right_1)||(key==keys.right_2))
-				manualcol++;
+      if ((key == keys.left_1) || (key == keys.left_2))
+	if (manualcol > 0)
+	  manualcol--;
+      if ((key == keys.right_1) || (key == keys.right_2))
+	manualcol++;
 			/*=====================================================*/
 			/********* end of keyboard handling *********************/
 			/********* mouse handler ********************************/
 #ifdef NCURSES_MOUSE_VERSION
-			if (key == KEY_MOUSE)
-			{
-				MEVENT mouse;
-				int done = 0;
-				getmouse(&mouse);
-				if (mouse.bstate == BUTTON1_CLICKED)
-				{
-					if ((mouse.y > 0) &&(mouse.y < maxy - 1))
-					{
-						for (i = selected; i > 0; i--)
-						{
-							if (manuallinks[i].line == mouse.y + manualpos - 1)
-							{
-								if (manuallinks[i].col <= mouse.x - 1)
-								{
-									if (manuallinks[i].col + strlen(manuallinks[i].name) >= mouse.x - 1)
-									{
-										selected = i;
-										done = 1;
-										break;
-									}
-								}
-							}
-						}
-						if (!done)
-							for (i = selected; i < ManualLinks; i++)
-							{
-								if (manuallinks[i].line == mouse.y + manualpos - 1)
-								{
-									if (manuallinks[i].col <= mouse.x - 1)
-									{
-										if (manuallinks[i].col + strlen(manuallinks[i].name) >= mouse.x - 1)
-										{
-											selected = i;
-											done = 1;
-											break;
-										}
-									}
-								}
-							}
-					}		/* end: mouse not on top/bottom line */
-					if (mouse.y == 0)
-						ungetch(keys.up_1);
-					if (mouse.y == maxy - 1)
-						ungetch(keys.down_1);
-				}		/* end: button_clicked */
-				if (mouse.bstate == BUTTON1_DOUBLE_CLICKED)
-				{
-					if ((mouse.y > 0) &&(mouse.y < maxy - 1))
-					{
-						for (i = selected; i > 0; i--)
-						{
-							if (manuallinks[i].line == mouse.y + manualpos - 1)
-							{
-								if (manuallinks[i].col <= mouse.x - 1)
-								{
-									if (manuallinks[i].col + strlen(manuallinks[i].name) >= mouse.x - 1)
-									{
-										selected = i;
-										done = 1;
-										break;
-									}
-								}
-							}
-						}
-						if (!done)
-							for (i = selected; i < ManualLinks; i++)
-							{
-								if (manuallinks[i].line == mouse.y + manualpos - 1)
-								{
-									if (manuallinks[i].col <= mouse.x - 1)
-									{
-										if (manuallinks[i].col + strlen(manuallinks[i].name) >= mouse.x - 1)
-										{
-											selected = i;
-											done = 1;
-											break;
-										}
-									}
-								}
-							}
-						if (done)
-							ungetch(keys.followlink_1);
-					}		/* end: mouse not at top/bottom line */
-					if (mouse.y == 0)
-						ungetch(keys.pgup_1);
-					if (mouse.y == maxy - 1)
-						ungetch(keys.pgdn_1);
-				}		/* end: button doubleclicked */
-			}
-#endif
-			/*****************************************************************************/
+      if (key == KEY_MOUSE) {
+	MEVENT mouse;
+	int done = 0;
+	getmouse (&mouse);
+	if (mouse.bstate == BUTTON1_CLICKED) {
+	  if ((mouse.y > 0) && (mouse.y < maxy - 1)) {
+	    for (i = selected; i > 0; i--) {
+	      if (manuallinks[i].line == mouse.y + manualpos - 1) {
+		if (manuallinks[i].col <= mouse.x - 1) {
+		  if (manuallinks[i].col + strlen (manuallinks[i].name) >=
+		      mouse.x - 1) {
+		    selected = i;
+		    done = 1;
+		    break;
+		  }
 		}
-		if ((key == keys.quit_2) ||(key == keys.quit_1))
-		{
-			if (!ConfirmQuit)
-				break;
-			else
-			{
-				if (yesno(_("Are you sure to quit?"), QuitConfirmDefault))
-					break;
-			}
+	      }
+	    }
+	    if (!done)
+	      for (i = selected; i < ManualLinks; i++) {
+		if (manuallinks[i].line == mouse.y + manualpos - 1) {
+		  if (manuallinks[i].col <= mouse.x - 1) {
+		    if (manuallinks[i].col + strlen (manuallinks[i].name) >=
+			mouse.x - 1) {
+		      selected = i;
+		      done = 1;
+		      break;
+		    }
+		  }
 		}
-	}
-	closeprogram();
-	return -1;
+	      }
+	  }			/* end: mouse not on top/bottom line */
+	  if (mouse.y == 0)
+	    ungetch (keys.up_1);
+	  if (mouse.y == maxy - 1)
+	    ungetch (keys.down_1);
+	}			/* end: button_clicked */
+	if (mouse.bstate == BUTTON1_DOUBLE_CLICKED) {
+	  if ((mouse.y > 0) && (mouse.y < maxy - 1)) {
+	    for (i = selected; i > 0; i--) {
+	      if (manuallinks[i].line == mouse.y + manualpos - 1) {
+		if (manuallinks[i].col <= mouse.x - 1) {
+		  if (manuallinks[i].col + strlen (manuallinks[i].name) >=
+		      mouse.x - 1) {
+		    selected = i;
+		    done = 1;
+		    break;
+		  }
+		}
+	      }
+	    }
+	    if (!done)
+	      for (i = selected; i < ManualLinks; i++) {
+		if (manuallinks[i].line == mouse.y + manualpos - 1) {
+		  if (manuallinks[i].col <= mouse.x - 1) {
+		    if (manuallinks[i].col + strlen (manuallinks[i].name) >=
+			mouse.x - 1) {
+		      selected = i;
+		      done = 1;
+		      break;
+		    }
+		  }
+		}
+	      }
+	    if (done)
+	      ungetch (keys.followlink_1);
+	  }			/* end: mouse not at top/bottom line */
+	  if (mouse.y == 0)
+	    ungetch (keys.pgup_1);
+	  if (mouse.y == maxy - 1)
+	    ungetch (keys.pgdn_1);
+	}			/* end: button doubleclicked */
+      }
+#endif
+			/*****************************************************************************/
+    }
+    if ((key == keys.quit_2) || (key == keys.quit_1)) {
+      if (!ConfirmQuit)
+	break;
+      else {
+	if (yesno (_("Are you sure to quit?"), QuitConfirmDefault))
+	  break;
+      }
+    }
+  }
+  closeprogram ();
+  return -1;
 }
 
 void
 /* scan for some hyperlink, available on current screen */
-rescan_selected()
+rescan_selected ()
 {
-	int i;
-	for (i = 0; i < ManualLinks; i++)
-	{
-		if ((manuallinks[i].line >= manualpos) &&
-				(manuallinks[i].line < manualpos +(maxy - 1)))
-		{
-			selected = i;
-			break;
-		}
-	}
+  int i;
+  for (i = 0; i < ManualLinks; i++) {
+    if ((manuallinks[i].line >= manualpos) &&
+	(manuallinks[i].line < manualpos + (maxy - 1))) {
+      selected = i;
+      break;
+    }
+  }
 }
 
 /*
@@ -1568,295 +1414,282 @@
  * columns. But remember, that *man contains also nonprinteble characters for
  * boldface etc.
  */
-char *getmancolumn(char *man, int mancol)
+char *
+getmancolumn (char *man, int mancol)
 {
-	if (mancol==0) return man;
-	while (mancol>0)
-	{ if (*(man+1) == 8) man+=3; else man++; mancol--; }
-	return man;
+  if (mancol == 0)
+    return man;
+  while (mancol > 0) {
+    if (*(man + 1) == 8)
+      man += 3;
+    else
+      man++;
+    mancol--;
+  }
+  return man;
 }
 
 /* show the currently visible part of manpage */
 void
-showmanualscreen()
+showmanualscreen ()
 {
-	int i;
+  int i;
 #ifdef getmaxyx
-	/* refresh maxy, maxx values */
-	getmaxyx(stdscr, maxy, maxx);
+  /* refresh maxy, maxx values */
+  getmaxyx (stdscr, maxy, maxx);
 #endif
-	attrset(normal);
-	/* print all visible text lines */
-	for (i = manualpos;(i < manualpos +(maxy - 2)) &&(i < ManualLines); i++)
-	{
-		int len = strlen(manual[i]);
-		if (len)
-			manual[i][len - 1] = ' ';
-		/* if we have something to display */
-		if (len>manualcol)
-			mvaddstr_manual((i - manualpos) + 1, 0, getmancolumn(manual[i],manualcol));
-		else	/* otherwise, just clear the line to eol */
-		{
-			move((i - manualpos) + 1, 0);
-			bkgdset(' ' | normal);
-			clrtoeol();
-		}
-		if (len)
-			manual[i][len - 1] = '\n';
-	}
+  attrset (normal);
+  /* print all visible text lines */
+  for (i = manualpos; (i < manualpos + (maxy - 2)) && (i < ManualLines); i++) {
+    int len = strlen (manual[i]);
+    if (len)
+      manual[i][len - 1] = ' ';
+    /* if we have something to display */
+    if (len > manualcol)
+      mvaddstr_manual ((i - manualpos) + 1, 0,
+		       getmancolumn (manual[i], manualcol));
+    else {			/* otherwise, just clear the line to eol */
+
+      move ((i - manualpos) + 1, 0);
+      bkgdset (' ' | normal);
+      clrtoeol ();
+    }
+    if (len)
+      manual[i][len - 1] = '\n';
+  }
 #ifdef HAVE_BKGDSET
-	bkgdset(' ' | normal);
+  bkgdset (' ' | normal);
 #endif
-	/* and clear to bottom */
-	clrtobot();
+  /* and clear to bottom */
+  clrtobot ();
 #ifdef HAVE_BKGDSET
-	bkgdset(0);
+  bkgdset (0);
 #endif
-	attrset(normal);
-	/* add highlights */
-	add_highlights();
-	/* draw bottomline with user informations */
-	attrset(bottomline);
-	mymvhline(0, 0, ' ', maxx);
-	mymvhline(maxy - 1, 0, ' ', maxx);
-	move(maxy - 1, 0);
-	if (((manualpos + maxy) < ManualLines) &&(ManualLines > maxy - 2))
-		printw(_("Viewing line %d/%d, %d%%"),(manualpos - 1 + maxy), ManualLines,((manualpos - 1 + maxy) * 100) / ManualLines);
-	else
-		printw(_("Viewing line %d/%d, 100%%"), ManualLines, ManualLines);
-	move(maxy - 1, 0);
-	attrset(normal);
+  attrset (normal);
+  /* add highlights */
+  add_highlights ();
+  /* draw bottomline with user informations */
+  attrset (bottomline);
+  mymvhline (0, 0, ' ', maxx);
+  mymvhline (maxy - 1, 0, ' ', maxx);
+  move (maxy - 1, 0);
+  if (((manualpos + maxy) < ManualLines) && (ManualLines > maxy - 2))
+    printw (_("Viewing line %d/%d, %d%%"), (manualpos - 1 + maxy),
+	    ManualLines, ((manualpos - 1 + maxy) * 100) / ManualLines);
+  else
+    printw (_("Viewing line %d/%d, 100%%"), ManualLines, ManualLines);
+  move (maxy - 1, 0);
+  attrset (normal);
 }
 
 void
 /* print a manual line */
-mvaddstr_manual(int y, int x, char *str)
+mvaddstr_manual (int y, int x, char *str)
 {
-	int i, j, len = strlen(str);
-	static char strippedline[1024];
-	if ((h_regexp_num) ||(manual_aftersearch))
-	{
-		memcpy(strippedline, str, len + 1);
-		strip_manual(strippedline);
-	}
-	move(y, x);
-	for (i = 0; i < len; i++)
-	{
-		if ((i > 0) &&(i < len - 1))
-		{
-			/* handle bold highlight */
-			if ((str[i] == 8) &&(str[i - 1] == '_'))
-			{
-				attrset(manualbold);
-				addch(str[i] & 0xff);
-				addch(str[i + 1] & 0xff);
-				attrset(normal);
-				i++;
-				goto label_skip_other;
-			}
-			/*
-			 * if it wasn't bold, check italic, before default, unhighlighted
-			 * line will be painted.  We can do it only if i<len-3.
-			 */
-			else if (i < len - 3)
-				goto label_check_italic;
-			else /* unhighlighted */
-			{
-				addch(str[i] & 0xff);
-				goto label_skip_other;
-			}
-		}
-		/* italic highlight */
-		if (i < len - 3)
-		{
-label_check_italic:
-			if ((str[i + 1] == 8) &&(str[i + 2] == str[i]))
-			{
-				attrset(manualitalic);
-				addch(str[i] & 0xff);
-				i += 2;
-				attrset(normal);
-			}
-			else
-			{
-				addch(str[i] & 0xff);
-			}
-		}
-label_skip_other:;
-	}
+  int i, j, len = strlen (str);
+  static char strippedline[1024];
+  if ((h_regexp_num) || (manual_aftersearch)) {
+    memcpy (strippedline, str, len + 1);
+    strip_manual (strippedline);
+  }
+  move (y, x);
+  for (i = 0; i < len; i++) {
+    if ((i > 0) && (i < len - 1)) {
+      /* handle bold highlight */
+      if ((str[i] == 8) && (str[i - 1] == '_')) {
+	attrset (manualbold);
+	addch (str[i] & 0xff);
+	addch (str[i + 1] & 0xff);
+	attrset (normal);
+	i++;
+	goto label_skip_other;
+      }
+      /*
+       * if it wasn't bold, check italic, before default, unhighlighted
+       * line will be painted.  We can do it only if i<len-3.
+       */
+      else if (i < len - 3)
+	goto label_check_italic;
+      else {			/* unhighlighted */
+
+	addch (str[i] & 0xff);
+	goto label_skip_other;
+      }
+    }
+    /* italic highlight */
+    if (i < len - 3) {
+    label_check_italic:
+      if ((str[i + 1] == 8) && (str[i + 2] == str[i])) {
+	attrset (manualitalic);
+	addch (str[i] & 0xff);
+	i += 2;
+	attrset (normal);
+      } else {
+	addch (str[i] & 0xff);
+      }
+    }
+  label_skip_other:;
+  }
 #ifdef HAVE_BKGDSET
-	bkgdset(' ' | normal);
-	clrtoeol();
-	bkgdset(0);
+  bkgdset (' ' | normal);
+  clrtoeol ();
+  bkgdset (0);
 #else
-	myclrtoeol();
+  myclrtoeol ();
 #endif
-	attrset(normal);
+  attrset (normal);
 #ifndef ___DONT_USE_REGEXP_SEARCH___
-	if ((h_regexp_num) ||(manual_aftersearch))
-	{
-		regmatch_t pmatch[1];
-		int maxregexp = manual_aftersearch ? h_regexp_num + 1 : h_regexp_num;
+  if ((h_regexp_num) || (manual_aftersearch)) {
+    regmatch_t pmatch[1];
+    int maxregexp = manual_aftersearch ? h_regexp_num + 1 : h_regexp_num;
 
-		/* if it is after search, then we have user defined regexps+
-		   a searched regexp to highlight */
-		for (j = 0; j < maxregexp; j++)
-		{
-			char *tmpstr = strippedline;
-			while (!regexec(&h_regexp[j], tmpstr, 1, pmatch, 0))
-			{
-				int n = pmatch[0].rm_eo - pmatch[0].rm_so, k;
-				int rx = pmatch[0].rm_so + tmpstr - strippedline;
-				int curY, curX;
-				char tmpchr;
-				getyx(stdscr, curY, curX);
-				tmpchr = strippedline[rx + n];
-				strippedline[rx + n] = 0;
-				attrset(searchhighlight);
-				mvaddstr(y, rx, strippedline + rx);
-				attrset(normal);
-				strippedline[rx + n] = tmpchr;
-				tmpstr = tmpstr + pmatch[0].rm_eo;
-				move(curY, curX);
-			}
-		}
-	}
+    /* if it is after search, then we have user defined regexps+
+       a searched regexp to highlight */
+    for (j = 0; j < maxregexp; j++) {
+      char *tmpstr = strippedline;
+      while (!regexec (&h_regexp[j], tmpstr, 1, pmatch, 0)) {
+	int n = pmatch[0].rm_eo - pmatch[0].rm_so, k;
+	int rx = pmatch[0].rm_so + tmpstr - strippedline;
+	int curY, curX;
+	char tmpchr;
+	getyx (stdscr, curY, curX);
+	tmpchr = strippedline[rx + n];
+	strippedline[rx + n] = 0;
+	attrset (searchhighlight);
+	mvaddstr (y, rx, strippedline + rx);
+	attrset (normal);
+	strippedline[rx + n] = tmpchr;
+	tmpstr = tmpstr + pmatch[0].rm_eo;
+	move (curY, curX);
+      }
+    }
+  }
 #endif
 }
 
 /* add hyperobject highlights */
 void
-add_highlights()
+add_highlights ()
 {
-	int i;
-	/* scan through the visible objects */
-	for (i = 0; i < ManualLinks; i++)
-	{
-		/* if the object is on the current screen */
-		if ((manuallinks[i].line >= manualpos) &&
-				(manuallinks[i].line < manualpos +(maxy - 2)))
-		{
-			/* if it's a simple man link */
-			if (manuallinks[i].section_mark < HTTPSECTION)
-			{
-				if (i == selected)
-					attrset(noteselected);
-				else
-					attrset(note);
+  int i;
+  /* scan through the visible objects */
+  for (i = 0; i < ManualLinks; i++) {
+    /* if the object is on the current screen */
+    if ((manuallinks[i].line >= manualpos) &&
+	(manuallinks[i].line < manualpos + (maxy - 2))) {
+      /* if it's a simple man link */
+      if (manuallinks[i].section_mark < HTTPSECTION) {
+	if (i == selected)
+	  attrset (noteselected);
+	else
+	  attrset (note);
 
-				/* if it's a link split into two lines */
-				if (manuallinks[i].carry == 1)
-				{
-					int x, y, ltline = manuallinks[i].line - 1;
-					/* find the line, where starts the split link */
-					char *tmpstr = strdup(manual[ltline]);
-					int ltlinelen;
-					char *newlinemark;
-					/* remove boldfaces&italics */
-					strip_manual(tmpstr);
-					/* calculate the length of this line */
-					ltlinelen = strlen(tmpstr);
-					/* set this var to the last character of this line(to an '\n')*/
-					newlinemark = tmpstr + ltlinelen - 1;
-					getyx(stdscr, y, x);
-					if (y > 2)
-					{
+	/* if it's a link split into two lines */
+	if (manuallinks[i].carry == 1) {
+	  int x, y, ltline = manuallinks[i].line - 1;
+	  /* find the line, where starts the split link */
+	  char *tmpstr = strdup (manual[ltline]);
+	  int ltlinelen;
+	  char *newlinemark;
+	  /* remove boldfaces&italics */
+	  strip_manual (tmpstr);
+	  /* calculate the length of this line */
+	  ltlinelen = strlen (tmpstr);
+	  /* set this var to the last character of this line(to an '\n') */
+	  newlinemark = tmpstr + ltlinelen - 1;
+	  getyx (stdscr, y, x);
+	  if (y > 2) {
 #define TestCh tmpstr[ltlinelen]
-						/* skip \n, -, and the at least one char... */
-						if (ltlinelen > 2)
-							ltlinelen -= 3;
+	    /* skip \n, -, and the at least one char... */
+	    if (ltlinelen > 2)
+	      ltlinelen -= 3;
 
-						/*
-						 * positon ltlinelen to the beginning of the link to be
-						 * highlighted
-						 */
-						while ((isalpha(TestCh)) ||(TestCh == '.') ||(TestCh == '_'))
-							ltlinelen--;
+	    /*
+	     * positon ltlinelen to the beginning of the link to be
+	     * highlighted
+	     */
+	    while ((isalpha (TestCh)) || (TestCh == '.') || (TestCh == '_'))
+	      ltlinelen--;
 
-						*newlinemark = 0;
-						/* OK, link horizontally fits into screen */
-						if (ltlinelen>manualcol)
-							mvaddstr(manuallinks[i].line - manualpos + 1 - 1,
-									ltlinelen-manualcol, &tmpstr[ltlinelen]);
-						/*
-						 * we cut here a part of the link, and draw only what's
-						 * visible on screen
-						 */
-						else if (ltlinelen+strlen(&tmpstr[ltlinelen])>manualcol)
-							mvaddstr(manuallinks[i].line - manualpos + 1 - 1,
-									ltlinelen-manualcol, &tmpstr[manualcol]);
+	    *newlinemark = 0;
+	    /* OK, link horizontally fits into screen */
+	    if (ltlinelen > manualcol)
+	      mvaddstr (manuallinks[i].line - manualpos + 1 - 1,
+			ltlinelen - manualcol, &tmpstr[ltlinelen]);
+	    /*
+	     * we cut here a part of the link, and draw only what's
+	     * visible on screen
+	     */
+	    else if (ltlinelen + strlen (&tmpstr[ltlinelen]) > manualcol)
+	      mvaddstr (manuallinks[i].line - manualpos + 1 - 1,
+			ltlinelen - manualcol, &tmpstr[manualcol]);
 
-						*newlinemark = '\n';
+	    *newlinemark = '\n';
 #undef TestCh
-					}
-					xfree(tmpstr);
-					move(y, x);
-				}
-			}
-			else
-			{
-				if (i == selected)
-					attrset(urlselected);
-				else
-					attrset(url);
-				if (manuallinks[i].carry == 1)
-				{
-					int x, y, ltline = manuallinks[i].line + 1;
-					/*
-					 * the split part to find is lying down
-					 * to the line defined in manlinks(line+1)
-					 */
-					char *tmpstr = strdup(manual[ltline]);
-					char *wsk = tmpstr, *wskend;
-					strip_manual(tmpstr);
-					/* skip spaces */
-					while (isspace(*wsk))
-						wsk++;
-					/* find the end of url */
-					wskend = findurlend(wsk);
-					/* add end of string, and print */
-					*wskend = 0;
-					if (wsk-tmpstr<manualcol)
-						mvaddstr(manuallinks[i].line - manualpos + 2, wsk - tmpstr - manualcol, wsk);
-					else if (wskend-tmpstr<manualcol)
-						mvaddstr(manuallinks[i].line - manualpos + 2, 0, wsk+manualcol);
-				}
-			}
-			if (manuallinks[i].col>manualcol)
-				mvaddstr(1 + manuallinks[i].line - manualpos,
-						manuallinks[i].col - manualcol, manuallinks[i].name);
-			else if (manuallinks[i].col+strlen(manuallinks[i].name)>manualcol)
-				mvaddstr(1 + manuallinks[i].line - manualpos, 0,
-						manuallinks[i].name+(manualcol-manuallinks[i].col));
-			attrset(normal);
-		}
+	  }
+	  xfree (tmpstr);
+	  move (y, x);
 	}
+      } else {
+	if (i == selected)
+	  attrset (urlselected);
+	else
+	  attrset (url);
+	if (manuallinks[i].carry == 1) {
+	  int x, y, ltline = manuallinks[i].line + 1;
+	  /*
+	   * the split part to find is lying down
+	   * to the line defined in manlinks(line+1)
+	   */
+	  char *tmpstr = strdup (manual[ltline]);
+	  char *wsk = tmpstr, *wskend;
+	  strip_manual (tmpstr);
+	  /* skip spaces */
+	  while (isspace (*wsk))
+	    wsk++;
+	  /* find the end of url */
+	  wskend = findurlend (wsk);
+	  /* add end of string, and print */
+	  *wskend = 0;
+	  if (wsk - tmpstr < manualcol)
+	    mvaddstr (manuallinks[i].line - manualpos + 2,
+		      wsk - tmpstr - manualcol, wsk);
+	  else if (wskend - tmpstr < manualcol)
+	    mvaddstr (manuallinks[i].line - manualpos + 2, 0,
+		      wsk + manualcol);
+	}
+      }
+      if (manuallinks[i].col > manualcol)
+	mvaddstr (1 + manuallinks[i].line - manualpos,
+		  manuallinks[i].col - manualcol, manuallinks[i].name);
+      else if (manuallinks[i].col + strlen (manuallinks[i].name) > manualcol)
+	mvaddstr (1 + manuallinks[i].line - manualpos, 0,
+		  manuallinks[i].name + (manualcol - manuallinks[i].col));
+      attrset (normal);
+    }
+  }
 }
 
 /* all variables passed here must have, say 10 bytes of overrun buffer */
 void
-strip_manual(char *buf)
+strip_manual (char *buf)
 {
-	int i, tmpcnt = 0;
-	/* in general, tmp buffer will hold a line stripped from highlight marks */
-	for (i = 0; buf[i] != 0; i++)
-	{
-		/* so we strip the line from "'_',0x8" -- bold marks */
-		if ((buf[i] == '_') &&(buf[i + 1] == 8))
-		{
-			buf[tmpcnt++] = buf[i + 2];
-			i += 2;
-		}
-		/* and 0x8 -- italic marks */
-		else if ((buf[i + 1] == 8) &&(buf[i + 2] == buf[i]))
-		{
-			buf[tmpcnt++] = buf[i];
-			i += 2;
-		}
-		else /* else we don't do anything */
-			buf[tmpcnt++] = buf[i];
-	}
-	buf[tmpcnt] = 0;
+  int i, tmpcnt = 0;
+  /* in general, tmp buffer will hold a line stripped from highlight marks */
+  for (i = 0; buf[i] != 0; i++) {
+    /* so we strip the line from "'_',0x8" -- bold marks */
+    if ((buf[i] == '_') && (buf[i + 1] == 8)) {
+      buf[tmpcnt++] = buf[i + 2];
+      i += 2;
+    }
+    /* and 0x8 -- italic marks */
+    else if ((buf[i + 1] == 8) && (buf[i + 2] == buf[i])) {
+      buf[tmpcnt++] = buf[i];
+      i += 2;
+    } else			/* else we don't do anything */
+      buf[tmpcnt++] = buf[i];
+  }
+  buf[tmpcnt] = 0;
 }
 
 /*
@@ -1864,57 +1697,52 @@
  * manual sections.
  */
 int
-is_in_manlinks(char *in, char *find)
+is_in_manlinks (char *in, char *find)
 {
-	char *copy, *token;
-	const char delimiters[] = ":";
+  char *copy, *token;
+  const char delimiters[] = ":";
 
-	copy = strdup(in);
-	if ((strcmp(find,(token = strtok(copy, delimiters))) != 0))
-	{
-		while ((token = strtok(NULL, delimiters)))
-		{
+  copy = strdup (in);
+  if ((strcmp (find, (token = strtok (copy, delimiters))) != 0)) {
+    while ((token = strtok (NULL, delimiters))) {
 #ifdef HAVE_STRCASECMP
-			if (!strcasecmp(token, find))
+      if (!strcasecmp (token, find))
 #else
-				if (!strcmp(token, find))
+      if (!strcmp (token, find))
 #endif
-				{
-					xfree((void *) copy);
-					return 0;
-				}
-		}
-		xfree((void *) copy);
-		return 1;
-	}
-	else
-	{
-		xfree((void *) copy);
-		return 0;
-	}
+      {
+	xfree ((void *) copy);
+	return 0;
+      }
+    }
+    xfree ((void *) copy);
+    return 1;
+  } else {
+    xfree ((void *) copy);
+    return 0;
+  }
 }
 
 void
-printmanual(char **Message, long Lines)
+printmanual (char **Message, long Lines)
 {
-	/* printer fd */
-	FILE *prnFD;
-	int i;
+  /* printer fd */
+  FILE *prnFD;
+  int i;
 
-	prnFD = popen(printutility, "w");
+  prnFD = popen (printutility, "w");
 
-	/* scan through all lines */
-	for (i = 0; i < Lines; i++)
-	{
-		fprintf(prnFD, "\r%s", Message[i]);
-	}
-	pclose(prnFD);
+  /* scan through all lines */
+  for (i = 0; i < Lines; i++) {
+    fprintf (prnFD, "\r%s", Message[i]);
+  }
+  pclose (prnFD);
 }
 
 int
-ishyphen(unsigned char ch)
+ishyphen (unsigned char ch)
 {
-	if ((ch == '-') ||(ch == SOFT_HYPHEN))
-		return 1;
-	return 0;
+  if ((ch == '-') || (ch == SOFT_HYPHEN))
+    return 1;
+  return 0;
 }

Modified: pinfo/branches/cxx/src/menu_and_note_utils.cxx
===================================================================
--- pinfo/branches/cxx/src/menu_and_note_utils.cxx	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/menu_and_note_utils.cxx	2005-08-26 08:41:40 UTC (rev 41)
@@ -21,168 +21,153 @@
 
 #include "common_includes.h"
 
-RCSID("$Id$")
+RCSID ("$Id$")
 
-void
-freeindirect()
+     void freeindirect ()
 {
-	if (indirect)
-	{
-		xfree(indirect);
-		indirect = 0;
-	}
-	IndirectEntries = 0;
+  if (indirect) {
+    xfree (indirect);
+    indirect = 0;
+  }
+  IndirectEntries = 0;
 }
 
 void
-freetagtable()
+freetagtable ()
 {
-	if (tag_table)
-	{
-		xfree(tag_table);
-		tag_table = 0;
-	}
-	TagTableEntries = 0;
+  if (tag_table) {
+    xfree (tag_table);
+    tag_table = 0;
+  }
+  TagTableEntries = 0;
 }
 
 
 /* read the `Next:' header entry */
 void
-getnextnode(char *type, char *node)
+getnextnode (char *type, char *node)
 {
-	int j, coloncount = 0;
+  int j, coloncount = 0;
 #ifndef ___USE_STATIC___
-	char *tmp = xmalloc(strlen(type) + 1);
+  char *tmp = xmalloc (strlen (type) + 1);
 #else
-	static char tmp[1024 + 1];
+  static char tmp[1024 + 1];
 #endif
-	char *wsk;
-	strcpy(tmp, type);
-	wsk = strstr(tmp, "Next: ");
-	if (wsk == 0)
-	{
-		strcpy(node, ERRNODE);
-		return;
-	}
-	for (j = 6; wsk[j] != 0; j++)
-	{
-		if ((wsk[j] == ',') ||(wsk[j] == '\n'))
-		{
-			wsk[j] = 0;
-			strcpy(node, wsk + 6);
+  char *wsk;
+  strcpy (tmp, type);
+  wsk = strstr (tmp, "Next: ");
+  if (wsk == 0) {
+    strcpy (node, ERRNODE);
+    return;
+  }
+  for (j = 6; wsk[j] != 0; j++) {
+    if ((wsk[j] == ',') || (wsk[j] == '\n')) {
+      wsk[j] = 0;
+      strcpy (node, wsk + 6);
 #ifndef ___USE_STATIC___
-			xfree(tmp);
+      xfree (tmp);
 #endif
-			return;
-		}
-	}
+      return;
+    }
+  }
 #ifndef ___USE_STATIC___
-	xfree(tmp);
+  xfree (tmp);
 #endif
 }
 
 /* read the `Prev:' header entry */
 void
-getprevnode(char *type, char *node)
+getprevnode (char *type, char *node)
 {
-	int j, coloncount = 0;
+  int j, coloncount = 0;
 #ifndef ___USE_STATIC___
-	char *tmp = xmalloc(strlen(type) + 1);
+  char *tmp = xmalloc (strlen (type) + 1);
 #else
-	static char tmp[1024 + 1];
+  static char tmp[1024 + 1];
 #endif
-	char *wsk;
-	strcpy(tmp, type);
-	wsk = strstr(tmp, "Prev: ");
-	if (wsk == 0)
-	{
-		strcpy(node, ERRNODE);
-		return;
-	}
-	for (j = 6; wsk[j] != 0; j++)
-	{
-		if ((wsk[j] == ',') ||(wsk[j] == '\n'))
-		{
-			wsk[j] = 0;
-			strcpy(node, wsk + 6);
+  char *wsk;
+  strcpy (tmp, type);
+  wsk = strstr (tmp, "Prev: ");
+  if (wsk == 0) {
+    strcpy (node, ERRNODE);
+    return;
+  }
+  for (j = 6; wsk[j] != 0; j++) {
+    if ((wsk[j] == ',') || (wsk[j] == '\n')) {
+      wsk[j] = 0;
+      strcpy (node, wsk + 6);
 #ifndef ___USE_STATIC___
-			xfree(tmp);
+      xfree (tmp);
 #endif
-			return;
-		}
-	}
+      return;
+    }
+  }
 #ifndef ___USE_STATIC___
-	xfree(tmp);
+  xfree (tmp);
 #endif
 }
 
 /* read the `Up:' header entry */
 void
-getupnode(char *type, char *node)
+getupnode (char *type, char *node)
 {
-	int j, coloncount = 0;
+  int j, coloncount = 0;
 #ifndef ___USE_STATIC___
-	char *tmp = xmalloc(strlen(type) + 1);
+  char *tmp = xmalloc (strlen (type) + 1);
 #else
-	static char tmp[1024 + 1];
+  static char tmp[1024 + 1];
 #endif
-	char *wsk;
-	strcpy(tmp, type);
-	wsk = strstr(tmp, "Up: ");
-	if (wsk == 0)
-	{
-		strcpy(node, ERRNODE);
-		return;
-	}
-	for (j = 4; wsk[j] != 0; j++)
-	{
-		if ((wsk[j] == ',') ||(wsk[j] == '\n'))
-		{
-			wsk[j] = 0;
-			strcpy(node, wsk + 4);
+  char *wsk;
+  strcpy (tmp, type);
+  wsk = strstr (tmp, "Up: ");
+  if (wsk == 0) {
+    strcpy (node, ERRNODE);
+    return;
+  }
+  for (j = 4; wsk[j] != 0; j++) {
+    if ((wsk[j] == ',') || (wsk[j] == '\n')) {
+      wsk[j] = 0;
+      strcpy (node, wsk + 4);
 #ifndef ___USE_STATIC___
-			xfree(tmp);
+      xfree (tmp);
 #endif
-			return;
-		}
-	}
+      return;
+    }
+  }
 #ifndef ___USE_STATIC___
-	xfree(tmp);
+  xfree (tmp);
 #endif
 }
 
 
 /* read the `Node:' header entry */
 void
-getnodename(char *type, char *node)
+getnodename (char *type, char *node)
 {
-	int j, coloncount = 0;
+  int j, coloncount = 0;
 #ifndef ___USE_STATIC___
-	char *tmp = xmalloc(strlen(type) + 1);
+  char *tmp = xmalloc (strlen (type) + 1);
 #else
-	static char tmp[1024 + 1];
+  static char tmp[1024 + 1];
 #endif
-	char *wsk;
-	strcpy(tmp, type);
-	wsk = strstr(tmp, "Node: ");
-	if (wsk == 0)
-	{
-		strcpy(node, ERRNODE);
-		return;
-	}
-	for (j = 6; wsk[j] != 0; j++)
-	{
-		if ((wsk[j] == ',') ||(wsk[j] == '\n'))
-		{
-			wsk[j] = 0;
-			strcpy(node, wsk + 6);
+  char *wsk;
+  strcpy (tmp, type);
+  wsk = strstr (tmp, "Node: ");
+  if (wsk == 0) {
+    strcpy (node, ERRNODE);
+    return;
+  }
+  for (j = 6; wsk[j] != 0; j++) {
+    if ((wsk[j] == ',') || (wsk[j] == '\n')) {
+      wsk[j] = 0;
+      strcpy (node, wsk + 6);
 #ifndef ___USE_STATIC___
-			xfree(tmp);
+      xfree (tmp);
 #endif
-			return;
-		}
-	}
+      return;
+    }
+  }
 #ifndef ___USE_STATIC___
-	xfree(tmp);
+  xfree (tmp);
 #endif
 }

Modified: pinfo/branches/cxx/src/parse_config.cxx
===================================================================
--- pinfo/branches/cxx/src/parse_config.cxx	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/parse_config.cxx	2005-08-26 08:41:40 UTC (rev 41)
@@ -21,969 +21,813 @@
 
 #include "common_includes.h"
 
-RCSID("$Id$")
-
+RCSID ("$Id$")
 #include <ctype.h>
-
 #define COLOR_DEFAULT -1	/* mutt uses this was for transparency */
+     regex_t *h_regexp = 0;	/* regexps to highlight */
+     int h_regexp_num = 0;	/* number of those regexps */
 
-regex_t *h_regexp = 0;	/* regexps to highlight */
-int h_regexp_num = 0;	/* number of those regexps */
+     extern int use_apropos;
+     extern int CutManHeaders;
+     extern int DontHandleWithoutTagTable;
+     extern int use_manual;
+     extern int use_raw_filename;
+     extern int quote_ignored;
+     extern char *httpviewer;
+     extern char *ftpviewer;
+     extern char *maileditor;
+     extern char *manlinks;
+     extern char *ignoredmacros;
 
-extern int use_apropos;
-extern int CutManHeaders;
-extern int DontHandleWithoutTagTable;
-extern int use_manual;
-extern int use_raw_filename;
-extern int quote_ignored;
-extern char *httpviewer;
-extern char *ftpviewer;
-extern char *maileditor;
-extern char *manlinks;
-extern char *ignoredmacros;
-
-struct keybindings keys =
-{
-	's',		'S',		/* regexp search */
-	'/',		'/',		/* regexp search, this page */
-	'g',		'G',		/* goto node */
-	'p',		'P',		/* previous node */
-	'n',		'N',		/* next node */
-	'u',		'U',		/* up node */
-	KEY_UP,		'k',		/* up one line */
+     struct keybindings keys = {
+       's', 'S',		/* regexp search */
+       '/', '/',		/* regexp search, this page */
+       'g', 'G',		/* goto node */
+       'p', 'P',		/* previous node */
+       'n', 'N',		/* next node */
+       'u', 'U',		/* up node */
+       KEY_UP, 'k',		/* up one line */
 #ifdef HAVE_KEY_END
-	KEY_END
-#else	/* HAVE_KEY_END */
-	'E'
-#endif	/* HAVE_KEY_END */
-		,'e',			/* end */
-	KEY_NPAGE,	' ',		/* down one page */
-	KEY_HOME,	'H',		/* home */
-	KEY_PPAGE,	'-',		/* up one page */
-	KEY_DOWN,	'j',		/* down one line */
-	't',		'T',		/* top */
-	KEY_LEFT,	'h',		/* back */
-	KEY_RIGHT,	'\n',		/* follow link */
-	'Q',		'q',		/* quit */
-	12,			'~',		/* refresh screen -- 12 is C-L */
-	'!',		'!',		/* shell feed */
-	'D',		'd',		/* goto dir page */
-	0,			' ',		/* pgdn_auto */
-	0,			'-',		/* pgup_auto */
-	'f',		0,			/* search again */
-	'l',		0,			/* go to line */
-	KEY_IC,		0,			/* two lines up */
-	KEY_DC,		1,			/* two lines down */
-	']',		0, 			/* print */
-	'4',		0,			/* scroll left */
-	'6',		0			/* scroll right */
-};
+       KEY_END
+#else /* HAVE_KEY_END */
+       'E'
+#endif /* HAVE_KEY_END */
+	 , 'e',			/* end */
+       KEY_NPAGE, ' ',		/* down one page */
+       KEY_HOME, 'H',		/* home */
+       KEY_PPAGE, '-',		/* up one page */
+       KEY_DOWN, 'j',		/* down one line */
+       't', 'T',		/* top */
+       KEY_LEFT, 'h',		/* back */
+       KEY_RIGHT, '\n',		/* follow link */
+       'Q', 'q',		/* quit */
+       12, '~',			/* refresh screen -- 12 is C-L */
+       '!', '!',		/* shell feed */
+       'D', 'd',		/* goto dir page */
+       0, ' ',			/* pgdn_auto */
+       0, '-',			/* pgup_auto */
+       'f', 0,			/* search again */
+       'l', 0,			/* go to line */
+       KEY_IC, 0,		/* two lines up */
+       KEY_DC, 1,		/* two lines down */
+       ']', 0,			/* print */
+       '4', 0,			/* scroll left */
+       '6', 0			/* scroll right */
+     };
 
 #ifndef NO_COLOR_CURSES
-struct colours cols =
-{
-	COLOR_WHITE,	COLOR_BLACK,	NO_BOLD,	NO_BLINK,	/* normal */
-	COLOR_GREEN,	COLOR_WHITE,	BOLD,		NO_BLINK,	/* selected menu */
-	COLOR_GREEN,	COLOR_BLACK,	BOLD,		NO_BLINK,	/* menu */
-	COLOR_BLUE,		COLOR_WHITE,	BOLD,		NO_BLINK,	/* selected note */
-	COLOR_BLUE,		COLOR_BLACK,	BOLD,		NO_BLINK,	/* note */
-	COLOR_GREEN,	COLOR_BLUE,		BOLD,		NO_BLINK,	/* top line */
-	COLOR_GREEN,	COLOR_BLUE,		BOLD,		NO_BLINK,	/* bottom line */
-	COLOR_YELLOW,	COLOR_BLACK,	BOLD,		NO_BLINK,	/* manual bold */
-	COLOR_WHITE,	COLOR_BLACK,	BOLD,		NO_BLINK,	/* manual italic */
-	COLOR_MAGENTA,	COLOR_BLACK,	BOLD,		NO_BLINK,	/* url */
-	COLOR_MAGENTA,	COLOR_GREEN,	NO_BOLD,	NO_BLINK,	/* url selected */
-	COLOR_WHITE,	COLOR_BLACK,	BOLD,		NO_BLINK,	/* info highlight(quoted text) */
-	COLOR_YELLOW,	COLOR_BLACK,	BOLD,		NO_BLINK	/* search highlight */
+struct colours cols = {
+  COLOR_WHITE, COLOR_BLACK, NO_BOLD, NO_BLINK,	/* normal */
+  COLOR_GREEN, COLOR_WHITE, BOLD, NO_BLINK,	/* selected menu */
+  COLOR_GREEN, COLOR_BLACK, BOLD, NO_BLINK,	/* menu */
+  COLOR_BLUE, COLOR_WHITE, BOLD, NO_BLINK,	/* selected note */
+  COLOR_BLUE, COLOR_BLACK, BOLD, NO_BLINK,	/* note */
+  COLOR_GREEN, COLOR_BLUE, BOLD, NO_BLINK,	/* top line */
+  COLOR_GREEN, COLOR_BLUE, BOLD, NO_BLINK,	/* bottom line */
+  COLOR_YELLOW, COLOR_BLACK, BOLD, NO_BLINK,	/* manual bold */
+  COLOR_WHITE, COLOR_BLACK, BOLD, NO_BLINK,	/* manual italic */
+  COLOR_MAGENTA, COLOR_BLACK, BOLD, NO_BLINK,	/* url */
+  COLOR_MAGENTA, COLOR_GREEN, NO_BOLD, NO_BLINK,	/* url selected */
+  COLOR_WHITE, COLOR_BLACK, BOLD, NO_BLINK,	/* info highlight(quoted text) */
+  COLOR_YELLOW, COLOR_BLACK, BOLD, NO_BLINK	/* search highlight */
 };
 #endif /* NO_COLOR_CURSES */
 
 int
-parse_config(void)
+parse_config (void)
 {
-	char config_file_name[256], *home = 0;
-	char line[256];
-	FILE *f;
-	int line_number = 0;
-	if (rcfile != NULL)
-	{
-		f = fopen(rcfile, "r");
-		if (f == NULL)
-		{
-			fprintf(stderr, _("Can't open config file!\n"));
-			exit(1);
-		}
+  char config_file_name[256], *home = 0;
+  char line[256];
+  FILE *f;
+  int line_number = 0;
+  if (rcfile != NULL) {
+    f = fopen (rcfile, "r");
+    if (f == NULL) {
+      fprintf (stderr, _("Can't open config file!\n"));
+      exit (1);
+    }
+  } else {
+    if (rcfile == NULL)
+      if (getenv ("HOME"))
+	home = strdup (getenv ("HOME"));
+      else
+	home = 0;
+    if (home) {
+      strcpy (config_file_name, home);
+      strcat (config_file_name, "/.pinforc");
+      if (!(f = fopen (config_file_name, "r"))) {
+	strcpy (config_file_name, CONFIGDIR);
+	if (!(f = fopen (config_file_name, "r"))) {
+	  free (home);		/* home is nonzero; see if (home) above */
+	  return 0;		/* no config file available */
 	}
-	else
-	{
-		if (rcfile == NULL)
-			if (getenv("HOME"))
-				home = strdup(getenv("HOME"));
-			else
-				home = 0;
-		if (home)
-		{
-			strcpy(config_file_name, home);
-			strcat(config_file_name, "/.pinforc");
-			if (!(f = fopen(config_file_name, "r")))
-			{
-				strcpy(config_file_name, CONFIGDIR);
-				if (!(f = fopen(config_file_name, "r")))
-				{
-					free(home);	/* home is nonzero; see if (home) above */
-					return 0;	/* no config file available */
-				}
-			}
-		}
-		else
-		{
-			strcpy(config_file_name, CONFIGDIR);
-			if (!(f = fopen(config_file_name, "r")))
-			{
-				/* free(home);    home is unallocated; see if (home) above */
-				return 0;
-			}
-		}
-	}
-	while (!feof(f))
-	{
-		if (!(fgets(line, 255, f)))
-		{
-			fclose(f);
-			if (home)
-				free(home);
-			return 0;
-		}
-		if (parse_line(line))
-		{
-			line_number++;
-			fclose(f);
-			fprintf(stderr, _("Parse error in config file on line %d\n"), line_number);
-			exit(1);
-		}
-		else
-			line_number++;
-	}
-
-	fclose(f);
-	if (home)
-		free(home);
+      }
+    } else {
+      strcpy (config_file_name, CONFIGDIR);
+      if (!(f = fopen (config_file_name, "r"))) {
+	/* free(home);    home is unallocated; see if (home) above */
 	return 0;
+      }
+    }
+  }
+  while (!feof (f)) {
+    if (!(fgets (line, 255, f))) {
+      fclose (f);
+      if (home)
+	free (home);
+      return 0;
+    }
+    if (parse_line (line)) {
+      line_number++;
+      fclose (f);
+      fprintf (stderr, _("Parse error in config file on line %d\n"),
+	       line_number);
+      exit (1);
+    } else
+      line_number++;
+  }
+
+  fclose (f);
+  if (home)
+    free (home);
+  return 0;
 }
 
 int
-parse_line(char *line)
+parse_line (char *line)
 {
-	char *temp;
-	int *fore = NULL;
-	int *key = NULL;
+  char *temp;
+  int *fore = NULL;
+  int *key = NULL;
 #ifdef HAS_CURSES
-	int *back = NULL, *bold = NULL, *blink = NULL, *p = NULL;
-	int i;
+  int *back = NULL, *bold = NULL, *blink = NULL, *p = NULL;
+  int i;
 #endif /* HAS_CURSES */
 
-	if (line[0] == '#')
-		return 0;
+  if (line[0] == '#')
+    return 0;
 
-	if (!(temp = skip_whitespace(strtok(line, "="))))
-		return 1;
+  if (!(temp = skip_whitespace (strtok (line, "="))))
+    return 1;
 
-	temp = str_toupper(temp);
+  temp = str_toupper (temp);
 
-	if (strlen(temp) < 1)
-		return 0;
+  if (strlen (temp) < 1)
+    return 0;
 
-	if (!strncmp(temp, "KEY", 3))
-	{
-		fore = NULL;
-		if (!strncmp(temp + 4, "TOTALSEARCH_1", 13))
-			key = &keys.totalsearch_1;
-		else if (!strncmp(temp + 4, "PGDN_AUTO_1", 11))
-			key = &keys.pgdn_auto_1;
-		else if (!strncmp(temp + 4, "PGDN_AUTO_2", 11))
-			key = &keys.pgdn_auto_2;
-		else if (!strncmp(temp + 4, "PGUP_AUTO_1", 11))
-			key = &keys.pgup_auto_1;
-		else if (!strncmp(temp + 4, "PGUP_AUTO_2", 11))
-			key = &keys.pgup_auto_2;
-		else if (!strncmp(temp + 4, "TOTALSEARCH_2", 13))
-			key = &keys.totalsearch_2;
-		else if (!strncmp(temp + 4, "SEARCH_AGAIN_1", 14))
-			key = &keys.search_again_1;
-		else if (!strncmp(temp + 4, "SEARCH_AGAIN_2", 14))
-			key = &keys.search_again_2;
-		else if (!strncmp(temp + 4, "SEARCH_1", 8))
-			key = &keys.search_1;
-		else if (!strncmp(temp + 4, "SEARCH_2", 8))
-			key = &keys.search_2;
-		else if (!strncmp(temp + 4, "GOTO_1", 6))
-			key = &keys.goto_1;
-		else if (!strncmp(temp + 4, "GOTO_2", 6))
-			key = &keys.goto_2;
-		else if (!strncmp(temp + 4, "PREVNODE_1", 10))
-			key = &keys.prevnode_1;
-		else if (!strncmp(temp + 4, "PREVNODE_2", 10))
-			key = &keys.prevnode_2;
-		else if (!strncmp(temp + 4, "NEXTNODE_1", 10))
-			key = &keys.nextnode_1;
-		else if (!strncmp(temp + 4, "NEXTNODE_2", 10))
-			key = &keys.nextnode_2;
-		else if (!strncmp(temp + 4, "UPNODE_1", 8))
-			key = &keys.upnode_1;
-		else if (!strncmp(temp + 4, "UPNODE_2", 8))
-			key = &keys.upnode_2;
-		else if (!strncmp(temp + 4, "UP_1", 4))
-			key = &keys.up_1;
-		else if (!strncmp(temp + 4, "UP_2", 4))
-			key = &keys.up_2;
-		else if (!strncmp(temp + 4, "TWOUP_1", 7))
-			key = &keys.twoup_1;
-		else if (!strncmp(temp + 4, "TWOUP_2", 7))
-			key = &keys.twoup_2;
-		else if (!strncmp(temp + 4, "END_1", 5))
-			key = &keys.end_1;
-		else if (!strncmp(temp + 4, "END_2", 5))
-			key = &keys.end_2;
-		else if (!strncmp(temp + 4, "PGDN_1", 6))
-			key = &keys.pgdn_1;
-		else if (!strncmp(temp + 4, "PGDN_2", 6))
-			key = &keys.pgdn_2;
-		else if (!strncmp(temp + 4, "HOME_1", 6))
-			key = &keys.home_1;
-		else if (!strncmp(temp + 4, "HOME_2", 6))
-			key = &keys.home_2;
-		else if (!strncmp(temp + 4, "PGUP_1", 6))
-			key = &keys.pgup_1;
-		else if (!strncmp(temp + 4, "PGUP_2", 6))
-			key = &keys.pgup_2;
-		else if (!strncmp(temp + 4, "DOWN_1", 6))
-			key = &keys.down_1;
-		else if (!strncmp(temp + 4, "DOWN_2", 6))
-			key = &keys.down_2;
-		else if (!strncmp(temp + 4, "TWODOWN_1", 9))
-			key = &keys.twodown_1;
-		else if (!strncmp(temp + 4, "TWODOWN_2", 9))
-			key = &keys.twodown_2;
-		else if (!strncmp(temp + 4, "TOP_1", 5))
-			key = &keys.top_1;
-		else if (!strncmp(temp + 4, "TOP_2", 5))
-			key = &keys.top_2;
-		else if (!strncmp(temp + 4, "BACK_1", 6))
-			key = &keys.back_1;
-		else if (!strncmp(temp + 4, "BACK_2", 6))
-			key = &keys.back_2;
-		else if (!strncmp(temp + 4, "FOLLOWLINK_1", 12))
-			key = &keys.followlink_1;
-		else if (!strncmp(temp + 4, "FOLLOWLINK_2", 12))
-			key = &keys.followlink_2;
-		else if (!strncmp(temp + 4, "REFRESH_1", 9))
-			key = &keys.refresh_1;
-		else if (!strncmp(temp + 4, "REFRESH_2", 9))
-			key = &keys.refresh_2;
-		else if (!strncmp(temp + 4, "SHELLFEED_1", 11))
-			key = &keys.shellfeed_1;
-		else if (!strncmp(temp + 4, "SHELLFEED_2", 11))
-			key = &keys.shellfeed_2;
-		else if (!strncmp(temp + 4, "QUIT_1", 6))
-			key = &keys.quit_1;
-		else if (!strncmp(temp + 4, "QUIT_2", 6))
-			key = &keys.quit_2;
-		else if (!strncmp(temp + 4, "DIRPAGE_1", 9))
-			key = &keys.dirpage_1;
-		else if (!strncmp(temp + 4, "DIRPAGE_2", 9))
-			key = &keys.dirpage_2;
-		else if (!strncmp(temp + 4, "GOLINE_1", 8))
-			key = &keys.goline_1;
-		else if (!strncmp(temp + 4, "GOLINE_2", 8))
-			key = &keys.goline_2;
-		else if (!strncmp(temp + 4, "PRINT_1", 7))
-			key = &keys.print_1;
-		else if (!strncmp(temp + 4, "PRINT_2", 7))
-			key = &keys.print_2;
-		else if (!strncmp(temp + 4, "LEFT_1", 6))
-			key = &keys.left_1;
-		else if (!strncmp(temp + 4, "LEFT_2", 6))
-			key = &keys.left_2;
-		else if (!strncmp(temp + 4, "RIGHT_1", 7))
-			key = &keys.right_1;
-		else if (!strncmp(temp + 4, "RIGHT_2", 7))
-			key = &keys.right_2;
-		else
-			return 1;
-	}
+  if (!strncmp (temp, "KEY", 3)) {
+    fore = NULL;
+    if (!strncmp (temp + 4, "TOTALSEARCH_1", 13))
+      key = &keys.totalsearch_1;
+    else if (!strncmp (temp + 4, "PGDN_AUTO_1", 11))
+      key = &keys.pgdn_auto_1;
+    else if (!strncmp (temp + 4, "PGDN_AUTO_2", 11))
+      key = &keys.pgdn_auto_2;
+    else if (!strncmp (temp + 4, "PGUP_AUTO_1", 11))
+      key = &keys.pgup_auto_1;
+    else if (!strncmp (temp + 4, "PGUP_AUTO_2", 11))
+      key = &keys.pgup_auto_2;
+    else if (!strncmp (temp + 4, "TOTALSEARCH_2", 13))
+      key = &keys.totalsearch_2;
+    else if (!strncmp (temp + 4, "SEARCH_AGAIN_1", 14))
+      key = &keys.search_again_1;
+    else if (!strncmp (temp + 4, "SEARCH_AGAIN_2", 14))
+      key = &keys.search_again_2;
+    else if (!strncmp (temp + 4, "SEARCH_1", 8))
+      key = &keys.search_1;
+    else if (!strncmp (temp + 4, "SEARCH_2", 8))
+      key = &keys.search_2;
+    else if (!strncmp (temp + 4, "GOTO_1", 6))
+      key = &keys.goto_1;
+    else if (!strncmp (temp + 4, "GOTO_2", 6))
+      key = &keys.goto_2;
+    else if (!strncmp (temp + 4, "PREVNODE_1", 10))
+      key = &keys.prevnode_1;
+    else if (!strncmp (temp + 4, "PREVNODE_2", 10))
+      key = &keys.prevnode_2;
+    else if (!strncmp (temp + 4, "NEXTNODE_1", 10))
+      key = &keys.nextnode_1;
+    else if (!strncmp (temp + 4, "NEXTNODE_2", 10))
+      key = &keys.nextnode_2;
+    else if (!strncmp (temp + 4, "UPNODE_1", 8))
+      key = &keys.upnode_1;
+    else if (!strncmp (temp + 4, "UPNODE_2", 8))
+      key = &keys.upnode_2;
+    else if (!strncmp (temp + 4, "UP_1", 4))
+      key = &keys.up_1;
+    else if (!strncmp (temp + 4, "UP_2", 4))
+      key = &keys.up_2;
+    else if (!strncmp (temp + 4, "TWOUP_1", 7))
+      key = &keys.twoup_1;
+    else if (!strncmp (temp + 4, "TWOUP_2", 7))
+      key = &keys.twoup_2;
+    else if (!strncmp (temp + 4, "END_1", 5))
+      key = &keys.end_1;
+    else if (!strncmp (temp + 4, "END_2", 5))
+      key = &keys.end_2;
+    else if (!strncmp (temp + 4, "PGDN_1", 6))
+      key = &keys.pgdn_1;
+    else if (!strncmp (temp + 4, "PGDN_2", 6))
+      key = &keys.pgdn_2;
+    else if (!strncmp (temp + 4, "HOME_1", 6))
+      key = &keys.home_1;
+    else if (!strncmp (temp + 4, "HOME_2", 6))
+      key = &keys.home_2;
+    else if (!strncmp (temp + 4, "PGUP_1", 6))
+      key = &keys.pgup_1;
+    else if (!strncmp (temp + 4, "PGUP_2", 6))
+      key = &keys.pgup_2;
+    else if (!strncmp (temp + 4, "DOWN_1", 6))
+      key = &keys.down_1;
+    else if (!strncmp (temp + 4, "DOWN_2", 6))
+      key = &keys.down_2;
+    else if (!strncmp (temp + 4, "TWODOWN_1", 9))
+      key = &keys.twodown_1;
+    else if (!strncmp (temp + 4, "TWODOWN_2", 9))
+      key = &keys.twodown_2;
+    else if (!strncmp (temp + 4, "TOP_1", 5))
+      key = &keys.top_1;
+    else if (!strncmp (temp + 4, "TOP_2", 5))
+      key = &keys.top_2;
+    else if (!strncmp (temp + 4, "BACK_1", 6))
+      key = &keys.back_1;
+    else if (!strncmp (temp + 4, "BACK_2", 6))
+      key = &keys.back_2;
+    else if (!strncmp (temp + 4, "FOLLOWLINK_1", 12))
+      key = &keys.followlink_1;
+    else if (!strncmp (temp + 4, "FOLLOWLINK_2", 12))
+      key = &keys.followlink_2;
+    else if (!strncmp (temp + 4, "REFRESH_1", 9))
+      key = &keys.refresh_1;
+    else if (!strncmp (temp + 4, "REFRESH_2", 9))
+      key = &keys.refresh_2;
+    else if (!strncmp (temp + 4, "SHELLFEED_1", 11))
+      key = &keys.shellfeed_1;
+    else if (!strncmp (temp + 4, "SHELLFEED_2", 11))
+      key = &keys.shellfeed_2;
+    else if (!strncmp (temp + 4, "QUIT_1", 6))
+      key = &keys.quit_1;
+    else if (!strncmp (temp + 4, "QUIT_2", 6))
+      key = &keys.quit_2;
+    else if (!strncmp (temp + 4, "DIRPAGE_1", 9))
+      key = &keys.dirpage_1;
+    else if (!strncmp (temp + 4, "DIRPAGE_2", 9))
+      key = &keys.dirpage_2;
+    else if (!strncmp (temp + 4, "GOLINE_1", 8))
+      key = &keys.goline_1;
+    else if (!strncmp (temp + 4, "GOLINE_2", 8))
+      key = &keys.goline_2;
+    else if (!strncmp (temp + 4, "PRINT_1", 7))
+      key = &keys.print_1;
+    else if (!strncmp (temp + 4, "PRINT_2", 7))
+      key = &keys.print_2;
+    else if (!strncmp (temp + 4, "LEFT_1", 6))
+      key = &keys.left_1;
+    else if (!strncmp (temp + 4, "LEFT_2", 6))
+      key = &keys.left_2;
+    else if (!strncmp (temp + 4, "RIGHT_1", 7))
+      key = &keys.right_1;
+    else if (!strncmp (temp + 4, "RIGHT_2", 7))
+      key = &keys.right_2;
+    else
+      return 1;
+  }
 #ifndef NO_COLOR_CURSES
-	else if (!strncmp(temp, "COL", 3))
-	{
-		key = NULL;
-		if (!strncmp(temp + 4, "NORMAL", 6))
-		{
-			fore = &cols.normal_fore;
-			back = &cols.normal_back;
-			bold = &cols.normal_bold;
-			blink = &cols.normal_blink;
-		}
-		else if (!strncmp(temp + 4, "MENUSELECTED", 12))
-		{
-			fore = &cols.menuselected_fore;
-			back = &cols.menuselected_back;
-			bold = &cols.menuselected_bold;
-			blink = &cols.menuselected_blink;
-		}
-		else if (!strncmp(temp + 4, "MENU", 4))
-		{
-			fore = &cols.menu_fore;
-			back = &cols.menu_back;
-			bold = &cols.menu_bold;
-			blink = &cols.menu_blink;
-		}
-		else if (!strncmp(temp + 4, "NOTESELECTED", 12))
-		{
-			fore = &cols.noteselected_fore;
-			back = &cols.noteselected_back;
-			bold = &cols.noteselected_bold;
-			blink = &cols.noteselected_blink;
-		}
-		else if (!strncmp(temp + 4, "NOTE", 4))
-		{
-			fore = &cols.note_fore;
-			back = &cols.note_back;
-			bold = &cols.note_bold;
-			blink = &cols.note_blink;
-		}
-		else if (!strncmp(temp + 4, "TOPLINE", 7))
-		{
-			fore = &cols.topline_fore;
-			back = &cols.topline_back;
-			bold = &cols.topline_bold;
-			blink = &cols.topline_blink;
-		}
-		else if (!strncmp(temp + 4, "BOTTOMLINE", 10))
-		{
-			fore = &cols.bottomline_fore;
-			back = &cols.bottomline_back;
-			bold = &cols.bottomline_bold;
-			blink = &cols.bottomline_blink;
-		}
-		else if (!strncmp(temp + 4, "MANUALBOLD", 10))
-		{
-			fore = &cols.manualbold_fore;
-			back = &cols.manualbold_back;
-			bold = &cols.manualbold_bold;
-			blink = &cols.manualbold_blink;
-		}
-		else if (!strncmp(temp + 4, "MANUALITALIC", 12))
-		{
-			fore = &cols.manualitalic_fore;
-			back = &cols.manualitalic_back;
-			bold = &cols.manualitalic_bold;
-			blink = &cols.manualitalic_blink;
-		}
-		else if (!strncmp(temp + 4, "URLSELECTED", 11))
-		{
-			fore = &cols.urlselected_fore;
-			back = &cols.urlselected_back;
-			bold = &cols.urlselected_bold;
-			blink = &cols.urlselected_blink;
-		}
-		else if (!strncmp(temp + 4, "URL", 3))
-		{
-			fore = &cols.url_fore;
-			back = &cols.url_back;
-			bold = &cols.url_bold;
-			blink = &cols.url_blink;
-		}
-		else if (!strncmp(temp + 4, "INFOHIGHLIGHT", 13))
-		{
-			fore = &cols.infohighlight_fore;
-			back = &cols.infohighlight_back;
-			bold = &cols.infohighlight_bold;
-			blink = &cols.infohighlight_blink;
-		}
-		else if (!strncmp(temp + 4, "SEARCHHIGHLIGHT", 15))
-		{
-			fore = &cols.searchhighlight_fore;
-			back = &cols.searchhighlight_back;
-			bold = &cols.searchhighlight_bold;
-			blink = &cols.searchhighlight_blink;
-		}
-		else
-			return 1;
-	}
+  else if (!strncmp (temp, "COL", 3)) {
+    key = NULL;
+    if (!strncmp (temp + 4, "NORMAL", 6)) {
+      fore = &cols.normal_fore;
+      back = &cols.normal_back;
+      bold = &cols.normal_bold;
+      blink = &cols.normal_blink;
+    } else if (!strncmp (temp + 4, "MENUSELECTED", 12)) {
+      fore = &cols.menuselected_fore;
+      back = &cols.menuselected_back;
+      bold = &cols.menuselected_bold;
+      blink = &cols.menuselected_blink;
+    } else if (!strncmp (temp + 4, "MENU", 4)) {
+      fore = &cols.menu_fore;
+      back = &cols.menu_back;
+      bold = &cols.menu_bold;
+      blink = &cols.menu_blink;
+    } else if (!strncmp (temp + 4, "NOTESELECTED", 12)) {
+      fore = &cols.noteselected_fore;
+      back = &cols.noteselected_back;
+      bold = &cols.noteselected_bold;
+      blink = &cols.noteselected_blink;
+    } else if (!strncmp (temp + 4, "NOTE", 4)) {
+      fore = &cols.note_fore;
+      back = &cols.note_back;
+      bold = &cols.note_bold;
+      blink = &cols.note_blink;
+    } else if (!strncmp (temp + 4, "TOPLINE", 7)) {
+      fore = &cols.topline_fore;
+      back = &cols.topline_back;
+      bold = &cols.topline_bold;
+      blink = &cols.topline_blink;
+    } else if (!strncmp (temp + 4, "BOTTOMLINE", 10)) {
+      fore = &cols.bottomline_fore;
+      back = &cols.bottomline_back;
+      bold = &cols.bottomline_bold;
+      blink = &cols.bottomline_blink;
+    } else if (!strncmp (temp + 4, "MANUALBOLD", 10)) {
+      fore = &cols.manualbold_fore;
+      back = &cols.manualbold_back;
+      bold = &cols.manualbold_bold;
+      blink = &cols.manualbold_blink;
+    } else if (!strncmp (temp + 4, "MANUALITALIC", 12)) {
+      fore = &cols.manualitalic_fore;
+      back = &cols.manualitalic_back;
+      bold = &cols.manualitalic_bold;
+      blink = &cols.manualitalic_blink;
+    } else if (!strncmp (temp + 4, "URLSELECTED", 11)) {
+      fore = &cols.urlselected_fore;
+      back = &cols.urlselected_back;
+      bold = &cols.urlselected_bold;
+      blink = &cols.urlselected_blink;
+    } else if (!strncmp (temp + 4, "URL", 3)) {
+      fore = &cols.url_fore;
+      back = &cols.url_back;
+      bold = &cols.url_bold;
+      blink = &cols.url_blink;
+    } else if (!strncmp (temp + 4, "INFOHIGHLIGHT", 13)) {
+      fore = &cols.infohighlight_fore;
+      back = &cols.infohighlight_back;
+      bold = &cols.infohighlight_bold;
+      blink = &cols.infohighlight_blink;
+    } else if (!strncmp (temp + 4, "SEARCHHIGHLIGHT", 15)) {
+      fore = &cols.searchhighlight_fore;
+      back = &cols.searchhighlight_back;
+      bold = &cols.searchhighlight_bold;
+      blink = &cols.searchhighlight_blink;
+    } else
+      return 1;
+  }
 #endif /* NO_COLOR_CURSES */
-	else if (!strncmp(temp, "MANUAL", 6))
-	{
-		temp = strtok(NULL, "=");
-		if (temp)
-		{
-			if (!(temp = str_toupper(skip_whitespace(temp))))
-				return 1;
-			if (!strncmp(temp, "TRUE", 4))
-				use_manual = 1;
-			else if (!strncmp(temp, "FALSE", 5))
-				use_manual = 0;
-			else
-				return 1;
-		}
-	}
-	else if (!strncmp(temp, "RAW-FILENAME", 12))
-	{
-		temp = strtok(NULL, "=");
-		if (temp)
-		{
-			if (!(temp = str_toupper(skip_whitespace(temp))))
-				return 1;
-			if (!strncmp(temp, "TRUE", 4))
-				use_raw_filename = 1;
-			else if (!strncmp(temp, "FALSE", 5))
-				use_raw_filename = 0;
-			else
-				return 1;
-		}
-	}
-	else if (!strncmp(temp, "APROPOS", 7))
-	{
-		temp = strtok(NULL, "=");
-		if (temp)
-		{
-			if (!(temp = str_toupper(skip_whitespace(temp))))
-				return 1;
-			if (!strncmp(temp, "TRUE", 4))
-				use_apropos = 1;
-			else if (!strncmp(temp, "FALSE", 5))
-				use_apropos = 0;
-			else
-				return 1;
-		}
-	}
-	else if (!strncmp(temp, "VERBOSE", 7))
-	{
-		temp = strtok(NULL, "=");
-		if (temp)
-		{
-			if (!(temp = str_toupper(skip_whitespace(temp))))
-				return 1;
-			if (!strncmp(temp, "TRUE", 4))
-				verbose = 1;
-			else if (!strncmp(temp, "FALSE", 5))
-				verbose = 0;
-			else
-				return 1;
-		}
-	}
-	else if (!strncmp(temp, "QUIT-CONFIRMATION", 17))
-	{
-		temp = strtok(NULL, "=");
-		if (temp)
-		{
-			if (!(temp = str_toupper(skip_whitespace(temp))))
-				return 1;
-			if (!strncmp(temp, "TRUE", 4))
-				ConfirmQuit = 1;
-			else if (!strncmp(temp, "FALSE", 5))
-				ConfirmQuit = 0;
-			else
-				return 1;
-		}
-	}
-	else if (!strncmp(temp, "QUIT-CONFIRM-DEFAULT", 20))
-	{
-		temp = strtok(NULL, "=");
-		if (temp)
-		{
-			if (!(temp = str_toupper(skip_whitespace(temp))))
-				return 1;
-			if (!strncmp(temp, "YES", 3))
-				QuitConfirmDefault = 1;
-			else if (!strncmp(temp, "NO", 2))
-				QuitConfirmDefault = 0;
-			else
-				return 1;
-		}
-	}
-	else if (!strncmp(temp, "CUT-MAN-HEADERS", 15))
-	{
-		temp = strtok(NULL, "=");
-		if (temp)
-		{
-			if (!(temp = str_toupper(skip_whitespace(temp))))
-				return 1;
-			if (!strncmp(temp, "TRUE", 4))
-				CutManHeaders = 1;
-			else if (!strncmp(temp, "FALSE", 5))
-				CutManHeaders = 0;
-			else
-				return 1;
-		}
-	}
-	else if (!strncmp(temp, "CLEAR-SCREEN-AT-EXIT", 20))
-	{
-		temp = strtok(NULL, "=");
-		if (temp)
-		{
-			if (!(temp = str_toupper(skip_whitespace(temp))))
-				return 1;
-			if (!strncmp(temp, "TRUE", 4))
-				ClearScreenAtExit = 1;
-			else if (!strncmp(temp, "FALSE", 5))
-				ClearScreenAtExit = 0;
-			else
-				return 1;
-		}
-	}
-	else if (!strncmp(temp, "CALL-READLINE-HISTORY", 21))
-	{
-		temp = strtok(NULL, "=");
-		if (temp)
-		{
-			if (!(temp = str_toupper(skip_whitespace(temp))))
-				return 1;
-			if (!strncmp(temp, "TRUE", 4))
-				CallReadlineHistory = 1;
-			else if (!strncmp(temp, "FALSE", 5))
-				CallReadlineHistory = 0;
-			else
-				return 1;
-		}
-	}
-	else if (!strncmp(temp, "CUT-EMPTY-MAN-LINES", 19))
-	{
-		temp = strtok(NULL, "=");
-		if (temp)
-		{
-			if (!(temp = str_toupper(skip_whitespace(temp))))
-				return 1;
-			if (!strncmp(temp, "TRUE", 4))
-				CutEmptyManLines = 1;
-			else if (!strncmp(temp, "FALSE", 5))
-				CutEmptyManLines = 0;
-			else
-				return 1;
-		}
-	}
-	else if (!strncmp(temp, "DONT-HANDLE-WITHOUT-TAG-TABLE", 28))
-	{
-		temp = strtok(NULL, "=");
-		if (temp)
-		{
-			if (!(temp = str_toupper(skip_whitespace(temp))))
-				return 1;
-			if (!strncmp(temp, "TRUE", 4))
-				DontHandleWithoutTagTable = 1;
-			else if (!strncmp(temp, "FALSE", 5))
-				DontHandleWithoutTagTable = 0;
-			else
-				return 1;
-		}
-	}
-	else if (!strncmp(temp, "LONG-MANUAL-LINKS", 17))
-	{
-		temp = strtok(NULL, "=");
-		if (temp)
-		{
-			if (!(temp = str_toupper(skip_whitespace(temp))))
-				return 1;
-			if (!strncmp(temp, "TRUE", 4))
-				LongManualLinks = 1;
-			else if (!strncmp(temp, "FALSE", 5))
-				LongManualLinks = 0;
-			else
-				return 1;
-		}
-	}
-	else if (!strncmp(temp, "HTTPVIEWER", 10))
-	{
-		temp = strtok(NULL, "\n");
-		if (temp)
-		{
-			httpviewer = strdup(temp);
-			remove_quotes(httpviewer);
-		}
-		else
-			return 1;
-	}
-	else if (!strncmp(temp, "FTPVIEWER", 10))
-	{
-		temp = strtok(NULL, "\n");
-		if (temp)
-		{
-			ftpviewer = strdup(temp);
-			remove_quotes(ftpviewer);
-		}
-		else
-			return 1;
-	}
-	else if (!strncmp(temp, "MAILEDITOR", 10))
-	{
-		temp = strtok(NULL, "\n");
-		if (temp)
-		{
-			maileditor = strdup(temp);
-			remove_quotes(maileditor);
-		}
-		else
-			return 1;
-	}
-	else if (!strncmp(temp, "PRINTUTILITY", 12))
-	{
-		temp = strtok(NULL, "\n");
-		if (temp)
-		{
-			printutility = strdup(temp);
-			remove_quotes(printutility);
-		}
-		else
-			return 1;
-	}
-	else if (!strncmp(temp, "MAN-OPTIONS", 11))
-	{
-		temp = strtok(NULL, "\n");
-		if (temp)
-		{
-			ManOptions = strdup(temp);
-			remove_quotes(ManOptions);
-		}
-		else
-			return 1;
-	}
-	else if (!strncmp(temp, "STDERR-REDIRECTION", 18))
-	{
-		temp = strtok(NULL, "\n");
-		if (temp)
-		{
-			StderrRedirection = strdup(temp);
-			remove_quotes(StderrRedirection);
-		}
-		else
-			return 1;
-	}
-	else if (!strncmp(temp, "FILTER-0XB7", 11))
-	{
-		temp = strtok(NULL, "=");
-		if (temp)
-		{
-			if (!(temp = str_toupper(skip_whitespace(temp))))
-				return 1;
-			if (!strncmp(temp, "TRUE", 4))
-				FilterB7 = 1;
-			else if (!strncmp(temp, "FALSE", 5))
-				FilterB7 = 0;
-			else
-				return 1;
-		}
-	}
-	else if (!strncmp(temp, "MANLINKS", 8))
-	{
-		temp = strtok(NULL, "\n");
-		if (temp)
-		{
-			manlinks = strdup(temp);
-			remove_quotes(manlinks);
-		}
-		else
-			return 1;
-	}
-	else if (!strncmp(temp, "INFOPATH", 8))
-	{
-		temp = strtok(NULL, "\n");
-		if (temp)
-		{
-			configuredinfopath = strdup(temp);
-			remove_quotes(configuredinfopath);
-		}
-		else
-			return 1;
-	}
+  else if (!strncmp (temp, "MANUAL", 6)) {
+    temp = strtok (NULL, "=");
+    if (temp) {
+      if (!(temp = str_toupper (skip_whitespace (temp))))
+	return 1;
+      if (!strncmp (temp, "TRUE", 4))
+	use_manual = 1;
+      else if (!strncmp (temp, "FALSE", 5))
+	use_manual = 0;
+      else
+	return 1;
+    }
+  } else if (!strncmp (temp, "RAW-FILENAME", 12)) {
+    temp = strtok (NULL, "=");
+    if (temp) {
+      if (!(temp = str_toupper (skip_whitespace (temp))))
+	return 1;
+      if (!strncmp (temp, "TRUE", 4))
+	use_raw_filename = 1;
+      else if (!strncmp (temp, "FALSE", 5))
+	use_raw_filename = 0;
+      else
+	return 1;
+    }
+  } else if (!strncmp (temp, "APROPOS", 7)) {
+    temp = strtok (NULL, "=");
+    if (temp) {
+      if (!(temp = str_toupper (skip_whitespace (temp))))
+	return 1;
+      if (!strncmp (temp, "TRUE", 4))
+	use_apropos = 1;
+      else if (!strncmp (temp, "FALSE", 5))
+	use_apropos = 0;
+      else
+	return 1;
+    }
+  } else if (!strncmp (temp, "VERBOSE", 7)) {
+    temp = strtok (NULL, "=");
+    if (temp) {
+      if (!(temp = str_toupper (skip_whitespace (temp))))
+	return 1;
+      if (!strncmp (temp, "TRUE", 4))
+	verbose = 1;
+      else if (!strncmp (temp, "FALSE", 5))
+	verbose = 0;
+      else
+	return 1;
+    }
+  } else if (!strncmp (temp, "QUIT-CONFIRMATION", 17)) {
+    temp = strtok (NULL, "=");
+    if (temp) {
+      if (!(temp = str_toupper (skip_whitespace (temp))))
+	return 1;
+      if (!strncmp (temp, "TRUE", 4))
+	ConfirmQuit = 1;
+      else if (!strncmp (temp, "FALSE", 5))
+	ConfirmQuit = 0;
+      else
+	return 1;
+    }
+  } else if (!strncmp (temp, "QUIT-CONFIRM-DEFAULT", 20)) {
+    temp = strtok (NULL, "=");
+    if (temp) {
+      if (!(temp = str_toupper (skip_whitespace (temp))))
+	return 1;
+      if (!strncmp (temp, "YES", 3))
+	QuitConfirmDefault = 1;
+      else if (!strncmp (temp, "NO", 2))
+	QuitConfirmDefault = 0;
+      else
+	return 1;
+    }
+  } else if (!strncmp (temp, "CUT-MAN-HEADERS", 15)) {
+    temp = strtok (NULL, "=");
+    if (temp) {
+      if (!(temp = str_toupper (skip_whitespace (temp))))
+	return 1;
+      if (!strncmp (temp, "TRUE", 4))
+	CutManHeaders = 1;
+      else if (!strncmp (temp, "FALSE", 5))
+	CutManHeaders = 0;
+      else
+	return 1;
+    }
+  } else if (!strncmp (temp, "CLEAR-SCREEN-AT-EXIT", 20)) {
+    temp = strtok (NULL, "=");
+    if (temp) {
+      if (!(temp = str_toupper (skip_whitespace (temp))))
+	return 1;
+      if (!strncmp (temp, "TRUE", 4))
+	ClearScreenAtExit = 1;
+      else if (!strncmp (temp, "FALSE", 5))
+	ClearScreenAtExit = 0;
+      else
+	return 1;
+    }
+  } else if (!strncmp (temp, "CALL-READLINE-HISTORY", 21)) {
+    temp = strtok (NULL, "=");
+    if (temp) {
+      if (!(temp = str_toupper (skip_whitespace (temp))))
+	return 1;
+      if (!strncmp (temp, "TRUE", 4))
+	CallReadlineHistory = 1;
+      else if (!strncmp (temp, "FALSE", 5))
+	CallReadlineHistory = 0;
+      else
+	return 1;
+    }
+  } else if (!strncmp (temp, "CUT-EMPTY-MAN-LINES", 19)) {
+    temp = strtok (NULL, "=");
+    if (temp) {
+      if (!(temp = str_toupper (skip_whitespace (temp))))
+	return 1;
+      if (!strncmp (temp, "TRUE", 4))
+	CutEmptyManLines = 1;
+      else if (!strncmp (temp, "FALSE", 5))
+	CutEmptyManLines = 0;
+      else
+	return 1;
+    }
+  } else if (!strncmp (temp, "DONT-HANDLE-WITHOUT-TAG-TABLE", 28)) {
+    temp = strtok (NULL, "=");
+    if (temp) {
+      if (!(temp = str_toupper (skip_whitespace (temp))))
+	return 1;
+      if (!strncmp (temp, "TRUE", 4))
+	DontHandleWithoutTagTable = 1;
+      else if (!strncmp (temp, "FALSE", 5))
+	DontHandleWithoutTagTable = 0;
+      else
+	return 1;
+    }
+  } else if (!strncmp (temp, "LONG-MANUAL-LINKS", 17)) {
+    temp = strtok (NULL, "=");
+    if (temp) {
+      if (!(temp = str_toupper (skip_whitespace (temp))))
+	return 1;
+      if (!strncmp (temp, "TRUE", 4))
+	LongManualLinks = 1;
+      else if (!strncmp (temp, "FALSE", 5))
+	LongManualLinks = 0;
+      else
+	return 1;
+    }
+  } else if (!strncmp (temp, "HTTPVIEWER", 10)) {
+    temp = strtok (NULL, "\n");
+    if (temp) {
+      httpviewer = strdup (temp);
+      remove_quotes (httpviewer);
+    } else
+      return 1;
+  } else if (!strncmp (temp, "FTPVIEWER", 10)) {
+    temp = strtok (NULL, "\n");
+    if (temp) {
+      ftpviewer = strdup (temp);
+      remove_quotes (ftpviewer);
+    } else
+      return 1;
+  } else if (!strncmp (temp, "MAILEDITOR", 10)) {
+    temp = strtok (NULL, "\n");
+    if (temp) {
+      maileditor = strdup (temp);
+      remove_quotes (maileditor);
+    } else
+      return 1;
+  } else if (!strncmp (temp, "PRINTUTILITY", 12)) {
+    temp = strtok (NULL, "\n");
+    if (temp) {
+      printutility = strdup (temp);
+      remove_quotes (printutility);
+    } else
+      return 1;
+  } else if (!strncmp (temp, "MAN-OPTIONS", 11)) {
+    temp = strtok (NULL, "\n");
+    if (temp) {
+      ManOptions = strdup (temp);
+      remove_quotes (ManOptions);
+    } else
+      return 1;
+  } else if (!strncmp (temp, "STDERR-REDIRECTION", 18)) {
+    temp = strtok (NULL, "\n");
+    if (temp) {
+      StderrRedirection = strdup (temp);
+      remove_quotes (StderrRedirection);
+    } else
+      return 1;
+  } else if (!strncmp (temp, "FILTER-0XB7", 11)) {
+    temp = strtok (NULL, "=");
+    if (temp) {
+      if (!(temp = str_toupper (skip_whitespace (temp))))
+	return 1;
+      if (!strncmp (temp, "TRUE", 4))
+	FilterB7 = 1;
+      else if (!strncmp (temp, "FALSE", 5))
+	FilterB7 = 0;
+      else
+	return 1;
+    }
+  } else if (!strncmp (temp, "MANLINKS", 8)) {
+    temp = strtok (NULL, "\n");
+    if (temp) {
+      manlinks = strdup (temp);
+      remove_quotes (manlinks);
+    } else
+      return 1;
+  } else if (!strncmp (temp, "INFOPATH", 8)) {
+    temp = strtok (NULL, "\n");
+    if (temp) {
+      configuredinfopath = strdup (temp);
+      remove_quotes (configuredinfopath);
+    } else
+      return 1;
+  }
 #ifndef ___DONT_USE_REGEXP_SEARCH___
-	else if (!strncmp(temp, "HIGHLIGHTREGEXP", 15))
-	{
-		temp = strtok(NULL, "\n");
-		if (temp)
-		{
-			char *tmp = strdup(temp);
-			remove_quotes(tmp);
-			if (!h_regexp_num)
-				h_regexp = (regex_t*)malloc(sizeof(regex_t));
-			else
-				h_regexp = (regex_t*)realloc(h_regexp, sizeof(regex_t) *(h_regexp_num + 1));
-			regcomp(&h_regexp[h_regexp_num], tmp, 0);
-			free(tmp);
-			h_regexp_num++;
-		}
-		else
-			return 1;
-	}
+  else if (!strncmp (temp, "HIGHLIGHTREGEXP", 15)) {
+    temp = strtok (NULL, "\n");
+    if (temp) {
+      char *tmp = strdup (temp);
+      remove_quotes (tmp);
+      if (!h_regexp_num)
+	h_regexp = (regex_t *) malloc (sizeof (regex_t));
+      else
+	h_regexp =
+	  (regex_t *) realloc (h_regexp,
+			       sizeof (regex_t) * (h_regexp_num + 1));
+      regcomp (&h_regexp[h_regexp_num], tmp, 0);
+      free (tmp);
+      h_regexp_num++;
+    } else
+      return 1;
+  }
 #endif
-	else if (!strncmp(temp, "SAFE-USER", 9))
-	{
-		temp = strtok(NULL, "\n");
-		if (temp)
-		{
-			char *tmp = strdup(temp);
-			remove_quotes(tmp);
-			safe_user = tmp;
-		}
-		else
-			return 1;
-	}
-	else if (!strncmp(temp, "SAFE-GROUP", 10))
-	{
-		temp = strtok(NULL, "\n");
-		if (temp)
-		{
-			char *tmp = strdup(temp);
-			remove_quotes(tmp);
-			safe_group = tmp;
-		}
-		else
-			return 1;
-	}
-	else if (!strncmp(temp, "QUOTE-IGNORED-MACROS", 20))
-	{
-		temp = strtok(NULL, "=");
-		if (temp)
-		{
-			if (!(temp = str_toupper(skip_whitespace(temp))))
-				return 1;
-			if (!strncmp(temp, "TRUE", 4))
-				quote_ignored = 1;
-			else if (!strncmp(temp, "FALSE", 5))
-				quote_ignored = 0;
-			else
-				return 1;
-		}
-	}
+  else if (!strncmp (temp, "SAFE-USER", 9)) {
+    temp = strtok (NULL, "\n");
+    if (temp) {
+      char *tmp = strdup (temp);
+      remove_quotes (tmp);
+      safe_user = tmp;
+    } else
+      return 1;
+  } else if (!strncmp (temp, "SAFE-GROUP", 10)) {
+    temp = strtok (NULL, "\n");
+    if (temp) {
+      char *tmp = strdup (temp);
+      remove_quotes (tmp);
+      safe_group = tmp;
+    } else
+      return 1;
+  } else if (!strncmp (temp, "QUOTE-IGNORED-MACROS", 20)) {
+    temp = strtok (NULL, "=");
+    if (temp) {
+      if (!(temp = str_toupper (skip_whitespace (temp))))
+	return 1;
+      if (!strncmp (temp, "TRUE", 4))
+	quote_ignored = 1;
+      else if (!strncmp (temp, "FALSE", 5))
+	quote_ignored = 0;
+      else
+	return 1;
+    }
+  }
 
-	else if (!strncmp(temp, "IGNORE-MACROS", 8))
-	{
-		temp = strtok(NULL, "\n");
-		if (temp)
-		{
-			ignoredmacros = strdup(temp);
-			remove_quotes(ignoredmacros);
-			if (ignoredmacros[0] == '\t' || ignoredmacros[0] == ' '
-					|| !strncasecmp(ignoredmacros, "FALSE", 5))
-				ignoredmacros[0] = '\0';
-		}
-		else
-			return 1;
-	}
-	else
-		return 1;
+  else if (!strncmp (temp, "IGNORE-MACROS", 8)) {
+    temp = strtok (NULL, "\n");
+    if (temp) {
+      ignoredmacros = strdup (temp);
+      remove_quotes (ignoredmacros);
+      if (ignoredmacros[0] == '\t' || ignoredmacros[0] == ' '
+	  || !strncasecmp (ignoredmacros, "FALSE", 5))
+	ignoredmacros[0] = '\0';
+    } else
+      return 1;
+  } else
+    return 1;
 #ifndef NO_COLOR_CURSES
-	if (fore)
-	{
-		for (i = 0; i < 4; i++)
-		{
-			if (i == 0)
-				p = fore;
-			else if (i == 1)
-				p = back;
-			else if (i == 2)
-				p = bold;
-			else
-				p = blink;
+  if (fore) {
+    for (i = 0; i < 4; i++) {
+      if (i == 0)
+	p = fore;
+      else if (i == 1)
+	p = back;
+      else if (i == 2)
+	p = bold;
+      else
+	p = blink;
 
-			if (!(temp = skip_whitespace(strtok(NULL, ","))))
-				return 1;
+      if (!(temp = skip_whitespace (strtok (NULL, ","))))
+	return 1;
 
-			temp = str_toupper(temp);
+      temp = str_toupper (temp);
 
-			if (!(strncmp(temp, "COLOR_BLACK", 11)))
-				*p = COLOR_BLACK;
-			else if (!(strncmp(temp, "COLOR_RED", 9)))
-				*p = COLOR_RED;
-			else if (!(strncmp(temp, "COLOR_GREEN", 11)))
-				*p = COLOR_GREEN;
-			else if (!(strncmp(temp, "COLOR_BLUE", 10)))
-				*p = COLOR_BLUE;
-			else if (!(strncmp(temp, "COLOR_WHITE", 11)))
-				*p = COLOR_WHITE;
-			else if (!(strncmp(temp, "COLOR_YELLOW", 12)))
-				*p = COLOR_YELLOW;
-			else if (!(strncmp(temp, "COLOR_CYAN", 10)))
-				*p = COLOR_CYAN;
-			else if (!(strncmp(temp, "COLOR_MAGENTA", 13)))
-				*p = COLOR_MAGENTA;
-			else if (!(strncmp(temp, "COLOR_DEFAULT", 13)))
-				*p = COLOR_DEFAULT;
-			else if (!(strncmp(temp, "BOLD", 4)))
-				*p = BOLD;
-			else if (!(strncmp(temp, "NO_BOLD", 7)))
-				*p = 0;
-			else if (!(strncmp(temp, "BLINK", 4)))
-				*p = BOLD;
-			else if (!(strncmp(temp, "NO_BLINK", 7)))
-				*p = 0;
-			else
-				return 1;
-		}
-	}
-	else
+      if (!(strncmp (temp, "COLOR_BLACK", 11)))
+	*p = COLOR_BLACK;
+      else if (!(strncmp (temp, "COLOR_RED", 9)))
+	*p = COLOR_RED;
+      else if (!(strncmp (temp, "COLOR_GREEN", 11)))
+	*p = COLOR_GREEN;
+      else if (!(strncmp (temp, "COLOR_BLUE", 10)))
+	*p = COLOR_BLUE;
+      else if (!(strncmp (temp, "COLOR_WHITE", 11)))
+	*p = COLOR_WHITE;
+      else if (!(strncmp (temp, "COLOR_YELLOW", 12)))
+	*p = COLOR_YELLOW;
+      else if (!(strncmp (temp, "COLOR_CYAN", 10)))
+	*p = COLOR_CYAN;
+      else if (!(strncmp (temp, "COLOR_MAGENTA", 13)))
+	*p = COLOR_MAGENTA;
+      else if (!(strncmp (temp, "COLOR_DEFAULT", 13)))
+	*p = COLOR_DEFAULT;
+      else if (!(strncmp (temp, "BOLD", 4)))
+	*p = BOLD;
+      else if (!(strncmp (temp, "NO_BOLD", 7)))
+	*p = 0;
+      else if (!(strncmp (temp, "BLINK", 4)))
+	*p = BOLD;
+      else if (!(strncmp (temp, "NO_BLINK", 7)))
+	*p = 0;
+      else
+	return 1;
+    }
+  } else
 #endif /* NO_COLOR_CURSES */
-		if (key)
-		{
-			if (!(temp = skip_whitespace(strtok(NULL, "="))))
-				return 0;
-			if (!(strncmp(temp, "KEY_", 4)) ||
-					!(strncmp(temp, "key_", 4)))
-			{
-				str_toupper(temp);
-				/* what other keys should be interesting?  all in curs_getch? */
-				if (!(strncmp(temp + 4, "BREAK", 5)))
-					*key = KEY_BREAK;
-				else if (!(strncmp(temp + 4, "DOWN", 4)))
-					*key = KEY_DOWN;
-				else if (!(strncmp(temp + 4, "UP", 2)))
-					*key = KEY_UP;
-				else if (!(strncmp(temp + 4, "LEFT", 4)))
-					*key = KEY_LEFT;
-				else if (!(strncmp(temp + 4, "RIGHT", 5)))
-					*key = KEY_RIGHT;
-				else if (!(strncmp(temp + 4, "IC", 2)))
-					*key = KEY_IC;
-				else if (!(strncmp(temp + 4, "DC", 2)))
-					*key = KEY_DC;
-				else if (!(strncmp(temp + 4, "HOME", 4)))
-					*key = KEY_HOME;
-				else if (!(strncmp(temp + 4, "BACKSPACE", 9)))
-					*key = KEY_BACKSPACE;
-				else if (!(strncmp(temp + 4, "NPAGE", 5)))
-					*key = KEY_NPAGE;
-				else if (!(strncmp(temp + 4, "PPAGE", 5)))
-					*key = KEY_PPAGE;
-				else if (!(strncmp(temp + 4, "F(1)", 4)))
-					*key = KEY_F(1);
-				else if (!(strncmp(temp + 4, "F(2)", 4)))
-					*key = KEY_F(2);
-				else if (!(strncmp(temp + 4, "F(3)", 4)))
-					*key = KEY_F(3);
-				else if (!(strncmp(temp + 4, "F(4)", 4)))
-					*key = KEY_F(4);
-				else if (!(strncmp(temp + 4, "F(5)", 4)))
-					*key = KEY_F(5);
-				else if (!(strncmp(temp + 4, "F(6)", 4)))
-					*key = KEY_F(6);
-				else if (!(strncmp(temp + 4, "F(7)", 4)))
-					*key = KEY_F(7);
-				else if (!(strncmp(temp + 4, "F(8)", 4)))
-					*key = KEY_F(8);
-				else if (!(strncmp(temp + 4, "(F9)", 4)))
-					*key = KEY_F(9);
-				else if (!(strncmp(temp + 4, "(F10)", 5)))
-					*key = KEY_F(10);
-				else if (!(strncmp(temp + 4, "F(11)", 5)))
-					*key = KEY_F(11);
-				else if (!(strncmp(temp + 4, "F(12)", 5)))
-					*key = KEY_F(12);
+  if (key) {
+    if (!(temp = skip_whitespace (strtok (NULL, "="))))
+      return 0;
+    if (!(strncmp (temp, "KEY_", 4)) || !(strncmp (temp, "key_", 4))) {
+      str_toupper (temp);
+      /* what other keys should be interesting?  all in curs_getch? */
+      if (!(strncmp (temp + 4, "BREAK", 5)))
+	*key = KEY_BREAK;
+      else if (!(strncmp (temp + 4, "DOWN", 4)))
+	*key = KEY_DOWN;
+      else if (!(strncmp (temp + 4, "UP", 2)))
+	*key = KEY_UP;
+      else if (!(strncmp (temp + 4, "LEFT", 4)))
+	*key = KEY_LEFT;
+      else if (!(strncmp (temp + 4, "RIGHT", 5)))
+	*key = KEY_RIGHT;
+      else if (!(strncmp (temp + 4, "IC", 2)))
+	*key = KEY_IC;
+      else if (!(strncmp (temp + 4, "DC", 2)))
+	*key = KEY_DC;
+      else if (!(strncmp (temp + 4, "HOME", 4)))
+	*key = KEY_HOME;
+      else if (!(strncmp (temp + 4, "BACKSPACE", 9)))
+	*key = KEY_BACKSPACE;
+      else if (!(strncmp (temp + 4, "NPAGE", 5)))
+	*key = KEY_NPAGE;
+      else if (!(strncmp (temp + 4, "PPAGE", 5)))
+	*key = KEY_PPAGE;
+      else if (!(strncmp (temp + 4, "F(1)", 4)))
+	*key = KEY_F (1);
+      else if (!(strncmp (temp + 4, "F(2)", 4)))
+	*key = KEY_F (2);
+      else if (!(strncmp (temp + 4, "F(3)", 4)))
+	*key = KEY_F (3);
+      else if (!(strncmp (temp + 4, "F(4)", 4)))
+	*key = KEY_F (4);
+      else if (!(strncmp (temp + 4, "F(5)", 4)))
+	*key = KEY_F (5);
+      else if (!(strncmp (temp + 4, "F(6)", 4)))
+	*key = KEY_F (6);
+      else if (!(strncmp (temp + 4, "F(7)", 4)))
+	*key = KEY_F (7);
+      else if (!(strncmp (temp + 4, "F(8)", 4)))
+	*key = KEY_F (8);
+      else if (!(strncmp (temp + 4, "(F9)", 4)))
+	*key = KEY_F (9);
+      else if (!(strncmp (temp + 4, "(F10)", 5)))
+	*key = KEY_F (10);
+      else if (!(strncmp (temp + 4, "F(11)", 5)))
+	*key = KEY_F (11);
+      else if (!(strncmp (temp + 4, "F(12)", 5)))
+	*key = KEY_F (12);
 #ifdef USE_NCURSES
-				else if (!(strncmp(temp + 4, "END", 3)))
-					*key = KEY_END;
+      else if (!(strncmp (temp + 4, "END", 3)))
+	*key = KEY_END;
 #endif
-				else if (!(strncmp(temp + 4, "CTRL", 4)))
-				{
-					if (!(temp = skip_whitespace(temp + 8)))
-						return 1;
-					if (temp[0] == '(')
-					{
-						if (temp[1] == '\'')
-							*key = KEY_CTRL(temp[2]);
-						else if (isdigit(temp[1]))
-						{
-							char *tail = temp +(strlen(temp));
-							*key = KEY_CTRL((int) strtol(temp + 1, &tail, 10));
-						}
-						else
-							return 1;
-					}
-					else
-						return 1;
-				}
-				else if (!(strncmp(temp + 4, "ALT", 3)))
-				{
-					if (!(temp = skip_whitespace(temp + 7)))
-						return 1;
-					if (temp[0] == '(')
-					{
-						if (temp[1] == '\'')
-							*key = KEY_ALT(tolower(temp[2]));
-						else if (isdigit(temp[1]))
-						{
-							char *tail = temp +(strlen(temp));
-							*key = KEY_ALT((int) strtol(temp + 1, &tail, 10));
-						}
-						else
-							return 1;
-					}
-					else
-						return 1;
-				}
-				else
-					return 1;
-			}
-			else if (!(strncmp(temp, "\'", 1)))
-			{
-				if (!(strncmp(temp + 1, "\\", 1)))
-				{
-					if (temp[2] == 'n')
-						*key = '\n';
-					else if (temp[2] == '\\')
-						*key = '\\';
-					else if (temp[2] == 't')
-						*key = '\t';
-					else if (temp[2] == '\'')
-						*key = '\'';
-					else
-						*key = temp[2];
-				}
-				else
-				{
-					*key = temp[1];
-				}
-			}
-			else if (isdigit(temp[0]))
-			{
-				char *tail = temp +(strlen(temp));
-				*key =(int) strtol(temp, &tail, 10);
-			}
-		}
+      else if (!(strncmp (temp + 4, "CTRL", 4))) {
+	if (!(temp = skip_whitespace (temp + 8)))
+	  return 1;
+	if (temp[0] == '(') {
+	  if (temp[1] == '\'')
+	    *key = KEY_CTRL (temp[2]);
+	  else if (isdigit (temp[1])) {
+	    char *tail = temp + (strlen (temp));
+	    *key = KEY_CTRL ((int) strtol (temp + 1, &tail, 10));
+	  } else
+	    return 1;
+	} else
+	  return 1;
+      } else if (!(strncmp (temp + 4, "ALT", 3))) {
+	if (!(temp = skip_whitespace (temp + 7)))
+	  return 1;
+	if (temp[0] == '(') {
+	  if (temp[1] == '\'')
+	    *key = KEY_ALT (tolower (temp[2]));
+	  else if (isdigit (temp[1])) {
+	    char *tail = temp + (strlen (temp));
+	    *key = KEY_ALT ((int) strtol (temp + 1, &tail, 10));
+	  } else
+	    return 1;
+	} else
+	  return 1;
+      } else
+	return 1;
+    } else if (!(strncmp (temp, "\'", 1))) {
+      if (!(strncmp (temp + 1, "\\", 1))) {
+	if (temp[2] == 'n')
+	  *key = '\n';
+	else if (temp[2] == '\\')
+	  *key = '\\';
+	else if (temp[2] == 't')
+	  *key = '\t';
+	else if (temp[2] == '\'')
+	  *key = '\'';
+	else
+	  *key = temp[2];
+      } else {
+	*key = temp[1];
+      }
+    } else if (isdigit (temp[0])) {
+      char *tail = temp + (strlen (temp));
+      *key = (int) strtol (temp, &tail, 10);
+    }
+  }
 
-	return 0;
+  return 0;
 }
 
 char *
-str_toupper(char *str)
+str_toupper (char *str)
 {
-	int i;
+  int i;
 
-	for (i = 0; i < strlen(str); ++i)
-		if (islower(str[i]))
-			str[i] = toupper(str[i]);
+  for (i = 0; i < strlen (str); ++i)
+    if (islower (str[i]))
+      str[i] = toupper (str[i]);
 
-	return str;
+  return str;
 }
 
 char *
-skip_whitespace(char *str)
+skip_whitespace (char *str)
 {
-	int i = 0;
+  int i = 0;
 
-	if (!str)
-		return NULL;
+  if (!str)
+    return NULL;
 
-	while (str[i] == ' ' || str[i] == '\t' || str[i] == '\n')
-		i++;
+  while (str[i] == ' ' || str[i] == '\t' || str[i] == '\n')
+    i++;
 
-	return str + i;
+  return str + i;
 }
 
 char *
-remove_quotes(char *str)
+remove_quotes (char *str)
 {
-	int i = 0;
+  int i = 0;
 
-	for (i = 0; i < strlen(str); i++)
-		if (str[i] == '\"')
-			str[i] = ' ';
+  for (i = 0; i < strlen (str); i++)
+    if (str[i] == '\"')
+      str[i] = ' ';
 
-	return str;
+  return str;
 }

Modified: pinfo/branches/cxx/src/parse_config.h
===================================================================
--- pinfo/branches/cxx/src/parse_config.h	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/parse_config.h	2005-08-26 08:41:40 UTC (rev 41)
@@ -33,54 +33,58 @@
 
 typedef struct keybindings
 {
-	int totalsearch_1, totalsearch_2;
-	int search_1, search_2;
-	int goto_1, goto_2;
-	int prevnode_1, prevnode_2;
-	int nextnode_1, nextnode_2;
-	int upnode_1, upnode_2;
-	int up_1, up_2;
-	int end_1, end_2;
-	int pgdn_1, pgdn_2;
-	int home_1, home_2;
-	int pgup_1, pgup_2;
-	int down_1, down_2;
-	int top_1, top_2;
-	int back_1, back_2;
-	int followlink_1, followlink_2;
-	int quit_1, quit_2;
-	int refresh_1, refresh_2;
-	int shellfeed_1, shellfeed_2;
-	int dirpage_1, dirpage_2;
-	int pgdn_auto_1, pgdn_auto_2;
-	int pgup_auto_1, pgup_auto_2;
-	int search_again_1, search_again_2;
-	int goline_1, goline_2;
-	int twoup_1, twoup_2;
-	int twodown_1, twodown_2;
-	int print_1, print_2;
-	int left_1, left_2;
-	int right_1, right_2;
+  int totalsearch_1, totalsearch_2;
+  int search_1, search_2;
+  int goto_1, goto_2;
+  int prevnode_1, prevnode_2;
+  int nextnode_1, nextnode_2;
+  int upnode_1, upnode_2;
+  int up_1, up_2;
+  int end_1, end_2;
+  int pgdn_1, pgdn_2;
+  int home_1, home_2;
+  int pgup_1, pgup_2;
+  int down_1, down_2;
+  int top_1, top_2;
+  int back_1, back_2;
+  int followlink_1, followlink_2;
+  int quit_1, quit_2;
+  int refresh_1, refresh_2;
+  int shellfeed_1, shellfeed_2;
+  int dirpage_1, dirpage_2;
+  int pgdn_auto_1, pgdn_auto_2;
+  int pgup_auto_1, pgup_auto_2;
+  int search_again_1, search_again_2;
+  int goline_1, goline_2;
+  int twoup_1, twoup_2;
+  int twodown_1, twodown_2;
+  int print_1, print_2;
+  int left_1, left_2;
+  int right_1, right_2;
 }
 keybindings;
 
 #ifndef NO_COLOR_CURSES
 typedef struct colours
 {
-	int normal_fore, normal_back, normal_bold, normal_blink;
-	int menuselected_fore, menuselected_back, menuselected_bold, menuselected_blink;
-	int menu_fore, menu_back, menu_bold, menu_blink;
-	int noteselected_fore, noteselected_back, noteselected_bold, noteselected_blink;
-	int note_fore, note_back, note_bold, note_blink;
-	int topline_fore, topline_back, topline_bold, topline_blink;
-	int bottomline_fore, bottomline_back, bottomline_bold, bottomline_blink;
-	int manualbold_fore, manualbold_back, manualbold_bold, manualbold_blink;
-	int manualitalic_fore, manualitalic_back, manualitalic_bold, manualitalic_blink;
-	int url_fore, url_back, url_bold, url_blink;
-	int urlselected_fore, urlselected_back, urlselected_bold, urlselected_blink;
-	int infohighlight_fore, infohighlight_back, infohighlight_bold, infohighlight_blink;
-	int searchhighlight_fore, searchhighlight_back, searchhighlight_bold,
-		searchhighlight_blink;
+  int normal_fore, normal_back, normal_bold, normal_blink;
+  int menuselected_fore, menuselected_back, menuselected_bold,
+    menuselected_blink;
+  int menu_fore, menu_back, menu_bold, menu_blink;
+  int noteselected_fore, noteselected_back, noteselected_bold,
+    noteselected_blink;
+  int note_fore, note_back, note_bold, note_blink;
+  int topline_fore, topline_back, topline_bold, topline_blink;
+  int bottomline_fore, bottomline_back, bottomline_bold, bottomline_blink;
+  int manualbold_fore, manualbold_back, manualbold_bold, manualbold_blink;
+  int manualitalic_fore, manualitalic_back, manualitalic_bold,
+    manualitalic_blink;
+  int url_fore, url_back, url_bold, url_blink;
+  int urlselected_fore, urlselected_back, urlselected_bold, urlselected_blink;
+  int infohighlight_fore, infohighlight_back, infohighlight_bold,
+    infohighlight_blink;
+  int searchhighlight_fore, searchhighlight_back, searchhighlight_bold,
+    searchhighlight_blink;
 }
 colours;
 #endif /* NO_COLOR_CURSES */

Modified: pinfo/branches/cxx/src/pinfo.cxx
===================================================================
--- pinfo/branches/cxx/src/pinfo.cxx	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/pinfo.cxx	2005-08-26 08:41:40 UTC (rev 41)
@@ -23,545 +23,486 @@
 #include "signal_handler.h"
 #include "utils.h"
 
-RCSID(PKG_VER "$Id$")
-
+RCSID (PKG_VER "$Id$")
 #ifdef HAVE_GETOPT_LONG
- #include <getopt.h>
+#include <getopt.h>
 #endif
+     char *version = VERSION;
+     int DontHandleWithoutTagTable = 0;
 
-char *version = VERSION;
-int DontHandleWithoutTagTable = 0;
-
 /* currently viewed filename */
-char *curfile = 0;
+     char *curfile = 0;
 
 /* node specified by --node option */
-char *pinfo_start_node = 0;
+     char *pinfo_start_node = 0;
 
 /* strip `.info' suffix from  "file" */
-void strip_file_from_info_suffix(char *file);
+     void strip_file_from_info_suffix (char *file);
 /* add `.info' suffix to "file" */
-char *addinfosuffix(char *file);
+     char *addinfosuffix (char *file);
 
 /* protect against bad, bad macros */
-void checksu();
+     void checksu ();
 
-int
-main(int argc, char *argv[])
+     int main (int argc, char *argv[])
 {
-	int filenotfound = 0;
-	char filename[256];
-	WorkRVal work_return_value =
-	{0, 0};
-	int i, userdefinedrc = 0;
-	int command_line_option;
-	FILE *id = NULL;
-	/* line count in message */
-	long lines = 0;
-	/* this will hold node's text */
-	char **message = 0;
-	/* this will hold the node's header */
-	char *type = 0;
-	int tag_table_pos = 1;
-	char *tmp;
+  int filenotfound = 0;
+  char filename[256];
+  WorkRVal work_return_value = { 0, 0 };
+  int i, userdefinedrc = 0;
+  int command_line_option;
+  FILE *id = NULL;
+  /* line count in message */
+  long lines = 0;
+  /* this will hold node's text */
+  char **message = 0;
+  /* this will hold the node's header */
+  char *type = 0;
+  int tag_table_pos = 1;
+  char *tmp;
 #ifdef HAVE_GETOPT_LONG
-	static struct option long_options[] =
-	{
-		{"help", 0, 0, 'h'},
-		{"version", 0, 0, 'v'},
-		{"manual", 0, 0, 'm'},
-		{"file", 0, 0, 'f'},
-		{"raw-filename", 0, 0, 'r'},
-		{"apropos", 0, 0, 'a'},
-		{"plain-apropos", 0, 0, 'p'},
-		{"cut-man-headers", 0, 0, 'c'},
-		{"squeeze-manlines", 0, 0, 's'},
-		{"dont-handle-without-tag-table", 0, 0, 'd'},
-		{"force-manual-tag-table", 0, 0, 't'},
-		{"node", 1, 0, 'n'},
-		{"long-manual-links", 0, 0, 'l'},
-		{"clear-at-exit", 0, 0, 'x'},
-		/* no one-letter shortcut :( */
-		{"rcfile", 1, 0, 1},
-		{0, 0, 0, 0}};
+  static struct option long_options[] = {
+    {"help", 0, 0, 'h'},
+    {"version", 0, 0, 'v'},
+    {"manual", 0, 0, 'm'},
+    {"file", 0, 0, 'f'},
+    {"raw-filename", 0, 0, 'r'},
+    {"apropos", 0, 0, 'a'},
+    {"plain-apropos", 0, 0, 'p'},
+    {"cut-man-headers", 0, 0, 'c'},
+    {"squeeze-manlines", 0, 0, 's'},
+    {"dont-handle-without-tag-table", 0, 0, 'd'},
+    {"force-manual-tag-table", 0, 0, 't'},
+    {"node", 1, 0, 'n'},
+    {"long-manual-links", 0, 0, 'l'},
+    {"clear-at-exit", 0, 0, 'x'},
+    /* no one-letter shortcut :( */
+    {"rcfile", 1, 0, 1},
+    {0, 0, 0, 0}
+  };
 #endif
-		/* take care of SIGSEGV, SIGTERM, SIGINT */
-		install_signal_handlers();
-		searchagain.type = 0;
-		searchagain.search = 0;
-		initlocale();
-		inithistory();
-		for (i = 1; i < argc; i++)
-			if (strncmp(argv[i], "--rcfile", 8) == 0)
-				userdefinedrc = 1;
-		/* read config information */
-		if (!userdefinedrc)
-			parse_config();
-		if (verbose)
-			printf("Przemek's Info Viewer v%s\n", version);
-		/* if no arguments were given */
-		if (argc == 1)
-		{
-			id = openinfo("dir", 0);
-			curfile = (char*)xmalloc(150);
-			strcpy(curfile, "dir");
-			strcpy(filename, "dir");
-		}
-		if ((strlen(argv[0]) >= 3)||(use_manual))
-			/* handle any 'man' alias to 'pinfo' */
-			if ((strstr(argv[0], "man") != NULL)||(use_manual))
-			{
-				if (verbose)
-					printf(_("Looking for man page...\n"));
-				strcpy(filename, "");
-				/*
-				 * pass all arguments to the `man' command(manhandler calls
-				 * `man')
-				 */
-				for (i = 1; i < argc; i++)
-				{
-					strcat(filename, argv[i]);
-					strcat(filename, " ");
-				}
-				exit(handlemanual(filename));
-			}
+  /* take care of SIGSEGV, SIGTERM, SIGINT */
+  install_signal_handlers ();
+  searchagain.type = 0;
+  searchagain.search = 0;
+  initlocale ();
+  inithistory ();
+  for (i = 1; i < argc; i++)
+    if (strncmp (argv[i], "--rcfile", 8) == 0)
+      userdefinedrc = 1;
+  /* read config information */
+  if (!userdefinedrc)
+    parse_config ();
+  if (verbose)
+    printf ("Przemek's Info Viewer v%s\n", version);
+  /* if no arguments were given */
+  if (argc == 1) {
+    id = openinfo ("dir", 0);
+    curfile = (char *) xmalloc (150);
+    strcpy (curfile, "dir");
+    strcpy (filename, "dir");
+  }
+  if ((strlen (argv[0]) >= 3) || (use_manual))
+    /* handle any 'man' alias to 'pinfo' */
+    if ((strstr (argv[0], "man") != NULL) || (use_manual)) {
+      if (verbose)
+	printf (_("Looking for man page...\n"));
+      strcpy (filename, "");
+      /*
+       * pass all arguments to the `man' command(manhandler calls
+       * `man')
+       */
+      for (i = 1; i < argc; i++) {
+	strcat (filename, argv[i]);
+	strcat (filename, " ");
+      }
+      exit (handlemanual (filename));
+    }
 
 
-
 #ifdef HAVE_GETOPT_LONG
 
 		/******************************************************************************
 		 * Parse command line options(getopt)                                         *
 		 ******************************************************************************/
 
-		do
-		{
-			command_line_option = getopt_long(argc, argv,
-					"hvmfrapcsdtnlx", long_options, NULL);
-			switch(command_line_option)
-			{
-				case 'x':
-					ClearScreenAtExit = 1;
-					break;
-				case 'l':
-					LongManualLinks = 1;
-					break;
-				case 'n':
-					if (!optarg)
-					{
-						printf(_("--node option used without argument\n"));
-						exit(1);
-					}
-					pinfo_start_node = (char*)malloc(strlen(optarg) + 1);
-					strcpy(pinfo_start_node, optarg);
-					break;
-				/* rcfile */
-				case 1:
-					if (!optarg)
-					{
-						printf(_("--rcfile option used without argument\n"));
-						exit(1);
-					}
-					rcfile = strdup(optarg);
-					/* parse user-defined config file */
-					parse_config();
-					break;
-				case 't':
-					ForceManualTagTable = 1;
-					break;
-				case 'h':
-					printf(_("Usage:\n" \
-								"%s [options] [info|manual]\n" \
-								"Options:\n" \
-								"-h, --help                            help\n" \
-								"-v, --version                         version\n" \
-								"-m, --manual                          use man page\n" \
-								"-r, --raw-filename                    use raw filename\n" \
-								"-f, --file                            synonym for -r\n" \
-								"-a, --apropos                         call apropos if nothing found\n" \
-								"-p, --plain-apropos                   call only apropos\n" \
-								"-c, --cut-man-headers                 cut out repeated man headers\n" \
-								"-l, --long-manual-links               use long link names in manuals\n" \
-								"-s, --squeeze-manlines                cut empty lines from manual pages\n" \
-								"-d, --dont-handle-without-tag-table   don't display texinfo pages without tag\n" \
-								"                                      tables\n" \
-								"-t, --force-manual-tag-table          force manual detection of tag table\n" \
-								"-x, --clear-at-exit                   clear screen at exit\n" \
-								"    --node=nodename, --node nodename  jump directly to the node nodename\n" \
-								"    --rcfile=file, --rcfile file      use alternate rcfile\n"),
-							argv[0]);
-					exit(0);
-				case 'v':
-					exit(0);
-				case 'm':
-					checksu();
-					if (verbose)
-						printf(_("Looking for man page...\n"));
-					strcpy(filename, "");
-					for (i = optind; i < argc; i++)
-					{
-						strcat(filename, argv[i]);
-						strcat(filename, " ");
-					}
-					exit(handlemanual(filename));
-				case 'f':
-				case 'r':
-					strncpy(filename, argv[argc - 1], 200);
-					/* security check */
-					checkfilename(filename);
-					/* add the raw path to searchpath */
-					addrawpath(filename);
-					tmp = filename + strlen(filename) - 1;
-					/* later, openinfo automaticaly adds them */
-					strip_compression_suffix(filename);
-					/* get basename */
-					while ((tmp > filename) &&(*tmp != '/'))
-						tmp--;
-					if (*tmp == '/')
-						tmp++;
-					/* and try it without '.info' suffix */
-					id = openinfo(tmp, 0);
-					break;
-				case 'a':
-					use_apropos = 1;
-					break;
-				case 'p':
-					use_apropos = 1;
-					plain_apropos = 1;
-					strncpy(filename, argv[argc - 1], 200);
-					exit(handlemanual(filename));
-					break;
-				case 'c':
-					CutManHeaders = 1;
-					break;
-				case 'd':
-					DontHandleWithoutTagTable = 1;
-					break;
-				case 's':
-					CutEmptyManLines = 1;
-					break;
-			}
-		}
-		while (command_line_option != EOF);
+  do {
+    command_line_option = getopt_long (argc, argv,
+				       "hvmfrapcsdtnlx", long_options, NULL);
+    switch (command_line_option) {
+    case 'x':
+      ClearScreenAtExit = 1;
+      break;
+    case 'l':
+      LongManualLinks = 1;
+      break;
+    case 'n':
+      if (!optarg) {
+	printf (_("--node option used without argument\n"));
+	exit (1);
+      }
+      pinfo_start_node = (char *) malloc (strlen (optarg) + 1);
+      strcpy (pinfo_start_node, optarg);
+      break;
+      /* rcfile */
+    case 1:
+      if (!optarg) {
+	printf (_("--rcfile option used without argument\n"));
+	exit (1);
+      }
+      rcfile = strdup (optarg);
+      /* parse user-defined config file */
+      parse_config ();
+      break;
+    case 't':
+      ForceManualTagTable = 1;
+      break;
+    case 'h':
+      printf (_("Usage:\n"
+		"%s [options] [info|manual]\n"
+		"Options:\n"
+		"-h, --help                            help\n"
+		"-v, --version                         version\n"
+		"-m, --manual                          use man page\n"
+		"-r, --raw-filename                    use raw filename\n"
+		"-f, --file                            synonym for -r\n"
+		"-a, --apropos                         call apropos if nothing found\n"
+		"-p, --plain-apropos                   call only apropos\n"
+		"-c, --cut-man-headers                 cut out repeated man headers\n"
+		"-l, --long-manual-links               use long link names in manuals\n"
+		"-s, --squeeze-manlines                cut empty lines from manual pages\n"
+		"-d, --dont-handle-without-tag-table   don't display texinfo pages without tag\n"
+		"                                      tables\n"
+		"-t, --force-manual-tag-table          force manual detection of tag table\n"
+		"-x, --clear-at-exit                   clear screen at exit\n"
+		"    --node=nodename, --node nodename  jump directly to the node nodename\n"
+		"    --rcfile=file, --rcfile file      use alternate rcfile\n"),
+	      argv[0]);
+      exit (0);
+    case 'v':
+      exit (0);
+    case 'm':
+      checksu ();
+      if (verbose)
+	printf (_("Looking for man page...\n"));
+      strcpy (filename, "");
+      for (i = optind; i < argc; i++) {
+	strcat (filename, argv[i]);
+	strcat (filename, " ");
+      }
+      exit (handlemanual (filename));
+    case 'f':
+    case 'r':
+      strncpy (filename, argv[argc - 1], 200);
+      /* security check */
+      checkfilename (filename);
+      /* add the raw path to searchpath */
+      addrawpath (filename);
+      tmp = filename + strlen (filename) - 1;
+      /* later, openinfo automaticaly adds them */
+      strip_compression_suffix (filename);
+      /* get basename */
+      while ((tmp > filename) && (*tmp != '/'))
+	tmp--;
+      if (*tmp == '/')
+	tmp++;
+      /* and try it without '.info' suffix */
+      id = openinfo (tmp, 0);
+      break;
+    case 'a':
+      use_apropos = 1;
+      break;
+    case 'p':
+      use_apropos = 1;
+      plain_apropos = 1;
+      strncpy (filename, argv[argc - 1], 200);
+      exit (handlemanual (filename));
+      break;
+    case 'c':
+      CutManHeaders = 1;
+      break;
+    case 'd':
+      DontHandleWithoutTagTable = 1;
+      break;
+    case 's':
+      CutEmptyManLines = 1;
+      break;
+    }
+  }
+  while (command_line_option != EOF);
 		/***************************************************************/
 #endif
 
-		checksu();
-		initpaths();
+  checksu ();
+  initpaths ();
 
-		if (argc > 1)
-		{
+  if (argc > 1) {
 #ifdef HAVE_GETOPT_LONG
-			if (optind < argc)
-			{
-				/* the paths will be searched by openinfo() */
-				strncpy(filename, argv[optind], 200);
-			}
-			else
-			{
-				strcpy(filename, "dir");
-			}
+    if (optind < argc) {
+      /* the paths will be searched by openinfo() */
+      strncpy (filename, argv[optind], 200);
+    } else {
+      strcpy (filename, "dir");
+    }
 
 #else
-			/* the paths will be searched by openinfo() */
-			strncpy(filename, argv[argc - 1], 200);
+    /* the paths will be searched by openinfo() */
+    strncpy (filename, argv[argc - 1], 200);
 #endif
-			if (filename[0]=='(')
-			{
-				int fnamelen=strlen(filename);
-				/* erase the leading '(' */
-				for (i=0;i<fnamelen;i++)
-					filename[i]=filename[i+1];
-				for (i=0;filename[i]!=')';i++);
-				/* leave the filename part in filename */
-				filename[i]=0;
-				/* copy the node content to pinfo_start_node */
-				if (!pinfo_start_node)
-				{
-					pinfo_start_node=strdup(&filename[i+1]);
-				}
-			}
+    if (filename[0] == '(') {
+      int fnamelen = strlen (filename);
+      /* erase the leading '(' */
+      for (i = 0; i < fnamelen; i++)
+	filename[i] = filename[i + 1];
+      for (i = 0; filename[i] != ')'; i++);
+      /* leave the filename part in filename */
+      filename[i] = 0;
+      /* copy the node content to pinfo_start_node */
+      if (!pinfo_start_node) {
+	pinfo_start_node = strdup (&filename[i + 1]);
+      }
+    }
 
-			/* security check */
-			checkfilename(filename);
+    /* security check */
+    checkfilename (filename);
 
-			/* autodetect raw filenames */
-			if ((strncmp(filename,"../",3)==0)||
-					(strncmp(filename,"./",2)==0)||
-					(filename[0]=='/'))
-			{
-				addrawpath(filename);
-			}
+    /* autodetect raw filenames */
+    if ((strncmp (filename, "../", 3) == 0) ||
+	(strncmp (filename, "./", 2) == 0) || (filename[0] == '/')) {
+      addrawpath (filename);
+    }
 
-			/* leave some space for `.info' suffix */
-			curfile = (char*)xmalloc(strlen(filename) + 100);
-			strcpy(curfile, filename);
-		}
+    /* leave some space for `.info' suffix */
+    curfile = (char *) xmalloc (strlen (filename) + 100);
+    strcpy (curfile, filename);
+  }
 
-		/* no rawpath has been opened */
-		if (id == NULL)
-			id = openinfo(filename, 0);
+  /* no rawpath has been opened */
+  if (id == NULL)
+    id = openinfo (filename, 0);
 
-		/* try to lookup the name in dir file */
-		if (id == NULL)
-		{
-			id = dirpage_lookup(&type, &message, &lines, filename, &pinfo_start_node);
-		}
-		/* if still nothing, try to use man page instead */
-		if (id == NULL)
-		{
-			printf(_("Error: could not open info file, trying manual\n"));
-			exit(handlemanual(filename));
-		}
-		/* search for indirect entries, if any */
-		if (seek_indirect(id))
-		{
-			read_item(id, &type, &message, &lines);
-			load_indirect(message, lines);
-		}
+  /* try to lookup the name in dir file */
+  if (id == NULL) {
+    id =
+      dirpage_lookup (&type, &message, &lines, filename, &pinfo_start_node);
+  }
+  /* if still nothing, try to use man page instead */
+  if (id == NULL) {
+    printf (_("Error: could not open info file, trying manual\n"));
+    exit (handlemanual (filename));
+  }
+  /* search for indirect entries, if any */
+  if (seek_indirect (id)) {
+    read_item (id, &type, &message, &lines);
+    load_indirect (message, lines);
+  }
 
 
-		/* load tag table if such exists... */
-		if (seek_tag_table(id,1) != 2)
-		{
-			if (ForceManualTagTable == 0)
-			{
-				read_item(id, &type, &message, &lines);
-				load_tag_table(message, lines);
-			}
-			else
-			{
-				if (indirect)
-					create_indirect_tag_table();
-				else
-				{
-					fseek(id, SEEK_SET, 0);
-					create_tag_table(id);
-				}
-			}
-		}
-		else /* ...otherwise try to create one */
-		{
-			if ((verbose)&&(strcmp(curfile,"dir")))
-				printf(_("Warning: tag table not found...\n"));
-			if (!DontHandleWithoutTagTable)
-			{
-				if ((verbose)&&(strcmp(curfile,"dir")))
-					printf(_("Trying to create alternate tag table...\n"));
-				create_tag_table(id);
-				/* if there weren't found any info entries */
-				if (TagTableEntries < 1)
-				{
-					printf(_("This doesn't look like info file...\n"));
-					exit(handlemanual(filename));
-				}
-			}
-			else
-				return 1;
-		}
+  /* load tag table if such exists... */
+  if (seek_tag_table (id, 1) != 2) {
+    if (ForceManualTagTable == 0) {
+      read_item (id, &type, &message, &lines);
+      load_tag_table (message, lines);
+    } else {
+      if (indirect)
+	create_indirect_tag_table ();
+      else {
+	fseek (id, SEEK_SET, 0);
+	create_tag_table (id);
+      }
+    }
+  } else {			/* ...otherwise try to create one */
 
-		if (pinfo_start_node)
-		{
-			tag_table_pos = gettagtablepos(pinfo_start_node);
-			if (tag_table_pos == -1)
-			{
-				printf(_("Specified node does not exist...\n"));
-				return 1;
-			}
-		}
-		else
-		{
-			tag_table_pos = gettagtablepos(FirstNodeName);
-		}
-		/* initialize curses screen interface */
-		init_curses();
+    if ((verbose) && (strcmp (curfile, "dir")))
+      printf (_("Warning: tag table not found...\n"));
+    if (!DontHandleWithoutTagTable) {
+      if ((verbose) && (strcmp (curfile, "dir")))
+	printf (_("Trying to create alternate tag table...\n"));
+      create_tag_table (id);
+      /* if there weren't found any info entries */
+      if (TagTableEntries < 1) {
+	printf (_("This doesn't look like info file...\n"));
+	exit (handlemanual (filename));
+      }
+    } else
+      return 1;
+  }
 
-		do
-		{
-			/* set seek offset for given node */
-			seeknode(tag_table_pos, &id);
-			/* read the node */
-			read_item(id, &type, &message, &lines);
+  if (pinfo_start_node) {
+    tag_table_pos = gettagtablepos (pinfo_start_node);
+    if (tag_table_pos == -1) {
+      printf (_("Specified node does not exist...\n"));
+      return 1;
+    }
+  } else {
+    tag_table_pos = gettagtablepos (FirstNodeName);
+  }
+  /* initialize curses screen interface */
+  init_curses ();
 
-			/* handle goto/link where no file was found -- see bellow */
-			if (!filenotfound)
-				addinfohistory(curfile, tag_table[tag_table_pos].nodename, -1, -1, -1);
-			else
-				filenotfound = 0;
-			work_return_value = work(&message, &type, &lines, id, tag_table_pos);
-			if (work_return_value.node)
-			{
-				/* no cross-file link selected */
-				if (work_return_value.file[0] == 0)
-				{
-					int tmppos = gettagtablepos(work_return_value.node);
-					if (tmppos != -1)
-						tag_table_pos = tmppos;
-				}
-				else /* file was specified */
-				{
-					strip_file_from_info_suffix(work_return_value.file);
-					/* file name was the same with the file currently viewed */
-					if (strcmp(curfile, work_return_value.file) == 0)
-					{
-						int tmppos = gettagtablepos(work_return_value.node);
-						if (tmppos != -1)
-							tag_table_pos = tmppos;
-					}
-					else /* open new info file */
-					{
-						char *tmp;
-						fclose(id);
-						/*tmp = addinfosuffix(work_return_value.file); */
-						tmp = strdup(work_return_value.file);
-						clearfilenameprefix();
-						id = openinfo(tmp, 0);
-						xfree(tmp);
-						tmp = 0;
-						/* if the file doesn't exist */
-						if (id == NULL)
-						{
-							attrset(bottomline);
-							mvhline(maxy - 1, 0, ' ', maxx);
-							mvaddstr(maxy - 1, 0, _("File not found. Press any key..."));
-							move(0, 0);
-							attrset(normal);
-							getch();
-							filenotfound = 1;
-							if (infohistory.length)
-							{
-								npos = infohistory.pos[infohistory.length];
-								ncursor = infohistory.cursor[infohistory.length];
-							}
-							/* open back the old file */
-							strip_file_from_info_suffix(curfile);
-							/*tmp = addinfosuffix(curfile); */
-							tmp = strdup(curfile);
-							id = openinfo(tmp, 0);
-							xfree(tmp);
-							tmp = 0;
-							if (id == NULL)
-							{
-								closeprogram();
-								printf(_("Unexpected error.\n"));
-								return 1;
-							}
-						}
-						else /* if we succeeded in opening new file */
-						{
-							if (curfile)
-							{
-								xfree(curfile);
-								curfile = 0;
-							}
-							curfile = (char*)xmalloc(strlen(work_return_value.file) + 150);
-							strcpy(curfile, work_return_value.file);
-							freeindirect();
-							/* find the indirect entry */
-							if (seek_indirect(id))
-							{
-								/* read it */
-								read_item(id, &type, &message, &lines);
-								/* initialize indirect entries */
-								load_indirect(message, lines);
-							}
-							/* free old tag table */
-							freetagtable();
-							/* search for the new tagtable */
-							if (seek_tag_table(id,0) != 2)
-							{
-								/*
-								 * if no manual initialization requested,
-								 * load the tag table
-								 */
-								if (ForceManualTagTable == 0)
-								{
-									read_item(id, &type, &message, &lines);
-									load_tag_table(message, lines);
-								}
-								else /* create tag table manually */
-								{
-									if (indirect)
-										create_indirect_tag_table();
-									else
-									{
-										fseek(id, SEEK_SET, 0);
-										create_tag_table(id);
-									}
-								}
-							}
-							else /* no tagtable found */
-							{
-								if (!DontHandleWithoutTagTable)
-								{
-									TagTableEntries = 0;
-									mvhline(maxy - 1, 0, ' ', maxx);
-									mvaddstr(maxy - 1, 0, _("Tag table not found. Trying to create alternate..."));
-									create_tag_table(id);
-									if (TagTableEntries < 1)
-									{
-										closeprogram();
-										printf(_("This doesn't look like info file...\n"));
-										return 1;
-									}
-								}
-								else
-									return 1;
-							}
-							if (work_return_value.node[0] != 0)
-							{
-								int tmptagtablepos = gettagtablepos(work_return_value.node);
-								if (tmptagtablepos != -1)
-									tag_table_pos = tmptagtablepos;
-								else
-									tag_table_pos = gettagtablepos(FirstNodeName);
-							}
-							else
-								tag_table_pos = gettagtablepos(FirstNodeName);
+  do {
+    /* set seek offset for given node */
+    seeknode (tag_table_pos, &id);
+    /* read the node */
+    read_item (id, &type, &message, &lines);
 
-						}		/* end: open new info file -- file exists */
-					}		/* end: open new info file */
-				}			/* end: file name was specified */
-			}			/* end: node was specified in work return value */
+    /* handle goto/link where no file was found -- see bellow */
+    if (!filenotfound)
+      addinfohistory (curfile, tag_table[tag_table_pos].nodename, -1, -1, -1);
+    else
+      filenotfound = 0;
+    work_return_value = work (&message, &type, &lines, id, tag_table_pos);
+    if (work_return_value.node) {
+      /* no cross-file link selected */
+      if (work_return_value.file[0] == 0) {
+	int tmppos = gettagtablepos (work_return_value.node);
+	if (tmppos != -1)
+	  tag_table_pos = tmppos;
+      } else {			/* file was specified */
+
+	strip_file_from_info_suffix (work_return_value.file);
+	/* file name was the same with the file currently viewed */
+	if (strcmp (curfile, work_return_value.file) == 0) {
+	  int tmppos = gettagtablepos (work_return_value.node);
+	  if (tmppos != -1)
+	    tag_table_pos = tmppos;
+	} else {		/* open new info file */
+
+	  char *tmp;
+	  fclose (id);
+	  /*tmp = addinfosuffix(work_return_value.file); */
+	  tmp = strdup (work_return_value.file);
+	  clearfilenameprefix ();
+	  id = openinfo (tmp, 0);
+	  xfree (tmp);
+	  tmp = 0;
+	  /* if the file doesn't exist */
+	  if (id == NULL) {
+	    attrset (bottomline);
+	    mvhline (maxy - 1, 0, ' ', maxx);
+	    mvaddstr (maxy - 1, 0, _("File not found. Press any key..."));
+	    move (0, 0);
+	    attrset (normal);
+	    getch ();
+	    filenotfound = 1;
+	    if (infohistory.length) {
+	      npos = infohistory.pos[infohistory.length];
+	      ncursor = infohistory.cursor[infohistory.length];
+	    }
+	    /* open back the old file */
+	    strip_file_from_info_suffix (curfile);
+	    /*tmp = addinfosuffix(curfile); */
+	    tmp = strdup (curfile);
+	    id = openinfo (tmp, 0);
+	    xfree (tmp);
+	    tmp = 0;
+	    if (id == NULL) {
+	      closeprogram ();
+	      printf (_("Unexpected error.\n"));
+	      return 1;
+	    }
+	  } else {		/* if we succeeded in opening new file */
+
+	    if (curfile) {
+	      xfree (curfile);
+	      curfile = 0;
+	    }
+	    curfile =
+	      (char *) xmalloc (strlen (work_return_value.file) + 150);
+	    strcpy (curfile, work_return_value.file);
+	    freeindirect ();
+	    /* find the indirect entry */
+	    if (seek_indirect (id)) {
+	      /* read it */
+	      read_item (id, &type, &message, &lines);
+	      /* initialize indirect entries */
+	      load_indirect (message, lines);
+	    }
+	    /* free old tag table */
+	    freetagtable ();
+	    /* search for the new tagtable */
+	    if (seek_tag_table (id, 0) != 2) {
+	      /*
+	       * if no manual initialization requested,
+	       * load the tag table
+	       */
+	      if (ForceManualTagTable == 0) {
+		read_item (id, &type, &message, &lines);
+		load_tag_table (message, lines);
+	      } else {		/* create tag table manually */
+
+		if (indirect)
+		  create_indirect_tag_table ();
+		else {
+		  fseek (id, SEEK_SET, 0);
+		  create_tag_table (id);
 		}
-		while (work_return_value.node);
-		fclose(id);
-		closeprogram();
-		/* free's at the end are optional, but look nice :) */
-		freelinks();
-		freeitem(&type, &message, &lines);
-		freetagtable();
-		freeindirect();
-		return 0;
+	      }
+	    } else {		/* no tagtable found */
+
+	      if (!DontHandleWithoutTagTable) {
+		TagTableEntries = 0;
+		mvhline (maxy - 1, 0, ' ', maxx);
+		mvaddstr (maxy - 1, 0,
+			  _
+			  ("Tag table not found. Trying to create alternate..."));
+		create_tag_table (id);
+		if (TagTableEntries < 1) {
+		  closeprogram ();
+		  printf (_("This doesn't look like info file...\n"));
+		  return 1;
+		}
+	      } else
+		return 1;
+	    }
+	    if (work_return_value.node[0] != 0) {
+	      int tmptagtablepos = gettagtablepos (work_return_value.node);
+	      if (tmptagtablepos != -1)
+		tag_table_pos = tmptagtablepos;
+	      else
+		tag_table_pos = gettagtablepos (FirstNodeName);
+	    } else
+	      tag_table_pos = gettagtablepos (FirstNodeName);
+
+	  }			/* end: open new info file -- file exists */
+	}			/* end: open new info file */
+      }				/* end: file name was specified */
+    }				/* end: node was specified in work return value */
+  }
+  while (work_return_value.node);
+  fclose (id);
+  closeprogram ();
+  /* free's at the end are optional, but look nice :) */
+  freelinks ();
+  freeitem (&type, &message, &lines);
+  freetagtable ();
+  freeindirect ();
+  return 0;
 }
 
 void
-strip_file_from_info_suffix(char *file)
+strip_file_from_info_suffix (char *file)
 {
-	if (strlen(file) > 5)
-	{
-		if (strcmp(file + strlen(file) - 5, ".info") == 0)
-		{
-			file = file + strlen(file) - 5;
-			*file = 0;
-		}
-	}
+  if (strlen (file) > 5) {
+    if (strcmp (file + strlen (file) - 5, ".info") == 0) {
+      file = file + strlen (file) - 5;
+      *file = 0;
+    }
+  }
 }
 
 char *
-addinfosuffix(char *info)
+addinfosuffix (char *info)
 {
-	char *withsuffix = (char*)xmalloc(strlen(info) + 150);
-	strcpy(withsuffix, info);
-	if (strlen(info) == 3)
-	{
-		if (strcmp("dir", info) != 0)
-			strcat(withsuffix, ".info");
-	}
-	else
-		strcat(withsuffix, ".info");
+  char *withsuffix = (char *) xmalloc (strlen (info) + 150);
+  strcpy (withsuffix, info);
+  if (strlen (info) == 3) {
+    if (strcmp ("dir", info) != 0)
+      strcat (withsuffix, ".info");
+  } else
+    strcat (withsuffix, ".info");
 
-	return withsuffix;
+  return withsuffix;
 }
 
 /*
@@ -570,49 +511,42 @@
  * be used for breaking the system's security.
  */
 void
-checksu()
+checksu ()
 {
-	struct passwd *pswd;
-	struct group *grwd;
+  struct passwd *pswd;
+  struct group *grwd;
 
-	if (!getegid() || !getgid())
-	{
-		grwd = getgrnam(safe_group);
-		if (!grwd)
-		{
-			if (verbose)
-			{
-				printf(_("Security warning: Unable to get GID of group called: %s\n"), safe_group);
-				sleep(1);
-			}
-		}
-		else
-		{
-			if (!getgid() && !getuid())
-				setgid(grwd->gr_gid);
-			else
-				setegid(grwd->gr_gid);
-		}
-	}
+  if (!getegid () || !getgid ()) {
+    grwd = getgrnam (safe_group);
+    if (!grwd) {
+      if (verbose) {
+	printf (_
+		("Security warning: Unable to get GID of group called: %s\n"),
+		safe_group);
+	sleep (1);
+      }
+    } else {
+      if (!getgid () && !getuid ())
+	setgid (grwd->gr_gid);
+      else
+	setegid (grwd->gr_gid);
+    }
+  }
 
-	if (!geteuid() || !getuid())
-	{
-		pswd = getpwnam(safe_user);
-		if (!pswd)
-		{
-			if (verbose)
-			{
-				printf(_("Security warning: Unable to get UID of user called: %s\n"), safe_user);
-				sleep(1);
-			}
-		}
-		else
-		{
-			if (!getuid())
-				setuid(pswd->pw_uid);
-			else
-				seteuid(pswd->pw_uid);
-		}
-	}
+  if (!geteuid () || !getuid ()) {
+    pswd = getpwnam (safe_user);
+    if (!pswd) {
+      if (verbose) {
+	printf (_("Security warning: Unable to get UID of user called: %s\n"),
+		safe_user);
+	sleep (1);
+      }
+    } else {
+      if (!getuid ())
+	setuid (pswd->pw_uid);
+      else
+	seteuid (pswd->pw_uid);
+    }
+  }
 
 }

Modified: pinfo/branches/cxx/src/printinfo.cxx
===================================================================
--- pinfo/branches/cxx/src/printinfo.cxx	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/printinfo.cxx	2005-08-26 08:41:40 UTC (rev 41)
@@ -22,69 +22,76 @@
 
 #include "common_includes.h"
 #include <string>
-using std::string;
+using
+  std::string;
 
-RCSID("$Id$")
+RCSID ("$Id$")
 
 /*
  * Algorithm: We first print highlights, then we send `\r' to the printer,
  * and we draw the base line. Thus highlights are printed `twice', and
  * are darker than the rest :)
  */
-void
-printnode(char ***message, long *lines)
+     void
+     printnode (char ***message, long *lines)
 {
-	/* printer fd */
-	FILE *prnFD;
+  /* printer fd */
+  FILE *
+    prnFD;
 
-	prnFD = popen(printutility, "w");
+  prnFD = popen (printutility, "w");
 
-	/* scan through all lines */
-	for (int i = 1; i < (*lines); i++) {
-		/*
-		 * This says where the printer's head is right now,
-		 * offset in columns from the beginning of the line
-		 */
-		int lineprinted = 0;
-		/*
-		 * Handle the highlights which belong to our (i'th) line.
-		 */
-		int highlight = 0; /* counter to track which highlights have been handled */
-		while (hyperobjects[highlight].line <= i) {
-			string mynode;
-			/* build a complete highlighted text */
-			if (hyperobjects[highlight].file[0] == 0)
-				mynode = hyperobjects[highlight].node;
-			else {
-				mynode.assign("(");
-				mynode.append(hyperobjects[highlight].file);
-				mynode.append(")");
-				mynode.append(hyperobjects[highlight].node);
-			}
-			/* if it's a contiunuation of last's line highlight */
-			if (hyperobjects[highlight].line == i - 1) {
-				int length = 1;
-				if (hyperobjects[highlight].breakpos == -1)
-					length = mynode.length() - hyperobjects[highlight].breakpos;
-				string trimmed;
-				trimmed = mynode.substr(length - hyperobjects[highlight].breakpos,
-				                        string::npos);
-				fputs(trimmed.c_str(), prnFD);
-				lineprinted += trimmed.length();
-			} else if (hyperobjects[highlight].line == i) {
-				for (int j = 0; j < hyperobjects[highlight].col - lineprinted; j++)
-					fputc(' ', prnFD);
-				fputs(mynode.c_str(), prnFD);
-				lineprinted = hyperobjects[highlight].col + mynode.length();
-			}
-			if (highlight < hyperobjectcount - 1)
-				highlight++;
-			else
-				break;
-		}
-		/* Carriage return and print the whole line. */
-		fputc('\r', prnFD);
-		fputs( (*message)[i], prnFD);
-	}
-	pclose(prnFD);
+  /* scan through all lines */
+  for (int i = 1; i < (*lines); i++) {
+    /*
+     * This says where the printer's head is right now,
+     * offset in columns from the beginning of the line
+     */
+    int
+      lineprinted = 0;
+    /*
+     * Handle the highlights which belong to our (i'th) line.
+     */
+    int
+      highlight = 0;		/* counter to track which highlights have been handled */
+    while (hyperobjects[highlight].line <= i) {
+      string
+	mynode;
+      /* build a complete highlighted text */
+      if (hyperobjects[highlight].file[0] == 0)
+	mynode = hyperobjects[highlight].node;
+      else {
+	mynode.assign ("(");
+	mynode.append (hyperobjects[highlight].file);
+	mynode.append (")");
+	mynode.append (hyperobjects[highlight].node);
+      }
+      /* if it's a contiunuation of last's line highlight */
+      if (hyperobjects[highlight].line == i - 1) {
+	int
+	  length = 1;
+	if (hyperobjects[highlight].breakpos == -1)
+	  length = mynode.length () - hyperobjects[highlight].breakpos;
+	string
+	  trimmed;
+	trimmed = mynode.substr (length - hyperobjects[highlight].breakpos,
+				 string::npos);
+	fputs (trimmed.c_str (), prnFD);
+	lineprinted += trimmed.length ();
+      } else if (hyperobjects[highlight].line == i) {
+	for (int j = 0; j < hyperobjects[highlight].col - lineprinted; j++)
+	  fputc (' ', prnFD);
+	fputs (mynode.c_str (), prnFD);
+	lineprinted = hyperobjects[highlight].col + mynode.length ();
+      }
+      if (highlight < hyperobjectcount - 1)
+	highlight++;
+      else
+	break;
+    }
+    /* Carriage return and print the whole line. */
+    fputc ('\r', prnFD);
+    fputs ((*message)[i], prnFD);
+  }
+  pclose (prnFD);
 }

Modified: pinfo/branches/cxx/src/regexp_search.cxx
===================================================================
--- pinfo/branches/cxx/src/regexp_search.cxx	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/regexp_search.cxx	2005-08-26 08:41:40 UTC (rev 41)
@@ -21,160 +21,138 @@
 
 #include"common_includes.h"
 
-RCSID("$Id$")
-
+RCSID ("$Id$")
 #ifndef ___DONT_USE_REGEXP_SEARCH___
 #include"regex.h"
 #include<ctype.h>
 /* adapted partialy from midnight commander view regexp search */
+     enum
+     {
+       match_file, match_normal
+     };
 
-enum
+     int __regexp_search (char *pattern, char *string)
 {
-	match_file, match_normal
-};
+  int match_type = match_normal;
+  static char *old_pattern = NULL;
+  static int old_type;
+  regmatch_t pmatch[1];
+  int i, flags = REG_ICASE;
+  int rval;
 
-int
-__regexp_search(char *pattern, char *string)
-{
-	int match_type = match_normal;
-	static char *old_pattern = NULL;
-	static int old_type;
-	regmatch_t pmatch[1];
-	int i, flags = REG_ICASE;
-	int rval;
-
-	if (!old_pattern || strcmp(old_pattern, pattern) || old_type != match_type)
-	{
-		if (old_pattern)
-		{
-			free(old_pattern);
-			old_pattern = 0;
-		}
-		for (i = 0; pattern[i] != 0; i++)
-		{
-			if (isupper((unsigned char) pattern[i]))
-			{
-				flags = 0;
-				break;
-			}
-		}
-		flags |= REG_EXTENDED;
-		if (pinfo_re_offset == -1)
-		{
-			pinfo_re_offset = h_regexp_num;
-			if (!h_regexp_num)
-				h_regexp = (regex_t*)malloc(sizeof(regex_t));
-			else
-				h_regexp = (regex_t*)realloc(h_regexp, sizeof(regex_t) *(h_regexp_num + 1));
-		}
-		else
-		{
-			regfree(&h_regexp[pinfo_re_offset]);
-		}
-		/* invalid regexp */
-		if (regcomp(&h_regexp[pinfo_re_offset], pattern, flags))
-		{
-			return 0;
-		}
-		old_pattern = strdup(pattern);
-		old_type = match_type;
-	}
-	rval = regexec(&h_regexp[pinfo_re_offset], string, 1, pmatch, 0);
-	if (rval != 0)
-		return -1;
-	else
-		return pmatch[0].rm_so;
+  if (!old_pattern || strcmp (old_pattern, pattern) || old_type != match_type) {
+    if (old_pattern) {
+      free (old_pattern);
+      old_pattern = 0;
+    }
+    for (i = 0; pattern[i] != 0; i++) {
+      if (isupper ((unsigned char) pattern[i])) {
+	flags = 0;
+	break;
+      }
+    }
+    flags |= REG_EXTENDED;
+    if (pinfo_re_offset == -1) {
+      pinfo_re_offset = h_regexp_num;
+      if (!h_regexp_num)
+	h_regexp = (regex_t *) malloc (sizeof (regex_t));
+      else
+	h_regexp =
+	  (regex_t *) realloc (h_regexp,
+			       sizeof (regex_t) * (h_regexp_num + 1));
+    } else {
+      regfree (&h_regexp[pinfo_re_offset]);
+    }
+    /* invalid regexp */
+    if (regcomp (&h_regexp[pinfo_re_offset], pattern, flags)) {
+      return 0;
+    }
+    old_pattern = strdup (pattern);
+    old_type = match_type;
+  }
+  rval = regexec (&h_regexp[pinfo_re_offset], string, 1, pmatch, 0);
+  if (rval != 0)
+    return -1;
+  else
+    return pmatch[0].rm_so;
 }
 
 int
-regexp_search(char *pattern, char *string)
+regexp_search (char *pattern, char *string)
 {
-	int newlines = 0, ptr_offset = -1;
-	char *__newlines[2];
-	char *str = string;
-	char *start = str;
-	while (*str)
-	{
-		if (*str == '\n')
-		{
-			__newlines[newlines] = str + 1;
-			newlines++;
-		}
-		if (newlines == 2)
-		{
-			*str = 0;
-			ptr_offset = __regexp_search(pattern, start);
-			*str = '\n';
-			newlines = 1;
-			if (ptr_offset != -1)
-				return (start - string) + ptr_offset;
-			if (*(__newlines[0] + 1) != 0)
-				start = __newlines[0] + 1;
-			if (ptr_offset == -1)
-			{
-				__newlines[0] = __newlines[1];
-			}
-		}
-		str++;
-	}
-	ptr_offset = __regexp_search(pattern, start);
-	if (ptr_offset != -1)
-	{
-		return (start - string) + ptr_offset;
-	}
-	else
-		return -1;
+  int newlines = 0, ptr_offset = -1;
+  char *__newlines[2];
+  char *str = string;
+  char *start = str;
+  while (*str) {
+    if (*str == '\n') {
+      __newlines[newlines] = str + 1;
+      newlines++;
+    }
+    if (newlines == 2) {
+      *str = 0;
+      ptr_offset = __regexp_search (pattern, start);
+      *str = '\n';
+      newlines = 1;
+      if (ptr_offset != -1)
+	return (start - string) + ptr_offset;
+      if (*(__newlines[0] + 1) != 0)
+	start = __newlines[0] + 1;
+      if (ptr_offset == -1) {
+	__newlines[0] = __newlines[1];
+      }
+    }
+    str++;
+  }
+  ptr_offset = __regexp_search (pattern, start);
+  if (ptr_offset != -1) {
+    return (start - string) + ptr_offset;
+  } else
+    return -1;
 }
 #else /* non-regexp version of search */
-int
-__regexp_search(char *pattern, char *string)
+     int __regexp_search (char *pattern, char *string)
 {
-	char *found = strstr(string, pattern);
-	if (found == NULL)
-		return -1;
-	else
-		return (long)(found - string);
+  char *found = strstr (string, pattern);
+  if (found == NULL)
+    return -1;
+  else
+    return (long) (found - string);
 }
 
 int
-regexp_search(char *pattern, char *string)
+regexp_search (char *pattern, char *string)
 {
-	int newlines = 0, ptr_offset = -1;
-	char *found;
-	char *__newlines[2];
-	char *str = string;
-	char *start = str;
-	while (*str)
-	{
-		if (*str == '\n')
-		{
-			__newlines[newlines] = str + 1;
-			newlines++;
-		}
-		if (newlines == 2)
-		{
-			*str = 0;
-			ptr_offset = __regexp_search(pattern, start);
-			*str = '\n';
-			newlines = 1;
-			if (ptr_offset != -1)
-				return (start - string) + ptr_offset;
-			if (*(__newlines[0] + 1) != 0)
-				start = __newlines[0] + 1;
-			if (ptr_offset == -1)
-			{
-				__newlines[0] = __newlines[1];
-			}
-		}
-		str++;
-	}
-	ptr_offset = __regexp_search(pattern, start);
-	if (ptr_offset != -1)
-	{
-		return (start - string) + ptr_offset;
-	}
-	else
-		return -1;
+  int newlines = 0, ptr_offset = -1;
+  char *found;
+  char *__newlines[2];
+  char *str = string;
+  char *start = str;
+  while (*str) {
+    if (*str == '\n') {
+      __newlines[newlines] = str + 1;
+      newlines++;
+    }
+    if (newlines == 2) {
+      *str = 0;
+      ptr_offset = __regexp_search (pattern, start);
+      *str = '\n';
+      newlines = 1;
+      if (ptr_offset != -1)
+	return (start - string) + ptr_offset;
+      if (*(__newlines[0] + 1) != 0)
+	start = __newlines[0] + 1;
+      if (ptr_offset == -1) {
+	__newlines[0] = __newlines[1];
+      }
+    }
+    str++;
+  }
+  ptr_offset = __regexp_search (pattern, start);
+  if (ptr_offset != -1) {
+    return (start - string) + ptr_offset;
+  } else
+    return -1;
 }
 
 #endif

Modified: pinfo/branches/cxx/src/sigblock.cxx
===================================================================
--- pinfo/branches/cxx/src/sigblock.cxx	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/sigblock.cxx	2005-08-26 08:41:40 UTC (rev 41)
@@ -23,46 +23,42 @@
 #endif
 
 #include "rcsid.h"
-RCSID("$Id$")
-
+RCSID ("$Id$")
 #ifndef HAVE_SIGBLOCK
-
 #include <errno.h>
 #include <signal.h>
 #include "sigblock.h"
-
 /* Block signals in MASK, returning the old mask.  */
-int
-sigblock(int mask)
+     int sigblock (int mask)
 {
-	register int sig;
-	sigset_t set, oset;
+  register int sig;
+  sigset_t set, oset;
 
-	if (sigemptyset(&set) < 0)
-		return -1;
+  if (sigemptyset (&set) < 0)
+    return -1;
 
-	if (sizeof(mask) == sizeof(set))
-		*(int *) &set = mask;
-	else if (sizeof(unsigned long int) == sizeof(set))
-		*(unsigned long int *) &set =(unsigned int) mask;
-	else
-		for (sig = 1; sig < NSIG && sig <= sizeof(mask) * 8; ++sig)
-			if ((mask & sigmask(sig)) && sigaddset(&set, sig) < 0)
-				return -1;
+  if (sizeof (mask) == sizeof (set))
+    *(int *) &set = mask;
+  else if (sizeof (unsigned long int) == sizeof (set))
+    *(unsigned long int *) &set = (unsigned int) mask;
+  else
+    for (sig = 1; sig < NSIG && sig <= sizeof (mask) * 8; ++sig)
+      if ((mask & sigmask (sig)) && sigaddset (&set, sig) < 0)
+	return -1;
 
-	if (sigprocmask(SIG_BLOCK, &set, &oset) < 0)
-		return -1;
+  if (sigprocmask (SIG_BLOCK, &set, &oset) < 0)
+    return -1;
 
-	if (sizeof(mask) == sizeof(oset))
-		mask = *(int *) &oset;
-	else if (sizeof(unsigned long int) == sizeof(oset))
-		mask = *(unsigned long int *) &oset;
-	else
-		for (sig = 1, mask = 0; sig < NSIG && sig <= sizeof(mask) * 8; ++sig)
-			if (sigismember(&oset, sig))
-				mask |= sigmask(sig);
+  if (sizeof (mask) == sizeof (oset))
+    mask = *(int *) &oset;
+  else if (sizeof (unsigned long int) == sizeof (oset))
+    mask = *(unsigned long int *) &oset;
+  else
+    for (sig = 1, mask = 0; sig < NSIG && sig <= sizeof (mask) * 8; ++sig)
+      if (sigismember (&oset, sig))
+	mask |= sigmask (sig);
 
-	return mask;
+  return mask;
 }
 
 #endif /* HAVE_SIGBLOCK */

Modified: pinfo/branches/cxx/src/signal_handler.cxx
===================================================================
--- pinfo/branches/cxx/src/signal_handler.cxx	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/signal_handler.cxx	2005-08-26 08:41:40 UTC (rev 41)
@@ -24,38 +24,35 @@
 #include "sigblock.h"
 #endif
 
-RCSID("$Id$")
-
+RCSID ("$Id$")
 #include <termios.h>
 #include <sys/ioctl.h>
-
-void
-handle_crash(int signum)
+     void handle_crash (int signum)
 {
-	closeprogram();
-	fprintf(stderr, "Caught signal %d, bye!\n", signum);
-	if (signum == SIGSEGV)
-		perror("pinfo: crash with");
-	exit(1);
+  closeprogram ();
+  fprintf (stderr, "Caught signal %d, bye!\n", signum);
+  if (signum == SIGSEGV)
+    perror ("pinfo: crash with");
+  exit (1);
 }
 
 void
-handle_window_resize(int signum)
+handle_window_resize (int signum)
 {
-	winchanged = 1;
-	ungetch(keys.refresh_1);
-	signal(SIGWINCH, handle_window_resize);
+  winchanged = 1;
+  ungetch (keys.refresh_1);
+  signal (SIGWINCH, handle_window_resize);
 }
 
 void
-install_signal_handlers()
+install_signal_handlers ()
 {
-	signal(SIGINT, handle_crash);	/* handle ^C */
-	signal(SIGTERM, handle_crash);	/* handle soft kill */
-	signal(SIGSEGV, handle_crash);	/* handle seg. fault */
-	signal(SIGHUP, handle_crash);	/* handle hup signal */
+  signal (SIGINT, handle_crash);	/* handle ^C */
+  signal (SIGTERM, handle_crash);	/* handle soft kill */
+  signal (SIGSEGV, handle_crash);	/* handle seg. fault */
+  signal (SIGHUP, handle_crash);	/* handle hup signal */
 #ifdef SIGWINCH
-	signal(SIGWINCH, handle_window_resize);
+  signal (SIGWINCH, handle_window_resize);
 #endif
-	sigblock(sigmask(SIGPIPE));	/* block broken pipe signal */
+  sigblock (sigmask (SIGPIPE));	/* block broken pipe signal */
 }

Modified: pinfo/branches/cxx/src/signal_handler.h
===================================================================
--- pinfo/branches/cxx/src/signal_handler.h	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/signal_handler.h	2005-08-26 08:41:40 UTC (rev 41)
@@ -21,5 +21,5 @@
 
 #ifndef __SIGNAL_HANDLER_H
 #define __SIGNAL_HANDLER_H
-void install_signal_handlers ();		/* handles various signals, coming to pinfo */
+void install_signal_handlers ();	/* handles various signals, coming to pinfo */
 #endif

Modified: pinfo/branches/cxx/src/snprintf.cxx
===================================================================
--- pinfo/branches/cxx/src/snprintf.cxx	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/snprintf.cxx	2005-08-26 08:41:40 UTC (rev 41)
@@ -45,21 +45,15 @@
 #endif
 
 #include "rcsid.h"
-RCSID("$Id$")
+RCSID ("$Id$")
 
-
 #if !defined(HAVE_SNPRINTF) || !defined(HAVE_VSNPRINTF)
-
 #include <string.h>
 #include <ctype.h>
 #include <sys/types.h>
-
 /* Define this as a fall through, HAVE_STDARG_H is probably already set */
-
 #define HAVE_VARARGS_H
-
 /* varargs declarations: */
-
 #if defined(HAVE_STDARG_H)
 #include <stdarg.h>
 #define HAVE_STDARGS		/* let's hope that works everywhere(mj) */
@@ -79,24 +73,22 @@
 /*XX ** NO VARARGS ** XX */
 #endif
 #endif
-
 /*int snprintf(char *str, size_t count, const char *fmt, ...); */
 /*int vsnprintf(char *str, size_t count, const char *fmt, va_list arg); */
+     static void
+       dopr (char *buffer, size_t maxlen, const char *format, va_list args);
+     static void
+       fmtstr (char *buffer, size_t * currlen, size_t maxlen, char *value,
+	       int flags, int min, int max);
+     static void
+       fmtint (char *buffer, size_t * currlen, size_t maxlen, long value,
+	       int base, int min, int max, int flags);
+     static void
+       fmtfp (char *buffer, size_t * currlen, size_t maxlen,
+	      long double fvalue, int min, int max, int flags);
+     static void dopr_outch (char *buffer, size_t * currlen, size_t maxlen,
+			     char c);
 
-static void
-dopr(char *buffer, size_t maxlen, const char *format, va_list args);
-static void
-fmtstr(char *buffer, size_t * currlen, size_t maxlen, char *value,
-		int flags, int min, int max);
-static void
-fmtint(char *buffer, size_t * currlen, size_t maxlen, long value,
-		int base, int min, int max, int flags);
-static void
-fmtfp(char *buffer, size_t * currlen, size_t maxlen, long double fvalue,
-		int min, int max, int flags);
-static void
-dopr_outch(char *buffer, size_t * currlen, size_t maxlen, char c);
-
 /*
  * dopr(): poor man's version of doprintf
  */
@@ -128,620 +120,576 @@
 #define char_to_int(p)(p - '0')
 #define MAX(p,q)((p >= q) ? p : q)
 
-static void
-dopr(char *buffer, size_t maxlen, const char *format, va_list args)
+     static void
+       dopr (char *buffer, size_t maxlen, const char *format, va_list args)
 {
-	char ch;
-	long value;
-	long double fvalue;
-	char *strvalue;
-	int min;
-	int max;
-	int state;
-	int flags;
-	int cflags;
-	size_t currlen;
+  char ch;
+  long value;
+  long double fvalue;
+  char *strvalue;
+  int min;
+  int max;
+  int state;
+  int flags;
+  int cflags;
+  size_t currlen;
 
-	state = DP_S_DEFAULT;
-	currlen = flags = cflags = min = 0;
-	max = -1;
-	ch = *format++;
+  state = DP_S_DEFAULT;
+  currlen = flags = cflags = min = 0;
+  max = -1;
+  ch = *format++;
 
-	while (state != DP_S_DONE)
-	{
-		if ((ch == '\0') ||(currlen >= maxlen))
-			state = DP_S_DONE;
+  while (state != DP_S_DONE) {
+    if ((ch == '\0') || (currlen >= maxlen))
+      state = DP_S_DONE;
 
-		switch(state)
-		{
-			case DP_S_DEFAULT:
-				if (ch == '%')
-					state = DP_S_FLAGS;
-				else
-					dopr_outch(buffer, &currlen, maxlen, ch);
-				ch = *format++;
-				break;
-			case DP_S_FLAGS:
-				switch(ch)
-				{
-					case '-':
-						flags |= DP_F_MINUS;
-						ch = *format++;
-						break;
-					case '+':
-						flags |= DP_F_PLUS;
-						ch = *format++;
-						break;
-					case ' ':
-						flags |= DP_F_SPACE;
-						ch = *format++;
-						break;
-					case '#':
-						flags |= DP_F_NUM;
-						ch = *format++;
-						break;
-					case '0':
-						flags |= DP_F_ZERO;
-						ch = *format++;
-						break;
-					default:
-						state = DP_S_MIN;
-						break;
-				}
-				break;
-			case DP_S_MIN:
-				if (isdigit((unsigned char) ch))
-				{
-					min = 10 * min + char_to_int(ch);
-					ch = *format++;
-				}
-				else if (ch == '*')
-				{
-					min = va_arg(args, int);
-					ch = *format++;
-					state = DP_S_DOT;
-				}
-				else
-					state = DP_S_DOT;
-				break;
-			case DP_S_DOT:
-				if (ch == '.')
-				{
-					state = DP_S_MAX;
-					ch = *format++;
-				}
-				else
-					state = DP_S_MOD;
-				break;
-			case DP_S_MAX:
-				if (isdigit((unsigned char) ch))
-				{
-					if (max < 0)
-						max = 0;
-					max = 10 * max + char_to_int(ch);
-					ch = *format++;
-				}
-				else if (ch == '*')
-				{
-					max = va_arg(args, int);
-					ch = *format++;
-					state = DP_S_MOD;
-				}
-				else
-					state = DP_S_MOD;
-				break;
-			case DP_S_MOD:
-				/* Currently, we don't support Long Long, bummer */
-				switch(ch)
-				{
-					case 'h':
-						cflags = DP_C_SHORT;
-						ch = *format++;
-						break;
-					case 'l':
-						cflags = DP_C_LONG;
-						ch = *format++;
-						break;
-					case 'L':
-						cflags = DP_C_LDOUBLE;
-						ch = *format++;
-						break;
-					default:
-						break;
-				}
-				state = DP_S_CONV;
-				break;
-			case DP_S_CONV:
-				switch(ch)
-				{
-					case 'd':
-					case 'i':
-						if (cflags == DP_C_SHORT)
-							value = va_arg(args, short int);
-						else if (cflags == DP_C_LONG)
-							value = va_arg(args, long int);
-						else
-							value = va_arg(args, int);
-						fmtint(buffer, &currlen, maxlen, value, 10, min, max, flags);
-						break;
-					case 'o':
-						flags |= DP_F_UNSIGNED;
-						if (cflags == DP_C_SHORT)
-							value = va_arg(args, unsigned short int);
-						else if (cflags == DP_C_LONG)
-							value = va_arg(args, unsigned long int);
-						else
-							value = va_arg(args, unsigned int);
-						fmtint(buffer, &currlen, maxlen, value, 8, min, max, flags);
-						break;
-					case 'u':
-						flags |= DP_F_UNSIGNED;
-						if (cflags == DP_C_SHORT)
-							value = va_arg(args, unsigned short int);
-						else if (cflags == DP_C_LONG)
-							value = va_arg(args, unsigned long int);
-						else
-							value = va_arg(args, unsigned int);
-						fmtint(buffer, &currlen, maxlen, value, 10, min, max, flags);
-						break;
-					case 'X':
-						flags |= DP_F_UP;
-					case 'x':
-						flags |= DP_F_UNSIGNED;
-						if (cflags == DP_C_SHORT)
-							value = va_arg(args, unsigned short int);
-						else if (cflags == DP_C_LONG)
-							value = va_arg(args, unsigned long int);
-						else
-							value = va_arg(args, unsigned int);
-						fmtint(buffer, &currlen, maxlen, value, 16, min, max, flags);
-						break;
-					case 'f':
-						if (cflags == DP_C_LDOUBLE)
-							fvalue = va_arg(args, long double);
-						else
-							fvalue = va_arg(args, double);
-						/* um, floating point? */
-						fmtfp(buffer, &currlen, maxlen, fvalue, min, max, flags);
-						break;
-					case 'E':
-						flags |= DP_F_UP;
-					case 'e':
-						if (cflags == DP_C_LDOUBLE)
-							fvalue = va_arg(args, long double);
-						else
-							fvalue = va_arg(args, double);
-						break;
-					case 'G':
-						flags |= DP_F_UP;
-					case 'g':
-						if (cflags == DP_C_LDOUBLE)
-							fvalue = va_arg(args, long double);
-						else
-							fvalue = va_arg(args, double);
-						break;
-					case 'c':
-						dopr_outch(buffer, &currlen, maxlen, va_arg(args, int));
-						break;
-					case 's':
-						strvalue = va_arg(args, char *);
-						if (max < 0)
-							max = maxlen;	/* ie, no max */
-						fmtstr(buffer, &currlen, maxlen, strvalue, flags, min, max);
-						break;
-					case 'p':
-						strvalue = va_arg(args, void *);
-						fmtint(buffer, &currlen, maxlen,(long) strvalue, 16, min, max, flags);
-						break;
-					case 'n':
-						if (cflags == DP_C_SHORT)
-						{
-							short int *num;
-							num = va_arg(args, short int *);
-							*num = currlen;
-						}
-						else if (cflags == DP_C_LONG)
-						{
-							long int *num;
-							num = va_arg(args, long int *);
-							*num = currlen;
-						}
-						else
-						{
-							int *num;
-							num = va_arg(args, int *);
-							*num = currlen;
-						}
-						break;
-					case '%':
-						dopr_outch(buffer, &currlen, maxlen, ch);
-						break;
-					case 'w':
-						/* not supported yet, treat as next char */
-						ch = *format++;
-						break;
-					default:
-						/* Unknown, skip */
-						break;
-				}
-				ch = *format++;
-				state = DP_S_DEFAULT;
-				flags = cflags = min = 0;
-				max = -1;
-				break;
-			case DP_S_DONE:
-				break;
-			default:
-				/* hmm? */
-				break;		/* some picky compilers need this */
-		}
-	}
-	if (currlen < maxlen - 1)
-		buffer[currlen] = '\0';
+    switch (state) {
+    case DP_S_DEFAULT:
+      if (ch == '%')
+	state = DP_S_FLAGS;
+      else
+	dopr_outch (buffer, &currlen, maxlen, ch);
+      ch = *format++;
+      break;
+    case DP_S_FLAGS:
+      switch (ch) {
+      case '-':
+	flags |= DP_F_MINUS;
+	ch = *format++;
+	break;
+      case '+':
+	flags |= DP_F_PLUS;
+	ch = *format++;
+	break;
+      case ' ':
+	flags |= DP_F_SPACE;
+	ch = *format++;
+	break;
+      case '#':
+	flags |= DP_F_NUM;
+	ch = *format++;
+	break;
+      case '0':
+	flags |= DP_F_ZERO;
+	ch = *format++;
+	break;
+      default:
+	state = DP_S_MIN;
+	break;
+      }
+      break;
+    case DP_S_MIN:
+      if (isdigit ((unsigned char) ch)) {
+	min = 10 * min + char_to_int (ch);
+	ch = *format++;
+      } else if (ch == '*') {
+	min = va_arg (args, int);
+	ch = *format++;
+	state = DP_S_DOT;
+      } else
+	state = DP_S_DOT;
+      break;
+    case DP_S_DOT:
+      if (ch == '.') {
+	state = DP_S_MAX;
+	ch = *format++;
+      } else
+	state = DP_S_MOD;
+      break;
+    case DP_S_MAX:
+      if (isdigit ((unsigned char) ch)) {
+	if (max < 0)
+	  max = 0;
+	max = 10 * max + char_to_int (ch);
+	ch = *format++;
+      } else if (ch == '*') {
+	max = va_arg (args, int);
+	ch = *format++;
+	state = DP_S_MOD;
+      } else
+	state = DP_S_MOD;
+      break;
+    case DP_S_MOD:
+      /* Currently, we don't support Long Long, bummer */
+      switch (ch) {
+      case 'h':
+	cflags = DP_C_SHORT;
+	ch = *format++;
+	break;
+      case 'l':
+	cflags = DP_C_LONG;
+	ch = *format++;
+	break;
+      case 'L':
+	cflags = DP_C_LDOUBLE;
+	ch = *format++;
+	break;
+      default:
+	break;
+      }
+      state = DP_S_CONV;
+      break;
+    case DP_S_CONV:
+      switch (ch) {
+      case 'd':
+      case 'i':
+	if (cflags == DP_C_SHORT)
+	  value = va_arg (args, short int);
+	else if (cflags == DP_C_LONG)
+	  value = va_arg (args, long int);
 	else
-		buffer[maxlen - 1] = '\0';
+	  value = va_arg (args, int);
+	fmtint (buffer, &currlen, maxlen, value, 10, min, max, flags);
+	break;
+      case 'o':
+	flags |= DP_F_UNSIGNED;
+	if (cflags == DP_C_SHORT)
+	  value = va_arg (args, unsigned short int);
+	else if (cflags == DP_C_LONG)
+	  value = va_arg (args, unsigned long int);
+	else
+	  value = va_arg (args, unsigned int);
+	fmtint (buffer, &currlen, maxlen, value, 8, min, max, flags);
+	break;
+      case 'u':
+	flags |= DP_F_UNSIGNED;
+	if (cflags == DP_C_SHORT)
+	  value = va_arg (args, unsigned short int);
+	else if (cflags == DP_C_LONG)
+	  value = va_arg (args, unsigned long int);
+	else
+	  value = va_arg (args, unsigned int);
+	fmtint (buffer, &currlen, maxlen, value, 10, min, max, flags);
+	break;
+      case 'X':
+	flags |= DP_F_UP;
+      case 'x':
+	flags |= DP_F_UNSIGNED;
+	if (cflags == DP_C_SHORT)
+	  value = va_arg (args, unsigned short int);
+	else if (cflags == DP_C_LONG)
+	  value = va_arg (args, unsigned long int);
+	else
+	  value = va_arg (args, unsigned int);
+	fmtint (buffer, &currlen, maxlen, value, 16, min, max, flags);
+	break;
+      case 'f':
+	if (cflags == DP_C_LDOUBLE)
+	  fvalue = va_arg (args, long double);
+	else
+	  fvalue = va_arg (args, double);
+	/* um, floating point? */
+	fmtfp (buffer, &currlen, maxlen, fvalue, min, max, flags);
+	break;
+      case 'E':
+	flags |= DP_F_UP;
+      case 'e':
+	if (cflags == DP_C_LDOUBLE)
+	  fvalue = va_arg (args, long double);
+	else
+	  fvalue = va_arg (args, double);
+	break;
+      case 'G':
+	flags |= DP_F_UP;
+      case 'g':
+	if (cflags == DP_C_LDOUBLE)
+	  fvalue = va_arg (args, long double);
+	else
+	  fvalue = va_arg (args, double);
+	break;
+      case 'c':
+	dopr_outch (buffer, &currlen, maxlen, va_arg (args, int));
+	break;
+      case 's':
+	strvalue = va_arg (args, char *);
+	if (max < 0)
+	  max = maxlen;		/* ie, no max */
+	fmtstr (buffer, &currlen, maxlen, strvalue, flags, min, max);
+	break;
+      case 'p':
+	strvalue = va_arg (args, void *);
+	fmtint (buffer, &currlen, maxlen, (long) strvalue, 16, min, max,
+		flags);
+	break;
+      case 'n':
+	if (cflags == DP_C_SHORT) {
+	  short int *num;
+	  num = va_arg (args, short int *);
+	  *num = currlen;
+	} else if (cflags == DP_C_LONG) {
+	  long int *num;
+	  num = va_arg (args, long int *);
+	  *num = currlen;
+	} else {
+	  int *num;
+	  num = va_arg (args, int *);
+	  *num = currlen;
+	}
+	break;
+      case '%':
+	dopr_outch (buffer, &currlen, maxlen, ch);
+	break;
+      case 'w':
+	/* not supported yet, treat as next char */
+	ch = *format++;
+	break;
+      default:
+	/* Unknown, skip */
+	break;
+      }
+      ch = *format++;
+      state = DP_S_DEFAULT;
+      flags = cflags = min = 0;
+      max = -1;
+      break;
+    case DP_S_DONE:
+      break;
+    default:
+      /* hmm? */
+      break;			/* some picky compilers need this */
+    }
+  }
+  if (currlen < maxlen - 1)
+    buffer[currlen] = '\0';
+  else
+    buffer[maxlen - 1] = '\0';
 }
 
 static void
-fmtstr(char *buffer, size_t * currlen, size_t maxlen,
-		char *value, int flags, int min, int max)
+fmtstr (char *buffer, size_t * currlen, size_t maxlen,
+	char *value, int flags, int min, int max)
 {
-	int padlen, strln;		/* amount to pad */
-	int cnt = 0;
+  int padlen, strln;		/* amount to pad */
+  int cnt = 0;
 
-	if (value == 0)
-	{
-		value = "<NULL>";
-	}
+  if (value == 0) {
+    value = "<NULL>";
+  }
 
-	for (strln = 0; value[strln]; ++strln);	/* strlen */
-	padlen = min - strln;
-	if (padlen < 0)
-		padlen = 0;
-	if (flags & DP_F_MINUS)
-		padlen = -padlen;		/* Left Justify */
+  for (strln = 0; value[strln]; ++strln);	/* strlen */
+  padlen = min - strln;
+  if (padlen < 0)
+    padlen = 0;
+  if (flags & DP_F_MINUS)
+    padlen = -padlen;		/* Left Justify */
 
-	while ((padlen > 0) &&(cnt < max))
-	{
-		dopr_outch(buffer, currlen, maxlen, ' ');
-		--padlen;
-		++cnt;
-	}
-	while (*value &&(cnt < max))
-	{
-		dopr_outch(buffer, currlen, maxlen, *value++);
-		++cnt;
-	}
-	while ((padlen < 0) &&(cnt < max))
-	{
-		dopr_outch(buffer, currlen, maxlen, ' ');
-		++padlen;
-		++cnt;
-	}
+  while ((padlen > 0) && (cnt < max)) {
+    dopr_outch (buffer, currlen, maxlen, ' ');
+    --padlen;
+    ++cnt;
+  }
+  while (*value && (cnt < max)) {
+    dopr_outch (buffer, currlen, maxlen, *value++);
+    ++cnt;
+  }
+  while ((padlen < 0) && (cnt < max)) {
+    dopr_outch (buffer, currlen, maxlen, ' ');
+    ++padlen;
+    ++cnt;
+  }
 }
 
 /* Have to handle DP_F_NUM(ie 0x and 0 alternates) */
 
-	static void
-fmtint(char *buffer, size_t * currlen, size_t maxlen,
-		long value, int base, int min, int max, int flags)
+static void
+fmtint (char *buffer, size_t * currlen, size_t maxlen,
+	long value, int base, int min, int max, int flags)
 {
-	int signvalue = 0;
-	unsigned long uvalue;
-	char convert[20];
-	int place = 0;
-	int spadlen = 0;		/* amount to space pad */
-	int zpadlen = 0;		/* amount to zero pad */
-	int caps = 0;
+  int signvalue = 0;
+  unsigned long uvalue;
+  char convert[20];
+  int place = 0;
+  int spadlen = 0;		/* amount to space pad */
+  int zpadlen = 0;		/* amount to zero pad */
+  int caps = 0;
 
-	if (max < 0)
-		max = 0;
+  if (max < 0)
+    max = 0;
 
-	uvalue = value;
+  uvalue = value;
 
-	if (!(flags & DP_F_UNSIGNED))
-	{
-		if (value < 0)
-		{
-			signvalue = '-';
-			uvalue = -value;
-		}
-		else if (flags & DP_F_PLUS)	/* Do a sign(+/i) */
-			signvalue = '+';
-		else if (flags & DP_F_SPACE)
-			signvalue = ' ';
-	}
+  if (!(flags & DP_F_UNSIGNED)) {
+    if (value < 0) {
+      signvalue = '-';
+      uvalue = -value;
+    } else if (flags & DP_F_PLUS)	/* Do a sign(+/i) */
+      signvalue = '+';
+    else if (flags & DP_F_SPACE)
+      signvalue = ' ';
+  }
 
-	if (flags & DP_F_UP)
-		caps = 1;			/* Should characters be upper case? */
+  if (flags & DP_F_UP)
+    caps = 1;			/* Should characters be upper case? */
 
-	do
-	{
-		convert[place++] =
-			(caps ? "0123456789ABCDEF" : "0123456789abcdef")
-			[uvalue %(unsigned) base];
-		uvalue =(uvalue /(unsigned) base);
-	}
-	while (uvalue &&(place < 20));
-	if (place == 20)
-		place--;
-	convert[place] = 0;
+  do {
+    convert[place++] = (caps ? "0123456789ABCDEF" : "0123456789abcdef")
+      [uvalue % (unsigned) base];
+    uvalue = (uvalue / (unsigned) base);
+  }
+  while (uvalue && (place < 20));
+  if (place == 20)
+    place--;
+  convert[place] = 0;
 
-	zpadlen = max - place;
-	spadlen = min - MAX(max, place) -(signvalue ? 1 : 0);
-	if (zpadlen < 0)
-		zpadlen = 0;
-	if (spadlen < 0)
-		spadlen = 0;
-	if (flags & DP_F_ZERO)
-	{
-		zpadlen = MAX(zpadlen, spadlen);
-		spadlen = 0;
-	}
-	if (flags & DP_F_MINUS)
-		spadlen = -spadlen;		/* Left Justifty */
+  zpadlen = max - place;
+  spadlen = min - MAX (max, place) - (signvalue ? 1 : 0);
+  if (zpadlen < 0)
+    zpadlen = 0;
+  if (spadlen < 0)
+    spadlen = 0;
+  if (flags & DP_F_ZERO) {
+    zpadlen = MAX (zpadlen, spadlen);
+    spadlen = 0;
+  }
+  if (flags & DP_F_MINUS)
+    spadlen = -spadlen;		/* Left Justifty */
 
 #ifdef DEBUG_SNPRINTF
-	dprint(1,(debugfile, "zpad: %d, spad: %d, min: %d, max: %d, place: %d\n",
-				zpadlen, spadlen, min, max, place));
+  dprint (1, (debugfile, "zpad: %d, spad: %d, min: %d, max: %d, place: %d\n",
+	      zpadlen, spadlen, min, max, place));
 #endif
 
-	/* Spaces */
-	while (spadlen > 0)
-	{
-		dopr_outch(buffer, currlen, maxlen, ' ');
-		--spadlen;
-	}
+  /* Spaces */
+  while (spadlen > 0) {
+    dopr_outch (buffer, currlen, maxlen, ' ');
+    --spadlen;
+  }
 
-	/* Sign */
-	if (signvalue)
-		dopr_outch(buffer, currlen, maxlen, signvalue);
+  /* Sign */
+  if (signvalue)
+    dopr_outch (buffer, currlen, maxlen, signvalue);
 
-	/* Zeros */
-	if (zpadlen > 0)
-	{
-		while (zpadlen > 0)
-		{
-			dopr_outch(buffer, currlen, maxlen, '0');
-			--zpadlen;
-		}
-	}
+  /* Zeros */
+  if (zpadlen > 0) {
+    while (zpadlen > 0) {
+      dopr_outch (buffer, currlen, maxlen, '0');
+      --zpadlen;
+    }
+  }
 
-	/* Digits */
-	while (place > 0)
-		dopr_outch(buffer, currlen, maxlen, convert[--place]);
+  /* Digits */
+  while (place > 0)
+    dopr_outch (buffer, currlen, maxlen, convert[--place]);
 
-	/* Left Justified spaces */
-	while (spadlen < 0)
-	{
-		dopr_outch(buffer, currlen, maxlen, ' ');
-		++spadlen;
-	}
+  /* Left Justified spaces */
+  while (spadlen < 0) {
+    dopr_outch (buffer, currlen, maxlen, ' ');
+    ++spadlen;
+  }
 }
 
-	static long double
-abs_val(long double value)
+static long double
+abs_val (long double value)
 {
-	long double result = value;
+  long double result = value;
 
-	if (value < 0)
-		result = -value;
+  if (value < 0)
+    result = -value;
 
-	return result;
+  return result;
 }
 
-	static long double
-pow10(int exp)
+static long double
+pow10 (int exp)
 {
-	long double result = 1;
+  long double result = 1;
 
-	while (exp)
-	{
-		result *= 10;
-		exp--;
-	}
+  while (exp) {
+    result *= 10;
+    exp--;
+  }
 
-	return result;
+  return result;
 }
 
-	static long
-round(long double value)
+static long
+round (long double value)
 {
-	long intpart;
+  long intpart;
 
-	intpart = value;
-	value = value - intpart;
-	if (value >= 0.5)
-		intpart++;
+  intpart = value;
+  value = value - intpart;
+  if (value >= 0.5)
+    intpart++;
 
-	return intpart;
+  return intpart;
 }
 
-	static void
-fmtfp(char *buffer, size_t * currlen, size_t maxlen,
-		long double fvalue, int min, int max, int flags)
+static void
+fmtfp (char *buffer, size_t * currlen, size_t maxlen,
+       long double fvalue, int min, int max, int flags)
 {
-	int signvalue = 0;
-	long double ufvalue;
-	char iconvert[20];
-	char fconvert[20];
-	int iplace = 0;
-	int fplace = 0;
-	int padlen = 0;		/* amount to pad */
-	int zpadlen = 0;
-	int caps = 0;
-	long intpart;
-	long fracpart;
+  int signvalue = 0;
+  long double ufvalue;
+  char iconvert[20];
+  char fconvert[20];
+  int iplace = 0;
+  int fplace = 0;
+  int padlen = 0;		/* amount to pad */
+  int zpadlen = 0;
+  int caps = 0;
+  long intpart;
+  long fracpart;
 
-	/*
-	 * AIX manpage says the default is 0, but Solaris says the default
-	 * is 6, and sprintf on AIX defaults to 6
-	 */
-	if (max < 0)
-		max = 6;
+  /*
+   * AIX manpage says the default is 0, but Solaris says the default
+   * is 6, and sprintf on AIX defaults to 6
+   */
+  if (max < 0)
+    max = 6;
 
-	ufvalue = abs_val(fvalue);
+  ufvalue = abs_val (fvalue);
 
-	if (fvalue < 0)
-		signvalue = '-';
-	else if (flags & DP_F_PLUS)	/* Do a sign(+/i) */
-		signvalue = '+';
-	else if (flags & DP_F_SPACE)
-		signvalue = ' ';
+  if (fvalue < 0)
+    signvalue = '-';
+  else if (flags & DP_F_PLUS)	/* Do a sign(+/i) */
+    signvalue = '+';
+  else if (flags & DP_F_SPACE)
+    signvalue = ' ';
 
 #if 0
-	if (flags & DP_F_UP)
-		caps = 1;			/* Should characters be upper case? */
+  if (flags & DP_F_UP)
+    caps = 1;			/* Should characters be upper case? */
 #endif
 
-	intpart = ufvalue;
+  intpart = ufvalue;
 
-	/*
-	 * Sorry, we only support 9 digits past the decimal because of our
-	 * conversion method
-	 */
-	if (max > 9)
-		max = 9;
+  /*
+   * Sorry, we only support 9 digits past the decimal because of our
+   * conversion method
+   */
+  if (max > 9)
+    max = 9;
 
-	/* We "cheat" by converting the fractional part to integer by
-	 * multiplying by a factor of 10
-	 */
-	fracpart = round((pow10(max)) *(ufvalue - intpart));
+  /* We "cheat" by converting the fractional part to integer by
+   * multiplying by a factor of 10
+   */
+  fracpart = round ((pow10 (max)) * (ufvalue - intpart));
 
-	if (fracpart >= pow10(max))
-	{
-		intpart++;
-		fracpart -= pow10(max);
-	}
-
+  if (fracpart >= pow10 (max)) {
+    intpart++;
+    fracpart -= pow10 (max);
+  }
 #ifdef DEBUG_SNPRINTF
-	dprint(1,(debugfile, "fmtfp: %f =? %d.%d\n", fvalue, intpart, fracpart));
+  dprint (1, (debugfile, "fmtfp: %f =? %d.%d\n", fvalue, intpart, fracpart));
 #endif
 
-	/* Convert integer part */
-	do
-	{
-		iconvert[iplace++] =
-			(caps ? "0123456789ABCDEF" : "0123456789abcdef")[intpart % 10];
-		intpart =(intpart / 10);
-	}
-	while (intpart &&(iplace < 20));
-	if (iplace == 20)
-		iplace--;
-	iconvert[iplace] = 0;
+  /* Convert integer part */
+  do {
+    iconvert[iplace++] =
+      (caps ? "0123456789ABCDEF" : "0123456789abcdef")[intpart % 10];
+    intpart = (intpart / 10);
+  }
+  while (intpart && (iplace < 20));
+  if (iplace == 20)
+    iplace--;
+  iconvert[iplace] = 0;
 
-	/* Convert fractional part */
-	do
-	{
-		fconvert[fplace++] =
-			(caps ? "0123456789ABCDEF" : "0123456789abcdef")[fracpart % 10];
-		fracpart =(fracpart / 10);
-	}
-	while (fracpart &&(fplace < 20));
-	if (fplace == 20)
-		fplace--;
-	fconvert[fplace] = 0;
+  /* Convert fractional part */
+  do {
+    fconvert[fplace++] =
+      (caps ? "0123456789ABCDEF" : "0123456789abcdef")[fracpart % 10];
+    fracpart = (fracpart / 10);
+  }
+  while (fracpart && (fplace < 20));
+  if (fplace == 20)
+    fplace--;
+  fconvert[fplace] = 0;
 
-	/* -1 for decimal point, another -1 if we are printing a sign */
-	padlen = min - iplace - max - 1 -((signvalue) ? 1 : 0);
-	zpadlen = max - fplace;
-	if (zpadlen < 0)
-		zpadlen = 0;
-	if (padlen < 0)
-		padlen = 0;
-	if (flags & DP_F_MINUS)
-		padlen = -padlen;		/* Left Justifty */
+  /* -1 for decimal point, another -1 if we are printing a sign */
+  padlen = min - iplace - max - 1 - ((signvalue) ? 1 : 0);
+  zpadlen = max - fplace;
+  if (zpadlen < 0)
+    zpadlen = 0;
+  if (padlen < 0)
+    padlen = 0;
+  if (flags & DP_F_MINUS)
+    padlen = -padlen;		/* Left Justifty */
 
-	if ((flags & DP_F_ZERO) &&(padlen > 0))
-	{
-		if (signvalue)
-		{
-			dopr_outch(buffer, currlen, maxlen, signvalue);
-			--padlen;
-			signvalue = 0;
-		}
-		while (padlen > 0)
-		{
-			dopr_outch(buffer, currlen, maxlen, '0');
-			--padlen;
-		}
-	}
-	while (padlen > 0)
-	{
-		dopr_outch(buffer, currlen, maxlen, ' ');
-		--padlen;
-	}
-	if (signvalue)
-		dopr_outch(buffer, currlen, maxlen, signvalue);
+  if ((flags & DP_F_ZERO) && (padlen > 0)) {
+    if (signvalue) {
+      dopr_outch (buffer, currlen, maxlen, signvalue);
+      --padlen;
+      signvalue = 0;
+    }
+    while (padlen > 0) {
+      dopr_outch (buffer, currlen, maxlen, '0');
+      --padlen;
+    }
+  }
+  while (padlen > 0) {
+    dopr_outch (buffer, currlen, maxlen, ' ');
+    --padlen;
+  }
+  if (signvalue)
+    dopr_outch (buffer, currlen, maxlen, signvalue);
 
-	while (iplace > 0)
-		dopr_outch(buffer, currlen, maxlen, iconvert[--iplace]);
+  while (iplace > 0)
+    dopr_outch (buffer, currlen, maxlen, iconvert[--iplace]);
 
-	/*
-	 * Decimal point.  This should probably use locale to find the correct
-	 * char to print out.
-	 */
-	dopr_outch(buffer, currlen, maxlen, '.');
+  /*
+   * Decimal point.  This should probably use locale to find the correct
+   * char to print out.
+   */
+  dopr_outch (buffer, currlen, maxlen, '.');
 
-	while (fplace > 0)
-		dopr_outch(buffer, currlen, maxlen, fconvert[--fplace]);
+  while (fplace > 0)
+    dopr_outch (buffer, currlen, maxlen, fconvert[--fplace]);
 
-	while (zpadlen > 0)
-	{
-		dopr_outch(buffer, currlen, maxlen, '0');
-		--zpadlen;
-	}
+  while (zpadlen > 0) {
+    dopr_outch (buffer, currlen, maxlen, '0');
+    --zpadlen;
+  }
 
-	while (padlen < 0)
-	{
-		dopr_outch(buffer, currlen, maxlen, ' ');
-		++padlen;
-	}
+  while (padlen < 0) {
+    dopr_outch (buffer, currlen, maxlen, ' ');
+    ++padlen;
+  }
 }
 
-	static void
-dopr_outch(char *buffer, size_t * currlen, size_t maxlen, char c)
+static void
+dopr_outch (char *buffer, size_t * currlen, size_t maxlen, char c)
 {
-	if (*currlen < maxlen)
-		buffer[(*currlen)++] = c;
+  if (*currlen < maxlen)
+    buffer[(*currlen)++] = c;
 }
 #endif /* !defined(HAVE_SNPRINTF) || !defined(HAVE_VSNPRINTF) */
 
 #ifndef HAVE_VSNPRINTF
-	int
-vsnprintf(char *str, size_t count, const char *fmt, va_list args)
+int
+vsnprintf (char *str, size_t count, const char *fmt, va_list args)
 {
-	str[0] = 0;
-	dopr(str, count, fmt, args);
-	return (strlen(str));
+  str[0] = 0;
+  dopr (str, count, fmt, args);
+  return (strlen (str));
 }
 #endif /* !HAVE_VSNPRINTF */
 
 #ifndef HAVE_SNPRINTF
 /* VARARGS3 */
 #ifdef HAVE_STDARGS
-	int
-snprintf(char *str, size_t count, const char *fmt,...)
+int
+snprintf (char *str, size_t count, const char *fmt, ...)
 #else
-	int
-snprintf(va_alist)
-	va_dcl
+int
+snprintf (va_alist)
+     va_dcl
 #endif
 {
 #ifndef HAVE_STDARGS
-	char *str;
-	size_t count;
-	char *fmt;
+  char *str;
+  size_t count;
+  char *fmt;
 #endif
-	VA_LOCAL_DECL;
+  VA_LOCAL_DECL;
 
-	VA_START(fmt);
-	VA_SHIFT(str, char *);
-	VA_SHIFT(count, size_t);
-	VA_SHIFT(fmt, char *);
-	(void) vsnprintf(str, count, fmt, ap);
-	VA_END;
-	return (strlen(str));
+  VA_START (fmt);
+  VA_SHIFT (str, char *);
+  VA_SHIFT (count, size_t);
+  VA_SHIFT (fmt, char *);
+  (void) vsnprintf (str, count, fmt, ap);
+  VA_END;
+  return (strlen (str));
 }
 
 #ifdef TEST_SNPRINTF
@@ -749,77 +697,72 @@
 #define LONG_STRING 1024
 #endif
 int
-main(void)
+main (void)
 {
-	char buf1[LONG_STRING];
-	char buf2[LONG_STRING];
-	char *fp_fmt[] =
-	{
-		"%-1.5f",
-		"%1.5f",
-		"%123.9f",
-		"%10.5f",
-		"% 10.5f",
-		"%+22.9f",
-		"%+4.9f",
-		"%01.3f",
-		"%4f",
-		"%3.1f",
-		"%3.2f",
-		NULL
-	};
-	double fp_nums[] =
-	{-1.5, 134.21, 91340.2, 341.1234, 0203.9, 0.96, 0.996,
-		0.9996, 1.996, 4.136, 0};
-	char *int_fmt[] =
-	{
-		"%-1.5d",
-		"%1.5d",
-		"%123.9d",
-		"%5.5d",
-		"%10.5d",
-		"% 10.5d",
-		"%+22.33d",
-		"%01.3d",
-		"%4d",
-		NULL
-	};
-	long int_nums[] =
-	{-1, 134, 91340, 341, 0203, 0};
-	int x, y;
-	int fail = 0;
-	int num = 0;
+  char buf1[LONG_STRING];
+  char buf2[LONG_STRING];
+  char *fp_fmt[] = {
+    "%-1.5f",
+    "%1.5f",
+    "%123.9f",
+    "%10.5f",
+    "% 10.5f",
+    "%+22.9f",
+    "%+4.9f",
+    "%01.3f",
+    "%4f",
+    "%3.1f",
+    "%3.2f",
+    NULL
+  };
+  double fp_nums[] = { -1.5, 134.21, 91340.2, 341.1234, 0203.9, 0.96, 0.996,
+    0.9996, 1.996, 4.136, 0
+  };
+  char *int_fmt[] = {
+    "%-1.5d",
+    "%1.5d",
+    "%123.9d",
+    "%5.5d",
+    "%10.5d",
+    "% 10.5d",
+    "%+22.33d",
+    "%01.3d",
+    "%4d",
+    NULL
+  };
+  long int_nums[] = { -1, 134, 91340, 341, 0203, 0 };
+  int x, y;
+  int fail = 0;
+  int num = 0;
 
-	printf("Testing snprintf format codes against system sprintf...\n");
+  printf ("Testing snprintf format codes against system sprintf...\n");
 
-	for (x = 0; fp_fmt[x] != NULL; x++)
-		for (y = 0; fp_nums[y] != 0; y++)
-		{
-			snprintf(buf1, sizeof(buf1), fp_fmt[x], fp_nums[y]);
-			sprintf(buf2, fp_fmt[x], fp_nums[y]);
-			if (strcmp(buf1, buf2))
-			{
-				printf("snprintf doesn't match Format: %s\n\tsnprintf = %s\n\tsprintf  = %s\n",
-						fp_fmt[x], buf1, buf2);
-				fail++;
-			}
-			num++;
-		}
+  for (x = 0; fp_fmt[x] != NULL; x++)
+    for (y = 0; fp_nums[y] != 0; y++) {
+      snprintf (buf1, sizeof (buf1), fp_fmt[x], fp_nums[y]);
+      sprintf (buf2, fp_fmt[x], fp_nums[y]);
+      if (strcmp (buf1, buf2)) {
+	printf
+	  ("snprintf doesn't match Format: %s\n\tsnprintf = %s\n\tsprintf  = %s\n",
+	   fp_fmt[x], buf1, buf2);
+	fail++;
+      }
+      num++;
+    }
 
-	for (x = 0; int_fmt[x] != NULL; x++)
-		for (y = 0; int_nums[y] != 0; y++)
-		{
-			snprintf(buf1, sizeof(buf1), int_fmt[x], int_nums[y]);
-			sprintf(buf2, int_fmt[x], int_nums[y]);
-			if (strcmp(buf1, buf2))
-			{
-				printf("snprintf doesn't match Format: %s\n\tsnprintf = %s\n\tsprintf  = %s\n",
-						int_fmt[x], buf1, buf2);
-				fail++;
-			}
-			num++;
-		}
-	printf("%d tests failed out of %d.\n", fail, num);
+  for (x = 0; int_fmt[x] != NULL; x++)
+    for (y = 0; int_nums[y] != 0; y++) {
+      snprintf (buf1, sizeof (buf1), int_fmt[x], int_nums[y]);
+      sprintf (buf2, int_fmt[x], int_nums[y]);
+      if (strcmp (buf1, buf2)) {
+	printf
+	  ("snprintf doesn't match Format: %s\n\tsnprintf = %s\n\tsprintf  = %s\n",
+	   int_fmt[x], buf1, buf2);
+	fail++;
+      }
+      num++;
+    }
+  printf ("%d tests failed out of %d.\n", fail, num);
 }
 #endif /* SNPRINTF_TEST */
 

Modified: pinfo/branches/cxx/src/utils.cxx
===================================================================
--- pinfo/branches/cxx/src/utils.cxx	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/utils.cxx	2005-08-26 08:41:40 UTC (rev 41)
@@ -21,17 +21,14 @@
 
 #include "common_includes.h"
 
-RCSID("$Id$")
-
+RCSID ("$Id$")
 #include <regex.h>
 #include <ctype.h>
+     char *safe_user = "nobody";
+     char *safe_group = "nobody";
 
-char *safe_user = "nobody";
-char *safe_group = "nobody";
-
 #ifndef HAVE_CURS_SET
-void
-curs_set(int a)
+     void curs_set (int a)
 {
 }
 #endif
@@ -69,439 +66,412 @@
 int shell_cursor = 1;
 
 void
-xfree(void *ptr)
+xfree (void *ptr)
 {
 #ifdef ___DEBUG___
-	int i, j;
-	int flag = 0;
-	unsigned long msize = 0;
-	for (i = 0; i < addrescount; i++)
-		msize += msizes[i];
-	fprintf(stderr, "Size: %lu, count: %ld, freeing %lu\n", msize, addrescount,(unsigned long) ptr);
-	for (i = 0; i < addrescount; i++)
-		if (malloc_addr[i] ==(unsigned long) ptr)
-		{
-			flag = 1;
-			for (j = i + 1; j < addrescount; j++)
-			{
-				malloc_addr[j - 1] = malloc_addr[j];
-				msizes[j - 1] = msizes[j];
-			}
-			addrescount--;
-			break;
-		}
-	if (flag == 0)
-	{
-		fprintf(stderr, "ERROR!!!\n");
-		getchar();
-	}
+  int i, j;
+  int flag = 0;
+  unsigned long msize = 0;
+  for (i = 0; i < addrescount; i++)
+    msize += msizes[i];
+  fprintf (stderr, "Size: %lu, count: %ld, freeing %lu\n", msize, addrescount,
+	   (unsigned long) ptr);
+  for (i = 0; i < addrescount; i++)
+    if (malloc_addr[i] == (unsigned long) ptr) {
+      flag = 1;
+      for (j = i + 1; j < addrescount; j++) {
+	malloc_addr[j - 1] = malloc_addr[j];
+	msizes[j - 1] = msizes[j];
+      }
+      addrescount--;
+      break;
+    }
+  if (flag == 0) {
+    fprintf (stderr, "ERROR!!!\n");
+    getchar ();
+  }
 /* ___DEBUG___ */
 #endif
-	free(ptr);
+  free (ptr);
 }
 
 void *
-xmalloc(size_t size)
+xmalloc (size_t size)
 {
-	register void *value = malloc(size);
+  register void *value = malloc (size);
 #ifdef ___DEBUG___
-	unsigned long msize = 0;
-	int i;
+  unsigned long msize = 0;
+  int i;
 /* ___DEBUG___ */
 #endif
-	if (value == 0)
-	{
-		closeprogram();
-		printf(_("Virtual memory exhausted\n"));
-		exit(1);
-	}
+  if (value == 0) {
+    closeprogram ();
+    printf (_("Virtual memory exhausted\n"));
+    exit (1);
+  }
 #ifdef ___DEBUG___
-	for (i = 0; i < addrescount; i++)
-		msize += msizes[i];
-	fprintf(stderr, "Size %lu, count: %ld, allocated %lu\n", msize, addrescount,(unsigned long) value);
-	malloc_addr[addrescount] =(unsigned long) value;
-	msizes[addrescount] = size;
-	if (addrescount < 1000)
-		addrescount++;
-	else
-	{
-		fprintf(stderr, "trace buffer exhausted\n");
-	}
+  for (i = 0; i < addrescount; i++)
+    msize += msizes[i];
+  fprintf (stderr, "Size %lu, count: %ld, allocated %lu\n", msize,
+	   addrescount, (unsigned long) value);
+  malloc_addr[addrescount] = (unsigned long) value;
+  msizes[addrescount] = size;
+  if (addrescount < 1000)
+    addrescount++;
+  else {
+    fprintf (stderr, "trace buffer exhausted\n");
+  }
 /* ___DEBUG___ */
 #endif
-	memset(value, 0, size);
-	return value;
+  memset (value, 0, size);
+  return value;
 }
 
 void *
-xrealloc(void *ptr, size_t size)
+xrealloc (void *ptr, size_t size)
 {
 #ifdef ___DEBUG___
-	int i, j, flag = 0;
-	register void *value;
-	unsigned long msize = 0;
-	for (i = 0; i < addrescount; i++)
-		msize += msizes[i];
-	fprintf(stderr, "Size: %lu, count: %ld, reallocating %lu to ", msize, addrescount,(unsigned long) ptr);
-	for (i = 0; i < addrescount; i++)
-		if (malloc_addr[i] ==(unsigned long) ptr)
-		{
-			flag = 1;
-			for (j = i + 1; j < addrescount; j++)
-			{
-				malloc_addr[j - 1] = malloc_addr[j];
-				msizes[j - 1] = msizes[j];
-			}
-			addrescount--;
-			break;
-		}
-	if (flag == 0)
-	{
-		fprintf(stderr, "ERROR!!!\n");
-		getchar();
-	}
-	value = realloc(ptr, size);
+  int i, j, flag = 0;
+  register void *value;
+  unsigned long msize = 0;
+  for (i = 0; i < addrescount; i++)
+    msize += msizes[i];
+  fprintf (stderr, "Size: %lu, count: %ld, reallocating %lu to ", msize,
+	   addrescount, (unsigned long) ptr);
+  for (i = 0; i < addrescount; i++)
+    if (malloc_addr[i] == (unsigned long) ptr) {
+      flag = 1;
+      for (j = i + 1; j < addrescount; j++) {
+	malloc_addr[j - 1] = malloc_addr[j];
+	msizes[j - 1] = msizes[j];
+      }
+      addrescount--;
+      break;
+    }
+  if (flag == 0) {
+    fprintf (stderr, "ERROR!!!\n");
+    getchar ();
+  }
+  value = realloc (ptr, size);
 #else
-	register void *value = realloc(ptr, size + 1024);
+  register void *value = realloc (ptr, size + 1024);
 /* ___DEBUG___ */
 #endif
-	if (value == 0)
-	{
-		closeprogram();
-		printf(_("Virtual memory exhausted\n"));
-		exit(1);
-	}
+  if (value == 0) {
+    closeprogram ();
+    printf (_("Virtual memory exhausted\n"));
+    exit (1);
+  }
 #ifdef ___DEBUG___
-	fprintf(stderr, "%lu, with size %lu\n",(unsigned long) value,(unsigned long) size);
-	malloc_addr[addrescount] =(unsigned long) value;
-	msizes[addrescount] = size;
-	if (addrescount < 1000)
-		addrescount++;
-	else
-	{
-		fprintf(stderr, "trace buffer exhausted\n");
-	}
+  fprintf (stderr, "%lu, with size %lu\n", (unsigned long) value,
+	   (unsigned long) size);
+  malloc_addr[addrescount] = (unsigned long) value;
+  msizes[addrescount] = size;
+  if (addrescount < 1000)
+    addrescount++;
+  else {
+    fprintf (stderr, "trace buffer exhausted\n");
+  }
 /* ___DEBUG___ */
 #endif
-	return value;
+  return value;
 }
 
 void
-initlocale()
+initlocale ()
 {
 #ifdef ___DEBUG___
-	int i;
-	for (i = 0; i < 1000; i++)
-		malloc_addr[i] = 0;
+  int i;
+  for (i = 0; i < 1000; i++)
+    malloc_addr[i] = 0;
 /* ___DEBUG___ */
 #endif
-	sbrk(100000);
-	setlocale(LC_ALL, "");
-	bindtextdomain(PACKAGE, LOCALEDIR);
-	textdomain(PACKAGE);
+  sbrk (100000);
+  setlocale (LC_ALL, "");
+  bindtextdomain (PACKAGE, LOCALEDIR);
+  textdomain (PACKAGE);
 }
 
 void
-mymvhline(int y, int x, char ch, int len)
+mymvhline (int y, int x, char ch, int len)
 {
-	int i;
-	for (i = 0; i < len; i++)
-		mvaddch(y, x + i, ch);
+  int i;
+  for (i = 0; i < len; i++)
+    mvaddch (y, x + i, ch);
 }
 
 void
-checkfilename(char *filename)
+checkfilename (char *filename)
 {
-	if ((strchr(filename, '<')) ||
-			(strchr(filename, '>')) ||
-			(strchr(filename, '|')) ||
-			(strchr(filename, '(')) ||
-			(strchr(filename, ')')) ||
-			(strchr(filename, '!')) ||
-			(strchr(filename, '`')) ||
-			(strchr(filename, '&')) ||
-			(strchr(filename, ';')))
-	{
-		printf(_("Illegal characters in filename!\n*** %s\n"), filename);
-		exit(1);
-	}
+  if ((strchr (filename, '<')) ||
+      (strchr (filename, '>')) ||
+      (strchr (filename, '|')) ||
+      (strchr (filename, '(')) ||
+      (strchr (filename, ')')) ||
+      (strchr (filename, '!')) ||
+      (strchr (filename, '`')) ||
+      (strchr (filename, '&')) || (strchr (filename, ';'))) {
+    printf (_("Illegal characters in filename!\n*** %s\n"), filename);
+    exit (1);
+  }
 }
 
 /* custom function that readline will use to display text */
 void
-my_rl_display()
+my_rl_display ()
 {
-	/* go to the bottom line, empty it, and print the prompt and buffer */
-	attrset(bottomline);
-	mymvhline(maxy - 1, 0, ' ', maxx);
-	move(maxy-1,0);
-	printw("%s%s", rl_prompt, rl_line_buffer);
-	refresh();
+  /* go to the bottom line, empty it, and print the prompt and buffer */
+  attrset (bottomline);
+  mymvhline (maxy - 1, 0, ' ', maxx);
+  move (maxy - 1, 0);
+  printw ("%s%s", rl_prompt, rl_line_buffer);
+  refresh ();
 }
 
 char *
-getstring(char *prompt)
+getstring (char *prompt)
 {
-	char *buf;
+  char *buf;
 
-	curs_set(1);
-	move(maxy - 1, 0);
-	refresh();
+  curs_set (1);
+  move (maxy - 1, 0);
+  refresh ();
 
-	rl_readline_name = PACKAGE;
-	
-	/* set display function for readline to my_rl_display and call readline */
-	rl_redisplay_function = my_rl_display;
-	buf = readline(prompt);
-	if (buf && *buf) 
-		add_history(buf);
-	
-	curs_set(0);
+  rl_readline_name = PACKAGE;
 
-	return buf;
+  /* set display function for readline to my_rl_display and call readline */
+  rl_redisplay_function = my_rl_display;
+  buf = readline (prompt);
+  if (buf && *buf)
+    add_history (buf);
+
+  curs_set (0);
+
+  return buf;
 }
 
 void
-init_curses()
+init_curses ()
 {
-	initscr();
-	noecho();
-	cbreak();
-	keypad(stdscr, TRUE);
-	/*  meta(stdscr, TRUE); */
-	initcolors();
-	shell_cursor = curs_set(0);
+  initscr ();
+  noecho ();
+  cbreak ();
+  keypad (stdscr, TRUE);
+  /*  meta(stdscr, TRUE); */
+  initcolors ();
+  shell_cursor = curs_set (0);
 #ifdef NCURSES_MOUSE_VERSION
-	mousemask(BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED, NULL);
+  mousemask (BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED, NULL);
 /* NCURSES_MOUSE_VERSION */
 #endif
-	curses_open = 1;
+  curses_open = 1;
 }
 
 
 void
-closeprogram()
+closeprogram ()
 {
-	if (curses_open)
-		myendwin();
-	if (ClearScreenAtExit)
-		system("clear");
-	else
-		printf("\n");
-	if (tmpfilename1)
-	{
-		unlink(tmpfilename1);
-		xfree(tmpfilename1);
-	}
-	if (tmpfilename2)
-	{
-		unlink(tmpfilename2);
-		xfree(tmpfilename2);
-	}
+  if (curses_open)
+    myendwin ();
+  if (ClearScreenAtExit)
+    system ("clear");
+  else
+    printf ("\n");
+  if (tmpfilename1) {
+    unlink (tmpfilename1);
+    xfree (tmpfilename1);
+  }
+  if (tmpfilename2) {
+    unlink (tmpfilename2);
+    xfree (tmpfilename2);
+  }
 }
 
 int
-gettagtablepos_search_internal(char *node, int left, int right)
+gettagtablepos_search_internal (char *node, int left, int right)
 {
-	/* left+(right-left)/2 */
-	int thispos = left +((right - left) >> 1);
-	int compare_result = compare_tag_table_string(tag_table[thispos].nodename, node);
-	if (compare_result == 0)
-		return thispos;
-	else
-	{
-		if (left == right)
-			return -1;
-		if (compare_result > 0)
-		{
-			if (thispos > left)
-				return gettagtablepos_search_internal(node, left, thispos - 1);
-			else
-				return -1;
-		}
-		else if (compare_result < 0)
-		{
-			if (thispos < right)
-				return gettagtablepos_search_internal(node, thispos + 1, right);
-			else
-				return -1;
-		}
-	}
+  /* left+(right-left)/2 */
+  int thispos = left + ((right - left) >> 1);
+  int compare_result =
+    compare_tag_table_string (tag_table[thispos].nodename, node);
+  if (compare_result == 0)
+    return thispos;
+  else {
+    if (left == right)
+      return -1;
+    if (compare_result > 0) {
+      if (thispos > left)
+	return gettagtablepos_search_internal (node, left, thispos - 1);
+      else
 	return -1;
+    } else if (compare_result < 0) {
+      if (thispos < right)
+	return gettagtablepos_search_internal (node, thispos + 1, right);
+      else
+	return -1;
+    }
+  }
+  return -1;
 }
 
 int
-gettagtablepos(char *node)
+gettagtablepos (char *node)
 {
-	/* strip spaces from the beginning */
-	while (1)
-	{
-		if ((*node != ' ') &&(*node != '\t'))
-			break;
-		node++;
-	}
-	return gettagtablepos_search_internal(node, 1, TagTableEntries);
+  /* strip spaces from the beginning */
+  while (1) {
+    if ((*node != ' ') && (*node != '\t'))
+      break;
+    node++;
+  }
+  return gettagtablepos_search_internal (node, 1, TagTableEntries);
 }
 
 int
-pinfo_getch()
+pinfo_getch ()
 {
-	int key = getch();
-	/* following key will be alt's value */
-	if (key == META_KEY)
-	{
-		key = getch();
-		key |= 0x200;
-	}
-	return key;
+  int key = getch ();
+  /* following key will be alt's value */
+  if (key == META_KEY) {
+    key = getch ();
+    key |= 0x200;
+  }
+  return key;
 }
 
 void
-waitforgetch()
+waitforgetch ()
 {
-	fd_set rdfs;
-	FD_ZERO(&rdfs);
-	FD_SET(0, &rdfs);
-	select(1, &rdfs, NULL, NULL, NULL);
+  fd_set rdfs;
+  FD_ZERO (&rdfs);
+  FD_SET (0, &rdfs);
+  select (1, &rdfs, NULL, NULL, NULL);
 }
 
 /* returns 0 on success, 1 on error */
 int
-pinfo_re_comp(char *name)
+pinfo_re_comp (char *name)
 {
 #ifdef ___DONT_USE_REGEXP_SEARCH___
-	if (pinfo_re_pattern)
-	{
-		free(pinfo_re_pattern);
-		pinfo_re_pattern = 0;
-	}
-	pinfo_re_pattern = strdup(name);
-	return 0;
+  if (pinfo_re_pattern) {
+    free (pinfo_re_pattern);
+    pinfo_re_pattern = 0;
+  }
+  pinfo_re_pattern = strdup (name);
+  return 0;
 #else
-	if (pinfo_re_offset == -1)
-	{
-		pinfo_re_offset = h_regexp_num;
-		if (!h_regexp_num)
-			h_regexp = (regex_t*)malloc(sizeof(regex_t));
-		else
-			h_regexp = (regex_t*)realloc(h_regexp, sizeof(regex_t) *(h_regexp_num + 1));
-	}
-	else
-	{
-		regfree(&h_regexp[pinfo_re_offset]);
-	}
-	return regcomp(&h_regexp[pinfo_re_offset], name, REG_ICASE);
+  if (pinfo_re_offset == -1) {
+    pinfo_re_offset = h_regexp_num;
+    if (!h_regexp_num)
+      h_regexp = (regex_t *) malloc (sizeof (regex_t));
+    else
+      h_regexp =
+	(regex_t *) realloc (h_regexp, sizeof (regex_t) * (h_regexp_num + 1));
+  } else {
+    regfree (&h_regexp[pinfo_re_offset]);
+  }
+  return regcomp (&h_regexp[pinfo_re_offset], name, REG_ICASE);
 #endif
 }
 
 int
-pinfo_re_exec(char *name)
+pinfo_re_exec (char *name)
 {
 #ifdef ___DONT_USE_REGEXP_SEARCH___
-	char *found;
-	if (pinfo_re_pattern)
-	{
-		found = strstr(name, pinfo_re_pattern);
-		if (found != NULL)
-			return 1;
-		else
-			return 0;
-	}
+  char *found;
+  if (pinfo_re_pattern) {
+    found = strstr (name, pinfo_re_pattern);
+    if (found != NULL)
+      return 1;
+    else
+      return 0;
+  }
 #else
-	regmatch_t pmatch[1];
-	return !regexec(&h_regexp[pinfo_re_offset], name, 1, pmatch, 0);
+  regmatch_t pmatch[1];
+  return !regexec (&h_regexp[pinfo_re_offset], name, 1, pmatch, 0);
 #endif
 }
 
 int
-yesno(char *prompt, int def)
+yesno (char *prompt, int def)
 {
-	char *yes = _("yes");
-	char *no = _("no");
-	int key;
+  char *yes = _("yes");
+  char *no = _("no");
+  int key;
 
-	attrset(bottomline);
-	mymvhline(maxy - 1, 0, ' ', maxx);
-	move(maxy - 1, 0);
-	/* if default answer is yes */
-	if (def)
-		printw("%s([%c]/%c)", prompt, *yes, *no);
-	else
-		printw("%s([%c]/%c)", prompt, *no, *yes);
-	nodelay(stdscr, FALSE);
-	while (1)
-	{
-		key = getch();
-		if (key == ERR)
-			return -1;
-		if (is_enter_key(key))
-			break;
-		else
-		{
-			if (tolower(key) == tolower(*yes))
-			{
-				def = 1;
-				break;
-			}
-			else
-			{
-				if (tolower(key) == tolower(*no))
-				{
-					def = 0;
-					break;
-				}
-				else
-					beep();
-			}
-		}
-	}
+  attrset (bottomline);
+  mymvhline (maxy - 1, 0, ' ', maxx);
+  move (maxy - 1, 0);
+  /* if default answer is yes */
+  if (def)
+    printw ("%s([%c]/%c)", prompt, *yes, *no);
+  else
+    printw ("%s([%c]/%c)", prompt, *no, *yes);
+  nodelay (stdscr, FALSE);
+  while (1) {
+    key = getch ();
+    if (key == ERR)
+      return -1;
+    if (is_enter_key (key))
+      break;
+    else {
+      if (tolower (key) == tolower (*yes)) {
+	def = 1;
+	break;
+      } else {
+	if (tolower (key) == tolower (*no)) {
+	  def = 0;
+	  break;
+	} else
+	  beep ();
+      }
+    }
+  }
 
-	nodelay(stdscr, TRUE);
-	if (def)
-		addstr(yes);
-	else
-		addstr(no);
-	attrset(normal);
-	return def;
+  nodelay (stdscr, TRUE);
+  if (def)
+    addstr (yes);
+  else
+    addstr (no);
+  attrset (normal);
+  return def;
 }
 
 void
-myclrtoeol()
+myclrtoeol ()
 {
-	int x, y, i;
-	getyx(stdscr, y, x);
-	for (i = x; i < maxx; i++)
-		mvaddch(y, i, ' ');
+  int x, y, i;
+  getyx (stdscr, y, x);
+  for (i = x; i < maxx; i++)
+    mvaddch (y, i, ' ');
 }
 
 void
-copy_stripped_from_regexp(char *src, char *dest)
+copy_stripped_from_regexp (char *src, char *dest)
 {
-	char *forbidden = "*.\\()[]\n";
-	while (strchr(forbidden, *src) == NULL)
-	{
-		if (*src == 0)
-			break;
-		*dest = *src;
-		src++;
-		dest++;
-	}
-	*dest = 0;
+  char *forbidden = "*.\\()[]\n";
+  while (strchr (forbidden, *src) == NULL) {
+    if (*src == 0)
+      break;
+    *dest = *src;
+    src++;
+    dest++;
+  }
+  *dest = 0;
 }
 
 void
-myendwin()
+myendwin ()
 {
-	curs_set(shell_cursor);
-	endwin();
+  curs_set (shell_cursor);
+  endwin ();
 }
 
 void
-handlewinch()
+handlewinch ()
 {
-	myendwin();
-	init_curses();
-	doupdate();
-	getmaxyx(stdscr, maxy, maxx);
-	ungetch(keys.refresh_1);
+  myendwin ();
+  init_curses ();
+  doupdate ();
+  getmaxyx (stdscr, maxy, maxx);
+  ungetch (keys.refresh_1);
 }

Modified: pinfo/branches/cxx/src/video.cxx
===================================================================
--- pinfo/branches/cxx/src/video.cxx	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/video.cxx	2005-08-26 08:41:40 UTC (rev 41)
@@ -23,85 +23,94 @@
 
 #include "common_includes.h"
 #include <string>
-using std::string;
+using
+  std::string;
 
-RCSID("$Id$")
+RCSID ("$Id$")
 
-void info_add_highlights(int pos, int cursor, long lines, int column, char **message);
+     void
+     info_add_highlights (int pos, int cursor, long lines, int column,
+			  char **message);
 
 /*
  * Replace first occurence of substring in string.
  * Used for internationalization of info headers.
  */
-static void
-substitutestring(string& strbuf, string find, string replace) {
- 	string::size_type loc = strbuf.find(find);
-	if (loc != string::npos) {
-		strbuf.replace(loc, find.length(), replace);
-	}
+     static void
+     substitutestring (string & strbuf, string find, string replace)
+{
+  string::size_type loc = strbuf.find (find);
+  if (loc != string::npos) {
+    strbuf.replace (loc, find.length (), replace);
+  }
 }
 
 void
-addtopline(char *type, string::size_type column)
+addtopline (char *type, string::size_type column)
 {
-	string strbuf = type;
+  string
+    strbuf = type;
 
-	substitutestring(strbuf,"File:", _("File:"));
-	substitutestring(strbuf, "Node:", _("Node:"));
-	substitutestring(strbuf, "Next:", _("Next:"));
-	substitutestring(strbuf, "Prev:", _("Prev:"));
-	substitutestring(strbuf, "Up:", _("Up:"));
-	attrset(topline);
-	mymvhline(0, 0, ' ', maxx);	/* pads line with spaces -- aesthetic */
-	if (strbuf.length() > column) {
-		string clipped;
-		clipped = strbuf.substr(column, string::npos);
-		mvaddstr(0, 0, clipped.c_str());
-	}
-	attrset(normal);
+  substitutestring (strbuf, "File:", _("File:"));
+  substitutestring (strbuf, "Node:", _("Node:"));
+  substitutestring (strbuf, "Next:", _("Next:"));
+  substitutestring (strbuf, "Prev:", _("Prev:"));
+  substitutestring (strbuf, "Up:", _("Up:"));
+  attrset (topline);
+  mymvhline (0, 0, ' ', maxx);	/* pads line with spaces -- aesthetic */
+  if (strbuf.length () > column) {
+    string
+      clipped;
+    clipped = strbuf.substr (column, string::npos);
+    mvaddstr (0, 0, clipped.c_str ());
+  }
+  attrset (normal);
 }
 
 void
-showscreen(char **message, char *type, long lines, long pos, long cursor, int column)
+showscreen (char **message, char *type, long lines, long pos, long cursor,
+	    int column)
 {
-	long i;
+  long
+    i;
 #ifdef getmaxyx
-	getmaxyx(stdscr, maxy, maxx);
+  getmaxyx (stdscr, maxy, maxx);
 #endif
 #ifdef HAVE_BKGDSET
-	bkgdset(' ' | normal);
+  bkgdset (' ' | normal);
 #endif
-	attrset(normal);
-	for (i = pos;(i < lines) &&(i < pos + maxy - 2); i++)
-	{
-		int tmp = strlen(message[i]) - 1;
-		message[i][tmp] = 0;
-		if (tmp>column)
-			mvaddstr(i + 1 - pos, 0, message[i]+column);
-		else
-			move(i + 1 - pos,0);
+  attrset (normal);
+  for (i = pos; (i < lines) && (i < pos + maxy - 2); i++) {
+    int
+      tmp = strlen (message[i]) - 1;
+    message[i][tmp] = 0;
+    if (tmp > column)
+      mvaddstr (i + 1 - pos, 0, message[i] + column);
+    else
+      move (i + 1 - pos, 0);
 #ifdef HAVE_BKGDSET
-		clrtoeol();
+    clrtoeol ();
 #else
-		myclrtoeol();
+    myclrtoeol ();
 #endif
-		message[i][tmp] = '\n';
-	}
-	clrtobot();
+    message[i][tmp] = '\n';
+  }
+  clrtobot ();
 #ifdef HAVE_BKGDSET
-	bkgdset(0);
+  bkgdset (0);
 #endif
-	attrset(bottomline);
-	mymvhline(maxy - 1, 0, ' ', maxx);
-	move(maxy - 1, 0);
-	if ((pos < lines - 1) &&(lines > pos + maxy - 2))
-		printw(_("Viewing line %d/%d, %d%%"), pos + maxy - 2, lines,((pos + maxy - 2) * 100) / lines);
-	else
-		printw(_("Viewing line %d/%d, 100%%"), lines, lines);
-	info_add_highlights(pos, cursor, lines, column, message);
-	attrset(normal);
-	move(0, 0);
-	refresh();
+  attrset (bottomline);
+  mymvhline (maxy - 1, 0, ' ', maxx);
+  move (maxy - 1, 0);
+  if ((pos < lines - 1) && (lines > pos + maxy - 2))
+    printw (_("Viewing line %d/%d, %d%%"), pos + maxy - 2, lines,
+	    ((pos + maxy - 2) * 100) / lines);
+  else
+    printw (_("Viewing line %d/%d, 100%%"), lines, lines);
+  info_add_highlights (pos, cursor, lines, column, message);
+  attrset (normal);
+  move (0, 0);
+  refresh ();
 }
 
 /*
@@ -112,136 +121,146 @@
  *  Does not alter the string passed to it.
  */
 void
-info_addstring(int y, string::size_type x, string txt, string::size_type column)
+info_addstring (int y, string::size_type x, string txt,
+		string::size_type column)
 {
-  int maxy, maxx;
-  getmaxyx(stdscr, maxy, maxx);
+  int
+    maxy,
+    maxx;
+  getmaxyx (stdscr, maxy, maxx);
   /* Use maxx and mvaddnstr to force clipping.
    * Fairly blunt instrument, but the best I could come up with.
    * Breaks in the presence of tabs; I don't see how to handle them. */
-	if (x > column)
-		mvaddnstr(y, x-column, txt.c_str(), maxx-(x-column) );
-	else if (x + txt.length() > column) {
-		string clipped;
-		clipped = txt;
-		clipped.erase(0, column - x);
-		mvaddnstr(y, 0, clipped.c_str(), maxx );
+  if (x > column)
+    mvaddnstr (y, x - column, txt.c_str (), maxx - (x - column));
+  else if (x + txt.length () > column) {
+    string
+      clipped;
+    clipped = txt;
+    clipped.erase (0, column - x);
+    mvaddnstr (y, 0, clipped.c_str (), maxx);
   }
 #ifdef __DEBUG__
-  refresh();
+  refresh ();
 #endif /* __DEBUG__ */
 }
+
 /*
  * Wrapper for the above for unconverted routines.
  */
 void
-info_addstr(int y, int x, char *txt, int column, int txtlen)
+info_addstr (int y, int x, char *txt, int column, int txtlen)
 {
-  string newtxt;
-  newtxt.assign(txt, txtlen);
-  info_addstring(y, x, newtxt, column);
+  string
+    newtxt;
+  newtxt.assign (txt, txtlen);
+  info_addstring (y, x, newtxt, column);
 }
 
 void
-info_add_highlights(int pos, int cursor, long lines, int column, char **message)
+info_add_highlights (int pos, int cursor, long lines, int column,
+		     char **message)
 {
-	int i, j;
-	for (i = 0; i < hyperobjectcount; i++)
-	{
-		if ((hyperobjects[i].line < pos) ||
-				(hyperobjects[i].line >= pos +(maxy - 2)))
-			continue; /* Off screen */
+  int
+    i,
+    j;
+  for (i = 0; i < hyperobjectcount; i++) {
+    if ((hyperobjects[i].line < pos) ||
+	(hyperobjects[i].line >= pos + (maxy - 2)))
+      continue;			/* Off screen */
 
-		/* first set of ifs sets the required attributes */
-		if (hyperobjects[i].type < 2)	{	/* menu */
-			if (i == cursor)
-				attrset(menuselected);
-			else
-				attrset(menu);
-		} else if (hyperobjects[i].type < 4) {	/* note */
-			if (i == cursor)
-				attrset(noteselected);
-			else
-				attrset(note);
-		}	else if (hyperobjects[i].type < HIGHLIGHT) {	/* url */
-			if (i == cursor)
-				attrset(urlselected);
-			else
-				attrset(url);
-		} else  { /* quoted text -- highlight it */
-			attrset(infohighlight);
-		}
+    /* first set of ifs sets the required attributes */
+    if (hyperobjects[i].type < 2) {	/* menu */
+      if (i == cursor)
+	attrset (menuselected);
+      else
+	attrset (menu);
+    } else if (hyperobjects[i].type < 4) {	/* note */
+      if (i == cursor)
+	attrset (noteselected);
+      else
+	attrset (note);
+    } else if (hyperobjects[i].type < HIGHLIGHT) {	/* url */
+      if (i == cursor)
+	attrset (urlselected);
+      else
+	attrset (url);
+    } else {			/* quoted text -- highlight it */
+      attrset (infohighlight);
+    }
 
-		/* now we start actual drawing */
-		string mynode;
-		if (hyperobjects[i].file[0] == 0) {
-			mynode.assign(hyperobjects[i].node, hyperobjects[i].nodelen);
-		} else {
-			mynode.assign("(");
-			mynode.append(hyperobjects[i].file, hyperobjects[i].filelen);
-			mynode.append(")");
-			mynode.append(hyperobjects[i].node, hyperobjects[i].nodelen);
-		}
-		if (hyperobjects[i].breakpos == -1) {
-			info_addstring(1 + hyperobjects[i].line - pos,
-					hyperobjects[i].col,
-					mynode,
-					column);
-		} else {
-			string part1, part2;
-			part1 = mynode.substr(0, hyperobjects[i].breakpos);
-			info_addstring(1 + hyperobjects[i].line - pos,
-					hyperobjects[i].col,
-					part1,
-					column);
-			j = hyperobjects[i].breakpos;
-			/* skip leading spaces after newline */
-			while (mynode[j] == ' ')
-				j++;
-			part2 = mynode.substr(j, string::npos);
-			if (hyperobjects[i].line - pos + 3 < maxy)
-				info_addstring(1 + hyperobjects[i].line - pos + 1,
-						j - hyperobjects[i].breakpos,
-						part2,
-						column);
-		}
-		attrset(normal);
-	}
+    /* now we start actual drawing */
+    string
+      mynode;
+    if (hyperobjects[i].file[0] == 0) {
+      mynode.assign (hyperobjects[i].node, hyperobjects[i].nodelen);
+    } else {
+      mynode.assign ("(");
+      mynode.append (hyperobjects[i].file, hyperobjects[i].filelen);
+      mynode.append (")");
+      mynode.append (hyperobjects[i].node, hyperobjects[i].nodelen);
+    }
+    if (hyperobjects[i].breakpos == -1) {
+      info_addstring (1 + hyperobjects[i].line - pos,
+		      hyperobjects[i].col, mynode, column);
+    } else {
+      string
+	part1,
+	part2;
+      part1 = mynode.substr (0, hyperobjects[i].breakpos);
+      info_addstring (1 + hyperobjects[i].line - pos,
+		      hyperobjects[i].col, part1, column);
+      j = hyperobjects[i].breakpos;
+      /* skip leading spaces after newline */
+      while (mynode[j] == ' ')
+	j++;
+      part2 = mynode.substr (j, string::npos);
+      if (hyperobjects[i].line - pos + 3 < maxy)
+	info_addstring (1 + hyperobjects[i].line - pos + 1,
+			j - hyperobjects[i].breakpos, part2, column);
+    }
+    attrset (normal);
+  }
 
 #ifndef ___DONT_USE_REGEXP_SEARCH___
-	if ((h_regexp_num) ||(aftersearch))
-	{
-		regmatch_t pmatch[1];
-		long maxpos = pos +(maxy - 2);
-		if (maxpos > lines)
-			maxpos = lines;
-		for (i = pos; i < maxpos; i++)
-		{
-			int maxregexp = aftersearch ? h_regexp_num + 1 : h_regexp_num;
-			/*
-			 * if it is after search, then we have user defined regexps+
-			 * a searched regexp to highlight
-			 */
-			for (j = 0; j < maxregexp; j++)
-			{
-				char *str = message[i];
-				while (!regexec(&h_regexp[j], str, 1, pmatch, 0))
-				{
-					int n = pmatch[0].rm_eo - pmatch[0].rm_so;
-					int y = i - pos + 1;
-					int x = calculate_len(message[i], pmatch[0].rm_so + str);
-					int txtoffset = pmatch[0].rm_so + str - message[i];
-					char tmp;
-					tmp = message[i][x + n];
-					message[i][x + n] = 0;
-					attrset(searchhighlight);
-					mvaddstr(y, x, message[i] + txtoffset);
-					attrset(normal);
-					message[i][x + n] = tmp;
-					str = str + pmatch[0].rm_eo;
-				}
-			}
-		}
+  if ((h_regexp_num) || (aftersearch)) {
+    regmatch_t
+      pmatch[1];
+    long
+      maxpos = pos + (maxy - 2);
+    if (maxpos > lines)
+      maxpos = lines;
+    for (i = pos; i < maxpos; i++) {
+      int
+	maxregexp = aftersearch ? h_regexp_num + 1 : h_regexp_num;
+      /*
+       * if it is after search, then we have user defined regexps+
+       * a searched regexp to highlight
+       */
+      for (j = 0; j < maxregexp; j++) {
+	char *
+	  str = message[i];
+	while (!regexec (&h_regexp[j], str, 1, pmatch, 0)) {
+	  int
+	    n = pmatch[0].rm_eo - pmatch[0].rm_so;
+	  int
+	    y = i - pos + 1;
+	  int
+	    x = calculate_len (message[i], pmatch[0].rm_so + str);
+	  int
+	    txtoffset = pmatch[0].rm_so + str - message[i];
+	  char
+	    tmp;
+	  tmp = message[i][x + n];
+	  message[i][x + n] = 0;
+	  attrset (searchhighlight);
+	  mvaddstr (y, x, message[i] + txtoffset);
+	  attrset (normal);
+	  message[i][x + n] = tmp;
+	  str = str + pmatch[0].rm_eo;
 	}
+      }
+    }
+  }
 #endif
 }

Modified: pinfo/branches/cxx/src/video.h
===================================================================
--- pinfo/branches/cxx/src/video.h	2005-08-26 08:19:49 UTC (rev 40)
+++ pinfo/branches/cxx/src/video.h	2005-08-26 08:41:40 UTC (rev 41)
@@ -25,7 +25,7 @@
 #include <string>
 /* paints the screen while viewing info file */
 void showscreen (char **message, char *type, long lines, long pos,
-		long cursor, int column);
+		 long cursor, int column);
 /* prints unselected menu option */
 void mvaddstr_menu (int y, int x, char *line, int linenumber);
 /* prints selected menu option */
@@ -33,7 +33,8 @@
 /* prints unselected note option */
 void mvaddstr_note (int y, int x, char *line, char *nline, int linenumber);
 /* prints selected note option */
-void mvaddstr_note_selected (int y, int x, char *line, char *nline, int linenumber);
+void mvaddstr_note_selected (int y, int x, char *line, char *nline,
+			     int linenumber);
 /* adds top line of info page */
 void addtopline (char *type, std::string::size_type column);
 #endif




More information about the Pinfo-devel mailing list