SF.net SVN: geany-plugins:[2076] trunk/geany-plugins/devhelp/src/manpages.c

codebrainz at users.sourceforge.net codebrainz at xxxxx
Mon May 23 08:28:39 UTC 2011


Revision: 2076
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=2076&view=rev
Author:   codebrainz
Date:     2011-05-23 08:28:39 +0000 (Mon, 23 May 2011)

Log Message:
-----------
Use 'man' argument for section order.

Modified Paths:
--------------
    trunk/geany-plugins/devhelp/src/manpages.c

Modified: trunk/geany-plugins/devhelp/src/manpages.c
===================================================================
--- trunk/geany-plugins/devhelp/src/manpages.c	2011-05-23 08:28:15 UTC (rev 2075)
+++ trunk/geany-plugins/devhelp/src/manpages.c	2011-05-23 08:28:39 UTC (rev 2076)
@@ -8,12 +8,9 @@
 
 #ifdef HAVE_MAN
 
-#define DEVHELP_MANPAGE_NUM_SECTIONS 8
-/* In order of most likely sections */
-static gint sections[DEVHELP_MANPAGE_NUM_SECTIONS] = { 3, 2, 1, 8, 5, 4, 7, 6 };
-
 #define DEVHELP_MANPAGE_BUF_SIZE 4096
 
+
 static GList *temp_files = NULL;
 
 
@@ -21,62 +18,26 @@
 static gchar *find_manpage(const gchar *term, const gchar *section)
 {
 	FILE *fp;
-	gint i, len, retcode=0;
+	gint len, retcode=0;
 	gchar *cmd, buf[PATH_MAX];
 
 	g_return_val_if_fail(term != NULL, NULL);
 
-	if (section != NULL) /* user-specified section */
-	{
+	if (section == NULL)
+		cmd = g_strdup_printf("man -S 3:2:1:8:5:4:7:6 --where '%s'", term);
+	else
 		cmd = g_strdup_printf("man --where %s '%s'", section, term);
-		if ((fp = popen(cmd, "r")) != NULL)
-		{
-			g_free(cmd);
 
-			len = fread(buf, sizeof(gchar), PATH_MAX, fp);
-			retcode = pclose(fp);
-		}
+	if ((fp = popen(cmd, "r")) == NULL)
+	{
 		g_free(cmd);
+		return NULL;
 	}
-	else
-	{
 
-		/* try in order of most-likely sections */
-		for (i = 0; i < DEVHELP_MANPAGE_NUM_SECTIONS; i++)
-		{
-			cmd = g_strdup_printf("man --where %d '%s'", sections[i], term);
-			if ((fp = popen(cmd, "r")) == NULL)
-			{
-				g_free(cmd);
-				continue;
-			}
+	g_free(cmd);
+	len = fread(buf, sizeof(gchar), PATH_MAX, fp);
+	retcode = pclose(fp);
 
-			g_free(cmd);
-			len = fread(buf, sizeof(gchar), PATH_MAX, fp);
-			retcode = pclose(fp);
-
-			if (retcode != 0)
-				continue;
-			else
-				break;
-		}
-
-		/* try without section if all else fails */
-		if (retcode != 0)
-		{
-			cmd = g_strdup_printf("man --where '%s'", term);
-			if ((fp = popen(cmd, "r")) == NULL)
-			{
-				g_free(cmd);
-				return NULL;
-			}
-
-			g_free(cmd);
-			len = fread(buf, sizeof(gchar), PATH_MAX, fp);
-			retcode = pclose(fp);
-		}
-	}
-
 	buf[PATH_MAX - 1] = '\0';
 
 	if (strlen(buf) == 0 || retcode != 0)
@@ -96,7 +57,7 @@
 
 	g_return_val_if_fail(filename != NULL, NULL);
 
-	cmd = g_strdup_printf("man \"%s\"", filename);
+	cmd = g_strdup_printf("man -S 3:2:1:8:5:4:7:6 -P\"col -b\" \"%s\"", filename);
 
 	fp = popen(cmd, "r");
 	g_free(cmd);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Plugins-Commits mailing list