]> granicus.if.org Git - mutt/commitdiff
Some beautifications.
authorThomas Roessler <roessler@does-not-exist.org>
Wed, 17 May 2000 12:33:28 +0000 (12:33 +0000)
committerThomas Roessler <roessler@does-not-exist.org>
Wed, 17 May 2000 12:33:28 +0000 (12:33 +0000)
mkjtags.c

index da74a44d2ad7e94c43b69859b1e255dfcad36c52..bfc8f6734fdab669fdb5168be17bd4cd8630e57b 100644 (file)
--- a/mkjtags.c
+++ b/mkjtags.c
@@ -1,5 +1,7 @@
 /* 
- * convert multi-file etags files to something
+ * $Id$
+ * 
+ * Convert multi-file etags files to something
  * which can be used by jed.
  * 
  * Thomas Roessler <roessler@guug.de>
 #include <stdlib.h>
 #include <string.h>
 
-void doit (const char *fname, const char *prefix, int crlf_pending);
+#include <unistd.h>
+
+void doit (const char *fname, char *prefix, int crlf_pending);
+
+char Cwd[2048];
+size_t Cwdl;
 
-  
 int main (int argc, char *argv[])
 {
   if (argc < 2)
@@ -20,20 +26,38 @@ int main (int argc, char *argv[])
     fprintf (stderr, "usage: %s filename\n", argv[0]);
     exit (1);
   }
+
+  if (getcwd (Cwd, sizeof (Cwd)) == NULL)
+  {
+    fprintf (stderr, "%s: Your current working directory has a really long name.\n", argv[0]);
+    exit (1);
+  }
+
+  Cwdl = strlen (Cwd);
   
-  doit (argv[1], NULL, 0);
+  doit (argv[1], Cwd, 0);
   return 0;
 }
 
-void doit (const char *fname, const char *prefix, int crlf_pending)
+void doit (const char *fname, char *prefix, int crlf_pending)
 {
   char buffer[2048];
   char tmpf[2048];
   FILE *fp;
   char *cp;
-  
   size_t l;
   
+
+  if (strncmp (prefix, Cwd, Cwdl) == 0)
+  {
+    prefix += Cwdl;
+    if (*prefix == '/')
+      prefix++;
+  }
+
+  if (!*prefix)
+    prefix = NULL;
+
   if (!(fp = fopen (fname, "r")))
   {
     perror (fname);
@@ -43,11 +67,9 @@ void doit (const char *fname, const char *prefix, int crlf_pending)
   while (fgets (buffer, sizeof (buffer), fp))
   {
     l = strlen (buffer);
-    if (*buffer == '\f')
-    {
-      if (!crlf_pending) 
-       fputs (buffer, stdout);
-    }
+
+    if (*buffer == '\f' && !crlf_pending)
+      fputs (buffer, stdout);
     else if (crlf_pending && l > 9 && !strcmp (buffer + l - 9, ",include\n"))
     {
       if ((cp = strrchr (buffer, ',')))
@@ -69,5 +91,3 @@ void doit (const char *fname, const char *prefix, int crlf_pending)
   
   fclose (fp);
 }
-
-