Added objc, haskell and vim-c patches.
authorFernando J. Pereda <ferdy@gentoo.org>
Sun, 13 Nov 2005 18:04:08 +0000 (18:04 +0000)
committerFernando J. Pereda <ferdy@gentoo.org>
Sun, 13 Nov 2005 18:04:08 +0000 (18:04 +0000)
Package-Manager: portage-2.0.51.22-r3

dev-util/ctags/ChangeLog
dev-util/ctags/Manifest
dev-util/ctags/ctags-5.5.4-r3.ebuild [new file with mode: 0644]
dev-util/ctags/files/ctags-5.5.4-haskell.patch [new file with mode: 0644]
dev-util/ctags/files/ctags-5.5.4-objc.patch [new file with mode: 0644]
dev-util/ctags/files/ctags-5.5.4-vim-c.patch [new file with mode: 0644]
dev-util/ctags/files/digest-ctags-5.5.4-r3 [new file with mode: 0644]

index b7c33fcd7dfc32200ff66a20f1f737d733ffbb4d..9e4e63b529761c7cbcd94d530de98b0ef8cb49f8 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for dev-util/ctags
 # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-util/ctags/ChangeLog,v 1.40 2005/07/22 22:20:25 matsuu Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-util/ctags/ChangeLog,v 1.41 2005/11/13 18:04:08 ferdy Exp $
+
+*ctags-5.5.4-r3 (13 Nov 2005)
+
+  13 Nov 2005; Fernando J. Pereda <ferdy@gentoo.org>
+  +files/ctags-5.5.4-haskell.patch, +files/ctags-5.5.4-objc.patch,
+  +files/ctags-5.5.4-vim-c.patch, +ctags-5.5.4-r3.ebuild:
+  Added objc, haskell and vim-c patches.
 
   22 Jul 2005; MATSUU Takuto <matsuu@gentoo.org> ctags-5.5.4-r1.ebuild:
   Stable on sh.
index 49ef67f7d5ba208a3824b8b38416ce918f709cf5..90afe608de2c66bfc735cf4e17051d5eec0993f8 100644 (file)
@@ -1,16 +1,31 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
 MD5 75a8dd104ee184793cf552014aa4b071 ctags-5.5.4-r2.ebuild 1185
 MD5 7bf5444b93e02846519665bc70e2557c ctags-5.2.3.ebuild 1128
 MD5 746f157bc17c254b1760e42817cac122 ctags-5.5-r1.ebuild 1176
 MD5 d558b0b6798d7a7dcda35f2c33ebd293 ctags-5.5.ebuild 1182
 MD5 bf5b65da4eef9b3182a324b5a81b1875 ctags-5.5.4.ebuild 1195
 MD5 6d32bd4880394b14d8d0372822e54d95 ctags-5.5.4-r1.ebuild 1291
-MD5 97e7dd95f04d684009ab989332f21016 ChangeLog 4900
+MD5 5a8a38b9ec637a7f8ff9a044245fa7f6 ctags-5.5.4-r3.ebuild 1302
+MD5 1493ef86ede2636b4765270d467dc123 ChangeLog 5150
 MD5 f3583430b2f7b0686cafd606b08bf203 metadata.xml 156
 MD5 1fe9a83e8e373e39e2f1522f22afefb7 files/digest-ctags-5.5 61
+MD5 812f885add61d6f575f8391e852b6b1c files/ctags-5.5.4-haskell.patch 2513
 MD5 e6d9c978c79b19927ef1cb860cd0998a files/ctags-5.5.4-ruby-classes.patch 601
 MD5 1fe9a83e8e373e39e2f1522f22afefb7 files/digest-ctags-5.5-r1 61
 MD5 e679ffaa8205e53af2edbbe0b20e60a1 files/digest-ctags-5.2.3 63
 MD5 ac053acfd4f28f9c48e9d3c139f85e90 files/digest-ctags-5.5.4 63
 MD5 ac053acfd4f28f9c48e9d3c139f85e90 files/digest-ctags-5.5.4-r1 63
 MD5 ac053acfd4f28f9c48e9d3c139f85e90 files/digest-ctags-5.5.4-r2 63
+MD5 ac053acfd4f28f9c48e9d3c139f85e90 files/digest-ctags-5.5.4-r3 63
+MD5 df6a1404e98ba6c0c0a282ce2485aed1 files/ctags-5.5.4-vim-c.patch 9795
 MD5 444d43016d0332ec35af9a292855c95f files/ctags-5.5.4-ebuilds.patch 835
+MD5 019194a32c0fe989f34c944054589ea0 files/ctags-5.5.4-objc.patch 2273
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.2 (GNU/Linux)
+
+iD8DBQFDd4ApViELBEf1JB0RAjVHAJ4oazIYi1qAy7+GM/PLQSCdbIIFqgCeIg1E
+qlUAbUcKpQ29qemu/g6dRB8=
+=Cf6l
+-----END PGP SIGNATURE-----
diff --git a/dev-util/ctags/ctags-5.5.4-r3.ebuild b/dev-util/ctags/ctags-5.5.4-r3.ebuild
new file mode 100644 (file)
index 0000000..3d3bf19
--- /dev/null
@@ -0,0 +1,48 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-util/ctags/ctags-5.5.4-r3.ebuild,v 1.1 2005/11/13 18:04:08 ferdy Exp $
+
+inherit eutils
+
+DESCRIPTION="Exuberant Ctags creates tags files for code browsing in editors"
+HOMEPAGE="http://ctags.sourceforge.net"
+SRC_URI="mirror://sourceforge/ctags/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc-macos ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE=""
+
+DEPEND="virtual/libc"
+
+src_unpack() {
+       unpack ${A}
+       cd ${S}
+       epatch "${FILESDIR}/${P}-ebuilds.patch"
+       epatch "${FILESDIR}/${P}-ruby-classes.patch"
+       epatch "${FILESDIR}/${P}-haskell.patch"
+       epatch "${FILESDIR}/${P}-objc.patch"
+       epatch "${FILESDIR}/${P}-vim-c.patch"
+}
+
+src_compile() {
+       econf \
+               --with-posix-regex \
+               --without-readlib \
+               --disable-etags \
+               --enable-tmpdir=/tmp \
+               || die "econf failed"
+       emake || die "emake failed"
+}
+
+src_install() {
+       einstall || die "einstall failed"
+
+       # namepace collision with X/Emacs-provided /usr/bin/ctags -- we
+       # rename ctags to exuberant-ctags (Mandrake does this also).
+       mv ${D}/usr/bin/{ctags,exuberant-ctags}
+       mv ${D}/usr/share/man/man1/{ctags,exuberant-ctags}.1
+
+       dodoc FAQ NEWS README
+       dohtml EXTENDING.html ctags.html
+}
diff --git a/dev-util/ctags/files/ctags-5.5.4-haskell.patch b/dev-util/ctags/files/ctags-5.5.4-haskell.patch
new file mode 100644 (file)
index 0000000..de87b45
--- /dev/null
@@ -0,0 +1,71 @@
+diff -NubB ctags-5.5.4.orig/haskell.c ctags-5.5.4/haskell.c
+--- ctags-5.5.4.orig/haskell.c 1970-01-01 01:00:00.000000000 +0100
++++ ctags-5.5.4/haskell.c      2005-11-13 16:11:17.000000000 +0100
+@@ -0,0 +1,37 @@
++/***************************************************************************
++ * haskell.c
++ * Regex-based parser for Haskell
++ *
++ * Copyright (c) 2005 Fernando J. Pereda <ferdy@gentoo.org>
++ *
++ * Slightly based on haskell.c by Gaal Yahas <gaal@forum2.org>
++ *
++ **************************************************************************/
++/* INCLUDE FILES */
++#include "general.h"    /* always include first */
++#include "parse.h"      /* always include */
++
++/* FUNCTION DEFINITIONS */
++static void installHaskellRegex (const langType language)
++{
++      addTagRegex(language,"^([^,:-]*)[[:blank:]]*::[[:blank:]]*(.*)$","\\1","f,function",NULL);
++      addTagRegex(language,"^main[[:blank:]]*=.*$","main","f,function",NULL);
++      addTagRegex(language,
++              "^type[[:blank:]]*([^=]*)[[:blank:]]*=[[:blank:]]*(.*)$","\\1","t,type",NULL);
++      addTagRegex(language,
++              "^class[[:blank:]]*(\\([^)]*\\)[[:blank:]]*=>)?[[:blank:]]*(.*)[[:blank:]]*where.*$",
++              "\\2","c,class",NULL);
++      addTagRegex(language,"^module[[:blank:]]*([^[:blank:]]*).*$","\\1","m,module",NULL);
++      addTagRegex(language,"^data[[:blank:]]*([^[:blank:]]*).*$","\\1","d,data",NULL);
++}
++
++/* Create parser definition stucture */
++extern parserDefinition* HaskellParser (void)
++{
++    static const char *const extensions [] = { "hs", "lhs", NULL };
++    parserDefinition* const def = parserNew ("Haskell");
++    def->extensions = extensions;
++    def->initialize = installHaskellRegex;
++    def->regex      = TRUE;
++    return def;
++}
+diff -NubB ctags-5.5.4.orig/parsers.h ctags-5.5.4/parsers.h
+--- ctags-5.5.4.orig/parsers.h 2003-07-18 04:58:22.000000000 +0200
++++ ctags-5.5.4/parsers.h      2005-11-13 16:01:14.000000000 +0100
+@@ -27,6 +27,7 @@
+     EiffelParser, \
+     ErlangParser, \
+     FortranParser, \
++    HaskellParser, \
+     HtmlParser, \
+     JavaParser, \
+     JavaScriptParser, \
+diff -NubB ctags-5.5.4.orig/source.mak ctags-5.5.4/source.mak
+--- ctags-5.5.4.orig/source.mak        2003-04-01 07:02:13.000000000 +0200
++++ ctags-5.5.4/source.mak     2005-11-13 16:01:45.000000000 +0100
+@@ -20,6 +20,7 @@
+       erlang.c \
+       fortran.c \
+       get.c \
++      haskell.c \
+       html.c \
+       jscript.c \
+       keyword.c \
+@@ -70,6 +71,7 @@
+       erlang.$(OBJEXT) \
+       fortran.$(OBJEXT) \
+       get.$(OBJEXT) \
++      haskell.$(OBJEXT) \
+       html.$(OBJEXT) \
+       jscript.$(OBJEXT) \
+       keyword.$(OBJEXT) \
diff --git a/dev-util/ctags/files/ctags-5.5.4-objc.patch b/dev-util/ctags/files/ctags-5.5.4-objc.patch
new file mode 100644 (file)
index 0000000..433a20f
--- /dev/null
@@ -0,0 +1,68 @@
+diff -NubB ctags-5.5.4.orig/objc.c ctags-5.5.4/objc.c
+--- ctags-5.5.4.orig/objc.c    1970-01-01 01:00:00.000000000 +0100
++++ ctags-5.5.4/objc.c 2005-11-13 18:36:50.000000000 +0100
+@@ -0,0 +1,34 @@
++/***************************************************************************
++ * objc.c
++ * Regex-based parser for Objective-C
++ *
++ * Copyright (c) 2005 Fernando J. Pereda <ferdy@gentoo.org>
++ *
++ **************************************************************************/
++/* INCLUDE FILES */
++#include "general.h"    /* always include first */
++#include "parse.h"      /* always include */
++
++/* FUNCTION DEFINITIONS */
++static void installObjCRegex (const langType language)
++{
++      addTagRegex(language,
++              "^[[:blank:]]*(-|\\+)[[:blank:]]*\\([^\\)]+\\)[[:blank:]]*([[:alnum:]_]+)",
++              "\\1\\2","f,method",NULL);
++      addTagRegex(language,"^@implementation[[:blank:]]*([[:alnum:]_]+)","\\1","c,class",NULL);
++      addTagRegex(language,"^#define[[:blank:]]*([^[:blank:]]*)[[:blank:]].*","\\1","d,define",NULL);
++      addTagRegex(language,
++              "^@interface[[:blank:]]*([^:[:blank:]]*)[[:blank:]]*:[[:blank:]]*([[:alnum:]_]+)",
++              "\\1:\\2","c,class",NULL);
++}
++
++/* Create parser definition stucture */
++extern parserDefinition* ObjCParser (void)
++{
++    static const char *const extensions [] = { "m", "h", NULL };
++    parserDefinition* const def = parserNew ("ObjC");
++    def->extensions = extensions;
++    def->initialize = installObjCRegex;
++    def->regex      = TRUE;
++    return def;
++}
+diff -NubB ctags-5.5.4.orig/parsers.h ctags-5.5.4/parsers.h
+--- ctags-5.5.4.orig/parsers.h 2003-07-18 04:58:22.000000000 +0200
++++ ctags-5.5.4/parsers.h      2005-11-13 17:43:18.000000000 +0100
+@@ -33,6 +33,7 @@
+     LispParser, \
+     LuaParser, \
+     MakefileParser, \
++    ObjCParser, \
+     PascalParser, \
+     PerlParser, \
+     PhpParser, \
+diff -NubB ctags-5.5.4.orig/source.mak ctags-5.5.4/source.mak
+--- ctags-5.5.4.orig/source.mak        2003-04-01 07:02:13.000000000 +0200
++++ ctags-5.5.4/source.mak     2005-11-13 18:33:04.000000000 +0100
+@@ -28,6 +28,7 @@
+       lua.c \
+       main.c \
+       make.c \
++      objc.c \
+       options.c \
+       parse.c \
+       pascal.c \
+@@ -79,6 +80,7 @@
+       main.$(OBJEXT) \
+       make.$(OBJEXT) \
+       options.$(OBJEXT) \
++      objc.$(OBJEXT) \
+       parse.$(OBJEXT) \
+       pascal.$(OBJEXT) \
+       perl.$(OBJEXT) \
diff --git a/dev-util/ctags/files/ctags-5.5.4-vim-c.patch b/dev-util/ctags/files/ctags-5.5.4-vim-c.patch
new file mode 100644 (file)
index 0000000..f4a9ab6
--- /dev/null
@@ -0,0 +1,340 @@
+diff -cr ../ctags-5.5.4.orig/c.c ./c.c
+*** ../ctags-5.5.4.orig/c.c    Sat Feb 28 16:37:52 2004
+--- ./c.c      Sun Sep 11 13:02:59 2005
+***************
+*** 455,460 ****
+--- 455,463 ----
+      { "while",               KEYWORD_WHILE,          { 1, 1, 1, 1, 0 } }
+  };
+  
++ /* Added by Bram: number for nameless structs and unions. */
++ static int numberForName = 0;
++ 
+  /*
+  *   FUNCTION PROTOTYPES
+  */
+***************
+*** 762,768 ****
+       initToken (st->token [i]);
+  
+      initToken (st->context);
+!     initToken (st->blockName);
+      vStringClear (st->parentClasses);
+  
+      /*  Init member info.
+--- 765,775 ----
+       initToken (st->token [i]);
+  
+      initToken (st->context);
+! 
+!     /* Keep the block name, so that a variable following after a comma will
+!      * still have the structure name. (Bram) */
+!     if (! partial)
+!      initToken (st->blockName);
+      vStringClear (st->parentClasses);
+  
+      /*  Init member info.
+***************
+*** 943,950 ****
+      return result;
+  }
+  
+  static void addOtherFields (tagEntryInfo* const tag, const tagType type,
+!                          const statementInfo *const st, vString *const scope)
+  {
+      /*  For selected tag types, append an extension flag designating the
+       *  parent object in which the tag is defined.
+--- 950,966 ----
+      return result;
+  }
+  
++ static void addContextSeparator (vString *const scope)
++ {
++     if (isLanguage (Lang_c)  ||  isLanguage (Lang_cpp))
++      vStringCatS (scope, "::");
++     else if (isLanguage (Lang_java) || isLanguage (Lang_csharp))
++      vStringCatS (scope, ".");
++ }
++ 
+  static void addOtherFields (tagEntryInfo* const tag, const tagType type,
+!                          const statementInfo *const st,
+!                          vString *const scope, vString *const typeName)
+  {
+      /*  For selected tag types, append an extension flag designating the
+       *  parent object in which the tag is defined.
+***************
+*** 1001,1014 ****
+           }
+           break;
+      }
+- }
+  
+! static void addContextSeparator (vString *const scope)
+! {
+!     if (isLanguage (Lang_c)  ||  isLanguage (Lang_cpp))
+!      vStringCatS (scope, "::");
+!     else if (isLanguage (Lang_java) || isLanguage (Lang_csharp))
+!      vStringCatS (scope, ".");
+  }
+  
+  static void findScopeHierarchy (vString *const string,
+--- 1017,1054 ----
+           }
+           break;
+      }
+  
+!     /* Added by Bram: typename info, type of the tag and name of
+!      * struct/union/etc. */
+!     if ((type == TAG_TYPEDEF || type == TAG_VARIABLE || type == TAG_MEMBER)
+!          && isContextualStatement(st))
+!     {
+!      char *p;
+! 
+!      tag->extensionFields.typeName [0] =
+!                                  tagName (declToTagType (st->declaration));
+!      p = vStringValue (st->blockName->name);
+! 
+!      /* If there was no {} block get the name from the token before the
+!       * name (current token is ';' or ',', previous token is the name). */
+!      if (p == NULL || *p == '\0')
+!      {
+!          tokenInfo *const prev2 = prevToken (st, 2);
+! 
+!          if (isType (prev2, TOKEN_NAME))
+!              p = vStringValue (prev2->name);
+!      }
+! 
+!      /* Prepend the scope name if there is one. */
+!      if (vStringLength (scope) > 0)
+!      {
+!          vStringCopy(typeName, scope);
+!          addContextSeparator (typeName);
+!          vStringCatS(typeName, p);
+!          p = vStringValue (typeName);
+!      }
+!      tag->extensionFields.typeName [1] = p;
+!     }
+  }
+  
+  static void findScopeHierarchy (vString *const string,
+***************
+*** 1106,1111 ****
+--- 1146,1154 ----
+       includeTag (type, isFileScope))
+      {
+       vString *scope = vStringNew ();
++      /* Added "typeName" to store the typename from addOtherFields() until
++       * it's used in makeTagEntry(). (Bram) */
++      vString *typeName = vStringNew ();
+       tagEntryInfo e;
+  
+       initTagEntry (&e, vStringValue (token->name));
+***************
+*** 1117,1127 ****
+       e.kind          = tagLetter (type);
+  
+       findScopeHierarchy (scope, st);
+!      addOtherFields (&e, type, st, scope);
+  
+       makeTagEntry (&e);
+       makeExtraTagEntry (type, &e, scope);
+       vStringDelete (scope);
+      }
+  }
+  
+--- 1160,1171 ----
+       e.kind          = tagLetter (type);
+  
+       findScopeHierarchy (scope, st);
+!      addOtherFields (&e, type, st, scope, typeName);
+  
+       makeTagEntry (&e);
+       makeExtraTagEntry (type, &e, scope);
+       vStringDelete (scope);
++      vStringDelete (typeName);
+      }
+  }
+  
+***************
+*** 2566,2571 ****
+--- 2610,2627 ----
+           {
+               if (isType (prev, TOKEN_NAME))
+                   copyToken (st->blockName, prev);
++              else
++              {
++                  char        buf[30];
++ 
++                  /* Added by Bram: for a nameless struct or union we use a
++                   * number, so that the members can be found. */
++                  vStringClear (st->blockName->name);
++                  sprintf(buf, "%d", ++numberForName);
++                  vStringCatS (st->blockName->name, buf);
++                  st->blockName->type = TOKEN_NAME;
++                  st->blockName->keyword = KEYWORD_NONE;
++              }
+               qualifyBlockTag (st, prev);
+           }
+           else if (isLanguage (Lang_csharp))
+diff -cr ../ctags-5.5.4.orig/ctags.1 ./ctags.1
+*** ../ctags-5.5.4.orig/ctags.1        Tue Mar 30 06:18:13 2004
+--- ./ctags.1  Sun Sep 11 12:53:14 2005
+***************
+*** 453,458 ****
+--- 453,461 ----
+  .TP 4
+  .I z
+  Include the "kind:" key in kind field
++ .TP 4
++ .I t
++ Type and name of a variable or typedef as "typename:" field [enabled]
+  .PD 1
+  .RE
+  
+diff -cr ../ctags-5.5.4.orig/ctags.html ./ctags.html
+*** ../ctags-5.5.4.orig/ctags.html     Tue Mar 30 06:18:20 2004
+--- ./ctags.html       Sun Sep 11 12:54:26 2005
+***************
+*** 516,521 ****
+--- 516,527 ----
+  <DD>
+  Include the &quot;kind:&quot; key in kind field
+  
++ <DT><I>t</I>
++ 
++ <DD>
++ Include the type and name of a variable or typedef, using the "typename:" field
++ [enabled]
++ 
+  </DL>
+  </DL>
+  
+diff -cr ../ctags-5.5.4.orig/debug.c ./debug.c
+*** ../ctags-5.5.4.orig/debug.c        Tue Apr  1 06:52:44 2003
+--- ./debug.c  Sun Sep 11 13:05:03 2005
+***************
+*** 105,110 ****
+--- 105,117 ----
+               tag->extensionFields.implementation != NULL)
+           printf (" [imp:%s]", tag->extensionFields.implementation);
+  
++      /* Added by Bram */
++      if (Option.extensionFields.typeName  &&
++              tag->extensionFields.typeName [0] != NULL  &&
++              tag->extensionFields.typeName [1] != NULL)
++          printf (" [%s:%s]", tag->extensionFields.typeName [0],
++                  tag->extensionFields.typeName [1]);
++ 
+       printf ("#>");
+       fflush (stdout);
+      }
+diff -cr ../ctags-5.5.4.orig/entry.c ./entry.c
+*** ../ctags-5.5.4.orig/entry.c        Wed Mar 24 03:28:52 2004
+--- ./entry.c  Sun Sep 11 13:05:13 2005
+***************
+*** 729,734 ****
+--- 729,742 ----
+                          tag->extensionFields.scope [0],
+                          tag->extensionFields.scope [1]);
+  
++     /* Added by Bram.  TODO: use separate option? */
++     if (Option.extensionFields.typeName  &&
++          tag->extensionFields.typeName [0] != NULL  &&
++          tag->extensionFields.typeName [1] != NULL)
++      length += fprintf (TagFile.fp, "%s\ttypename:%s:%s", sep,
++                         tag->extensionFields.typeName [0],
++                         tag->extensionFields.typeName [1]);
++ 
+      if (Option.extensionFields.fileScope  &&  tag->isFileScope)
+       length += fprintf (TagFile.fp, "%s\tfile:", sep);
+  
+diff -cr ../ctags-5.5.4.orig/entry.h ./entry.h
+*** ../ctags-5.5.4.orig/entry.h        Mon Sep 30 06:30:47 2002
+--- ./entry.h  Sun Sep 11 13:05:36 2005
+***************
+*** 72,77 ****
+--- 72,82 ----
+       const char* inheritance;
+       const char* scope [2];  /* value and key */
+       const char* signature;
++ 
++      /* Added by Bram: type (union/struct/etc.) and name for a variable or
++       * typedef. */
++      const char* typeName [2];       /* e.g., "struct" and struct name */
++ 
+      } extensionFields;               /* list of extension fields*/
+  } tagEntryInfo;
+  
+diff -cr ../ctags-5.5.4.orig/options.c ./options.c
+*** ../ctags-5.5.4.orig/options.c      Sat Feb 28 16:19:45 2004
+--- ./options.c        Sun Sep 11 12:50:56 2005
+***************
+*** 118,124 ****
+       FALSE,          /* -fields=l */
+       FALSE,          /* -fields=n */
+       TRUE,           /* -fields=s */
+!      FALSE           /* -fields=S */
+      },
+      NULL,            /* -I */
+      FALSE,           /* -a */
+--- 118,125 ----
+       FALSE,          /* -fields=l */
+       FALSE,          /* -fields=n */
+       TRUE,           /* -fields=s */
+!      FALSE,          /* -fields=S */
+!      TRUE            /* -fields=t */
+      },
+      NULL,            /* -I */
+      FALSE,           /* -a */
+***************
+*** 207,213 ****
+   {1,"  --extra=[+|-]flags"},
+   {1,"      Include extra tag entries for selected information (flags: \"fq\")."},
+   {1,"  --fields=[+|-]flags"},
+!  {1,"      Include selected extension fields (flags: \"afmikKlnsSz\") [fks]."},
+   {1,"  --file-scope=[yes|no]"},
+   {1,"       Should tags scoped only for a single file (e.g. \"static\" tags"},
+   {1,"       be included in the output [yes]?"},
+--- 208,214 ----
+   {1,"  --extra=[+|-]flags"},
+   {1,"      Include extra tag entries for selected information (flags: \"fq\")."},
+   {1,"  --fields=[+|-]flags"},
+!  {1,"      Include selected extension fields (flags: \"afmikKlnsStz\") [fks]."},
+   {1,"  --file-scope=[yes|no]"},
+   {1,"       Should tags scoped only for a single file (e.g. \"static\" tags"},
+   {1,"       be included in the output [yes]?"},
+***************
+*** 835,840 ****
+--- 836,842 ----
+       field->kindLong         = FALSE;
+       field->language         = FALSE;
+       field->scope            = FALSE;
++      field->typeName         = FALSE;
+      }
+      while ((c = *p++) != '\0') switch (c)
+      {
+***************
+*** 852,857 ****
+--- 854,860 ----
+       case 's': field->scope          = mode; break;
+       case 'S': field->signature      = mode; break;
+       case 'z': field->kindKey        = mode; break;
++      case 't': field->typeName       = mode; break;
+  
+       default: error(WARNING, "Unsupported parameter '%c' for \"%s\" option",
+                      c, option);
+diff -cr ../ctags-5.5.4.orig/options.h ./options.h
+*** ../ctags-5.5.4.orig/options.h      Mon Jul 21 03:09:08 2003
+--- ./options.h        Sun Sep 11 12:48:29 2005
+***************
+*** 77,82 ****
+--- 77,85 ----
+      boolean lineNumber;
+      boolean scope;
+      boolean signature;
++ 
++     /* Added by Bram. */
++     boolean typeName;
+  };
+  
+  /*  This stores the command line options.
diff --git a/dev-util/ctags/files/digest-ctags-5.5.4-r3 b/dev-util/ctags/files/digest-ctags-5.5.4-r3
new file mode 100644 (file)
index 0000000..3342f14
--- /dev/null
@@ -0,0 +1 @@
+MD5 a84124caadd4103270e0b84596ecfe83 ctags-5.5.4.tar.gz 260962