[packages/ctags] Switch from unmaintained crags to maintained universal ctags (6.2.1) project.
arekm
arekm at pld-linux.org
Mon Aug 31 23:11:05 CEST 2026
commit 9f2d19dacabb6b21764c1b6846983744470c7243
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Mon Aug 31 23:10:41 2026 +0200
Switch from unmaintained crags to maintained universal ctags (6.2.1) project.
attr.patch | 294 ------------------------------------------
branch.sh | 41 ------
ctags-5.7-segment-fault.patch | 41 ------
ctags-5.8-css.patch | 260 -------------------------------------
ctags-5.8-cssparse.patch | 16 ---
ctags.spec | 290 +++++++++++++++++++++++------------------
6 files changed, 161 insertions(+), 781 deletions(-)
---
diff --git a/ctags.spec b/ctags.spec
index 76f0220..a245dc2 100644
--- a/ctags.spec
+++ b/ctags.spec
@@ -1,172 +1,204 @@
-Summary: Exuberant ctags -- C cross-reference tool
-Summary(de.UTF-8): Exuberant ctags - C-Cross-Reference-Tool
-Summary(es.UTF-8): ctags - generador de listas de referencia
-Summary(fr.UTF-8): ctags exubérant
-Summary(ko.UTF-8): 여러 언어로 된 소스 코드에 색인을 만들어주는 도구
-Summary(pl.UTF-8): ctags - generator list odwołań
-Summary(pt_BR.UTF-8): Ctags exuberantes! Ferramenta de referência cruzada para C
-Summary(ru.UTF-8): Утилита для индексации и построения ссылок для языка C
-Summary(tr.UTF-8): C dili için çapraz-başvuru (cross-reference) aracı
-Summary(uk.UTF-8): Утиліта для індексації та побудови посилань для мови C
+Summary: Universal Ctags -- source code cross-reference tool
+Summary(de.UTF-8): Universal Ctags - Querverweis-Werkzeug für Quelltext
+Summary(es.UTF-8): Universal Ctags - generador de referencias cruzadas
+Summary(fr.UTF-8): Universal Ctags - outil de références croisées
+Summary(ko.UTF-8): Universal Ctags - 여러 언어로 된 소스 코드에 색인을 만들어주는 도구
+Summary(pl.UTF-8): Universal Ctags - generator list odwołań
+Summary(pt_BR.UTF-8): Universal Ctags - ferramenta de referência cruzada
+Summary(ru.UTF-8): Universal Ctags - утилита для построения перекрёстных ссылок
+Summary(tr.UTF-8): Universal Ctags - çapraz başvuru (cross-reference) aracı
+Summary(uk.UTF-8): Universal Ctags - утиліта для побудови перехресних посилань
Name: ctags
-Version: 5.8
-Release: 7
+Version: 6.2.1
+Release: 1
License: GPL v2+
Group: Development/Tools
-Source0: http://downloads.sourceforge.net/ctags/%{name}-%{version}.tar.gz
-# Source0-md5: c00f82ecdcc357434731913e5b48630d
-Source1: branch.sh
-Patch0: branch.diff
-# Patch0-md5: 6a14a7eb89b1ef01f6849c9ad1fc169b
-Patch1: %{name}-5.7-segment-fault.patch
-Patch2: %{name}-5.8-css.patch
-Patch3: %{name}-5.8-cssparse.patch
-Patch4: attr.patch
-URL: http://ctags.sourceforge.net/
-BuildRequires: autoconf >= 1.12
-BuildRequires: automake
+Source0: https://github.com/universal-ctags/ctags/releases/download/v%{version}/universal-%{name}-%{version}.tar.gz
+# Source0-md5: 61718f5238cd005155cf0e9aa22e10e1
+URL: https://ctags.io/
+BuildRequires: jansson-devel
+BuildRequires: libseccomp-devel
+BuildRequires: libxml2-devel >= 2.7.7
+BuildRequires: pcre2-8-devel
+BuildRequires: pkgconfig
BuildRequires: rpmbuild(macros) >= 1.402
+BuildRequires: yaml-devel
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
-Ctags generates an index (or tag) file of C language objects found in
-C source and header files. The index makes it easy for text editors or
-other utilities to locate the indexed items. Ctags can also generate a
-cross reference file which lists information about the various objects
-found in a set of C language files in human readable form. Exuberant
-Ctags improves on ctags because it can find all types of C language
-tags, including macro definitions, enumerated values (values inside
-enum{...}), function and method definitions, enum/struct/union tags,
-external function prototypes, typedef names and variable declarations.
-Exuberant Ctags is far less likely to be fooled by code containing #if
-preprocessor conditional constructs than ctags. Exuberant ctags
-supports output of emacs style TAGS files and can be used to print out
-a list of selected objects found in source files.
+Ctags generates an index (or tag) file of language objects found in
+source files. The index makes it easy for text editors or other
+utilities to locate the indexed items. Ctags can also generate a cross
+reference file which lists information about the various objects found
+in a set of source files in human readable form. Universal Ctags is the
+maintained successor of Exuberant Ctags; it covers many more languages
+and finds all types of tags, including macro definitions, enumerated
+values (values inside enum{...}), function and method definitions,
+enum/struct/union tags, external function prototypes, typedef names and
+variable declarations. It is far less likely to be fooled by code
+containing #if preprocessor conditional constructs than the original
+ctags, supports output of emacs style TAGS files and can be used to
+print out a list of selected objects found in source files.
%description -l de.UTF-8
-'#if'-Präprozessor-Bedingungen enthält, dank eines konditionalen Ein
-verbessertes ctags, das tags für alle möglichen tag-Typen generiert:
-Makrodefinitionen, aufgezählte Werte (Werte in enum{...}), Funktions-
-und Methodendefinitionen, enum/struct/union-tags, externe
-Funktionsprototypen (wahlweise), typedefs und variable Deklarationen.
-Es läßt sich weit weniger gut durch Code täuschen, der
-Pfadauswahlalgorithmus, der komplizierte Entscheidungen trifft, und
-eines Ausweiche-Algorithmus, der ins Spiel kommt, wenn der erste dem
-Problem nicht gewachsen ist. Kann auch benutzt werden, um eine Liste
-ausgewählter Objekte, die in Quelldateien gefunden wurden,
-auszudrucken.
+Ctags erzeugt eine Index- bzw. Tag-Datei der in Quelldateien
+gefundenen Sprachobjekte. Dieser Index erleichtert es Texteditoren und
+anderen Werkzeugen, die indizierten Elemente aufzufinden. Ctags kann
+außerdem eine Querverweisdatei erzeugen, die Informationen über die
+gefundenen Objekte in lesbarer Form auflistet. Universal Ctags ist der
+gepflegte Nachfolger von Exuberant Ctags; es unterstützt deutlich mehr
+Sprachen und findet alle Arten von Tags: Makrodefinitionen,
+Aufzählungswerte (Werte innerhalb von enum{...}), Funktions- und
+Methodendefinitionen, enum/struct/union-Tags, externe
+Funktionsprototypen, Typedef-Namen und Variablendeklarationen. Es
+lässt sich von Code mit bedingten '#if'-Präprozessor-Konstrukten
+deutlich seltener täuschen als das ursprüngliche ctags, kann
+TAGS-Dateien im Emacs-Format ausgeben und eine Liste ausgewählter, in
+Quelldateien gefundener Objekte ausdrucken.
%description -l es.UTF-8
-Un ctags mejor que crea tags para todos los tipos posibles de tag:
-definiciones de macro, valores enumerados, definiciones de función y
-método, tags enum/struct/union, prototipos de función externa
-(opcional), typedefs y declaraciones variables. Es más difícil de ser
-engañado en códigos que contenga la directiva condicional #if para el
-preprocesador, pues utiliza un algoritmo condicional de camino para
-solucionar decisiones complicadas, y un algoritmo de rescate cuando
-este falla. También puede ser usado para enseñar una lista de objetos
-seleccionados que esté en los archivos fuente.
+Ctags genera un archivo de índice (o de tags) con los objetos de
+lenguaje encontrados en los archivos fuente. Ese índice facilita a los
+editores de texto y a otras utilidades la localización de los
+elementos indexados. Ctags también puede generar un archivo de
+referencias cruzadas que lista, en un formato legible, información
+sobre los distintos objetos encontrados. Universal Ctags es el sucesor
+mantenido de Exuberant Ctags; admite muchos más lenguajes y encuentra
+todos los tipos de tag: definiciones de macro, valores enumerados
+(valores dentro de enum{...}), definiciones de función y método, tags
+enum/struct/union, prototipos de función externa, typedefs y
+declaraciones de variables. Es mucho más difícil de engañar con código
+que contenga la directiva condicional #if del preprocesador que el
+ctags original, permite generar archivos TAGS al estilo de Emacs y
+puede usarse para mostrar una lista de los objetos seleccionados que
+estén en los archivos fuente.
%description -l fr.UTF-8
-un ctags amélioré générant des tags pour tous les types de tags
-possibles : définitions de macros, valeurs énumérées (valeurs dans
-enum{...}), définitions de fonctions et de méthodes, enum/struct/union
-tags, prototypes de fonctions externes (optionnel), typedefs, et
-déclarations de variables. Peut aussi être utilisé pour afficher une
-liste des objets choisis trouvés dans les fichiers source.
+Ctags génère un fichier d'index (ou de tags) des objets de langage
+trouvés dans les fichiers source. Cet index permet aux éditeurs de
+texte et aux autres utilitaires de localiser facilement les éléments
+indexés. Ctags peut aussi générer un fichier de références croisées
+qui présente sous une forme lisible les informations sur les
+différents objets trouvés. Universal Ctags est le successeur maintenu
+d'Exuberant Ctags ; il prend en charge bien plus de langages et trouve
+tous les types de tags : définitions de macros, valeurs énumérées
+(valeurs dans enum{...}), définitions de fonctions et de méthodes,
+tags enum/struct/union, prototypes de fonctions externes, typedefs et
+déclarations de variables. Il se laisse beaucoup moins facilement
+tromper que le ctags d'origine par du code contenant des constructions
+conditionnelles « #if » du préprocesseur, gère la sortie de fichiers
+TAGS au format Emacs et peut être utilisé pour afficher une liste des
+objets choisis trouvés dans les fichiers source.
%description -l pl.UTF-8
-Generator tabeli odwołań dla: makr, zmiennych, funkcji i procedur,
-definicji typów, metod (C++) itp. Używany do generacji listy
+Generator tabeli odwołań dla makr, zmiennych, funkcji i procedur,
+definicji typów, metod itp. Używany do generowania listy
wyspecyfikowanych obiektów znalezionych w plikach źródłowych. Tablica
owych odwołań może być wykorzystywana przez większość standardowych
-edytorów tekstu (vim, joe, emacs), do przemieszczania się w źródłach
-między deklaracją i użyciem danego symbolu.
+edytorów tekstu (vim, joe, emacs) do przemieszczania się w źródłach
+między deklaracją a użyciem danego symbolu. Universal Ctags jest
+utrzymywanym następcą Exuberant Ctags i obsługuje znacznie więcej
+języków programowania.
%description -l pt_BR.UTF-8
-Um ctags melhor que gera tags para todos os tipos possíveis de tag:
-definições de macro, valores enumerados, definições de função e
-método, tags enum/struct/union, protótipos de função externa
-(opcional), typedefs e declarações variáveis. É mais difícil de ser
-enganado em códigos que contenha a diretiva condicional #if para o
-pré-processador, pois utiliza um algoritmo condicional de caminho para
-resolver decisões complicadas, e um algoritmo de resgate quando este
-falha. Também pode ser usado para mostrar uma lista de objetos
-selecionados que estejam nos arquivos fonte.
+O Ctags gera um arquivo de índice (ou de tags) com os objetos de
+linguagem encontrados nos arquivos fonte. Esse índice facilita aos
+editores de texto e a outros utilitários a localização dos itens
+indexados. O Ctags também pode gerar um arquivo de referências
+cruzadas que lista, em formato legível, informações sobre os diversos
+objetos encontrados. O Universal Ctags é o sucessor mantido do
+Exuberant Ctags; ele abrange muito mais linguagens e encontra todos os
+tipos de tag: definições de macro, valores enumerados (valores dentro
+de enum{...}), definições de função e método, tags enum/struct/union,
+protótipos de função externa, typedefs e declarações de variáveis. É
+muito mais difícil de ser enganado por código que contenha a diretiva
+condicional #if do pré-processador do que o ctags original, gera
+arquivos TAGS no estilo do Emacs e pode ser usado para mostrar uma
+lista dos objetos selecionados que estejam nos arquivos fonte.
%description -l ru.UTF-8
-Ctags генерирует индексный (или тэг-) файл объектов языка C, которые
-находятся в файлах исходных текстов и хедерах на языке C. Такой индекс
-облегчает текстовым редакторам и другим утилитам поиск индексированных
-объектов. Ctags также может генерировать файл перекрестных ссылок,
-который содержит информацию о различных объектах, содержащихся в
-наборе файлов на языке C в пригодной для чтения форме. Exuberant Ctags
-представляет собой усовершенствование стандартного ctags, т.к. он
-способен находить все типы тэгов языка C, включая макроопределения,
-перечисляемые значения (значения внутри enum{...}), определения
-функций и методов, тэги enum/struct/union, прототипы внешних функций,
-имена typedef и декларации переменных. Exuberant Ctags значительно
-труднее обмануть кодом, содержащим условные конструкции препроцессора
-'#if', чем оригинальный ctags. Exuberant Ctags поддерживает вывод
-файла TAGS в стиле Emacs и может быть использован для вывода списка
-выбранных объектов, найденных в исходных файлах.
+Ctags генерирует индексный (или тег-) файл языковых объектов, которые
+находятся в файлах исходных текстов. Такой индекс облегчает текстовым
+редакторам и другим утилитам поиск индексированных объектов. Ctags
+также может генерировать файл перекрёстных ссылок, который содержит
+информацию о различных объектах, найденных в наборе исходных файлов, в
+пригодной для чтения форме. Universal Ctags — поддерживаемый преемник
+Exuberant Ctags; он понимает намного больше языков и способен находить
+все типы тегов, включая макроопределения, перечисляемые значения
+(значения внутри enum{...}), определения функций и методов, теги
+enum/struct/union, прототипы внешних функций, имена typedef и
+декларации переменных. Universal Ctags значительно труднее обмануть
+кодом, содержащим условные конструкции препроцессора '#if', чем
+оригинальный ctags. Universal Ctags поддерживает вывод файла TAGS в
+стиле Emacs и может быть использован для вывода списка выбранных
+объектов, найденных в исходных файлах.
%description -l tr.UTF-8
-Olabilecek her türlü etiket çeşitleri - makro tanımlamaları, sayılı
-(enumerated) değerler, fonksiyon ve yöntem (method) tanımlamaları, tip
-ve değişken tanımları - için etiketler üretir. Kaynak kodlarında
-bulunan, seçilmiş nesnelerin listesinin çıktısını yazıcıdan almak için
-de kullanılabilir.
+Ctags, kaynak dosyalarda bulunan dil nesnelerinin bir dizin (etiket)
+dosyasını üretir. Bu dizin, metin düzenleyicilerin ve diğer araçların
+dizinlenmiş öğeleri bulmasını kolaylaştırır. Ctags ayrıca bulunan
+nesneler hakkındaki bilgileri okunabilir biçimde listeleyen bir çapraz
+başvuru dosyası da üretebilir. Universal Ctags, Exuberant Ctags'in
+bakımı sürdürülen ardılıdır; çok daha fazla dili destekler ve her
+türlü etiketi bulur: makro tanımlamaları, sayılı (enumerated)
+değerler, fonksiyon ve yöntem (method) tanımlamaları,
+enum/struct/union etiketleri, dış fonksiyon prototipleri, typedef
+adları ve değişken tanımlamaları. Koşullu '#if' önişlemci yapıları
+içeren kodlarda özgün ctags'e göre çok daha az yanılır, Emacs
+biçimindeki TAGS dosyalarını üretebilir ve kaynak dosyalarda bulunan
+seçilmiş nesnelerin listesini yazdırmak için kullanılabilir.
%description -l uk.UTF-8
-Ctags генерує індексний (або тег-) файл об'єктів мови C, які
-знаходяться у файлах вихідних текстів та хедерах на мові C. Такий
-індекс полегшує текстовим редакторам та іншим утилітам пошук
-індексованих об'єктів. Ctags також може генерувати файл перехресних
-посилань, який містить інформацію про різні об'єкти, які містяться у
-наборі файлів на мові C у придатній для читання формі. Exuberant Ctags
-являє собою вдосконалення стандартного ctags, так як він у стані
-знаходити всі типи тегів мови C, включаючи макровизначення, значення
-всередині enum{...}, визначення функцій та методів, теги
-enum/struct/union, прототипи зовнішніх функцій, імена typedef та
-декларації змінних. Exuberant Ctags значно тяжче обманути кодом, що
-містить умовні конструкцію препроцесора #if, ніж оригінальний ctags.
-Exuberant Ctags підтримує вивід файлу TAGS у стилі Emacs і може бути
-використаний для виводу списку вибраних об'єктів, які знаходяться у
-вихідних файлах.
+Ctags генерує індексний (або тег-) файл мовних об'єктів, які
+знаходяться у файлах вихідних текстів. Такий індекс полегшує текстовим
+редакторам та іншим утилітам пошук індексованих об'єктів. Ctags також
+може генерувати файл перехресних посилань, який містить інформацію про
+різні об'єкти, знайдені у наборі вихідних файлів, у придатній для
+читання формі. Universal Ctags — підтримуваний наступник Exuberant
+Ctags; він розуміє значно більше мов та здатний знаходити всі типи
+тегів, включаючи макровизначення, значення всередині enum{...},
+визначення функцій та методів, теги enum/struct/union, прототипи
+зовнішніх функцій, імена typedef та декларації змінних. Universal
+Ctags значно важче обманути кодом, що містить умовні конструкції
+препроцесора #if, ніж оригінальний ctags. Universal Ctags підтримує
+вивід файлу TAGS у стилі Emacs і може бути використаний для виводу
+списку вибраних об'єктів, які знаходяться у вихідних файлах.
%prep
-%setup -q
-%patch -P0 -p0
-#%%patch1 -p1 recheck
-%patch -P2 -p1
-%patch -P3 -p1
-%patch -P4 -p1
+%setup -q -n universal-%{name}-%{version}
%build
-%{__autoconf}
-cp -f /usr/share/automake/install-sh .
-cp -f /usr/share/automake/config.sub .
+# /usr/bin/etags belongs to emacs-common; the etags mode of ctags is not
+# command line compatible with GNU etags, see ctags-incompatibilities(7)
%configure \
- --enable-etags \
- --enable-tmpdir=/tmp
+ --disable-etags \
+ --disable-silent-rules \
+ --enable-json \
+ --enable-pcre2 \
+ --enable-seccomp \
+ --enable-tmpdir=/tmp \
+ --enable-xml \
+ --enable-yaml
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} -j1 install \
- prefix=$RPM_BUILD_ROOT%{_prefix} \
- bindir=$RPM_BUILD_ROOT%{_bindir} \
- mandir=$RPM_BUILD_ROOT%{_mandir}
+
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc EXTENDING.html FAQ NEWS README
+%doc COPYING NEWS.rst README.md
%attr(755,root,root) %{_bindir}/ctags
-%attr(755,root,root) %{_bindir}/etags
+%attr(755,root,root) %{_bindir}/optscript
+%attr(755,root,root) %{_bindir}/readtags
%{_mandir}/man1/ctags.1*
-%{_mandir}/man1/etags.1*
+%{_mandir}/man1/readtags.1*
+%{_mandir}/man5/ctags-json-output.5*
+%{_mandir}/man5/tags.5*
+%{_mandir}/man7/ctags-*.7*
diff --git a/attr.patch b/attr.patch
deleted file mode 100644
index b1fc65d..0000000
--- a/attr.patch
+++ /dev/null
@@ -1,294 +0,0 @@
-diff -ur ctags-5.8.orig/c.c ctags-5.8/c.c
---- ctags-5.8.orig/c.c 2023-01-29 21:39:39.092029264 +0100
-+++ ctags-5.8/c.c 2023-01-29 21:56:25.586429350 +0100
-@@ -619,7 +619,7 @@
- return name;
- }
-
--static void __unused__ pt (tokenInfo *const token)
-+static void ctags_attr_unused pt (tokenInfo *const token)
- {
- if (isType (token, TOKEN_NAME))
- printf ("type: %-12s: %-13s line: %lu\n",
-@@ -634,7 +634,7 @@
- tokenString (token->type), token->lineNumber);
- }
-
--static void __unused__ ps (statementInfo *const st)
-+static void ctags_attr_unused ps (statementInfo *const st)
- {
- unsigned int i;
- printf ("scope: %s decl: %s gotName: %s gotParenName: %s\n",
-diff -ur ctags-5.8.orig/debug.h ctags-5.8/debug.h
---- ctags-5.8.orig/debug.h 2007-06-24 21:57:09.000000000 +0200
-+++ ctags-5.8/debug.h 2023-01-29 21:54:58.442301695 +0100
-@@ -58,7 +58,7 @@
- * Function prototypes
- */
- extern void lineBreak (void);
--extern void debugPrintf (const enum eDebugLevels level, const char *const format, ...) __printf__ (2, 3);
-+extern void debugPrintf (const enum eDebugLevels level, const char *const format, ...) ctags_attr_printf (2, 3);
- extern void debugPutc (const int level, const int c);
- extern void debugParseNest (const boolean increase, const unsigned int level);
- extern void debugCppNest (const boolean begin, const unsigned int level);
-diff -ur ctags-5.8.orig/eiffel.c ctags-5.8/eiffel.c
---- ctags-5.8.orig/eiffel.c 2023-01-29 21:39:39.095362496 +0100
-+++ ctags-5.8/eiffel.c 2023-01-29 21:56:12.003492590 +0100
-@@ -807,7 +807,7 @@
-
- static boolean parseType (tokenInfo *const token);
-
--static void parseGeneric (tokenInfo *const token, boolean declaration __unused__)
-+static void parseGeneric (tokenInfo *const token, boolean declaration ctags_attr_unused)
- {
- unsigned int depth = 0;
- #ifdef TYPE_REFERENCE_TOOL
-diff -ur ctags-5.8.orig/general.h ctags-5.8/general.h
---- ctags-5.8.orig/general.h 2007-05-03 05:21:08.000000000 +0200
-+++ ctags-5.8/general.h 2023-01-29 21:54:14.060256268 +0100
-@@ -57,11 +57,11 @@
- * to prevent warnings about unused variables.
- */
- #if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)) && !defined (__GNUG__)
--# define __unused__ __attribute__((unused))
--# define __printf__(s,f) __attribute__((format (printf, s, f)))
-+# define ctags_attr_unused __attribute__((unused))
-+# define ctags_attr_printf(s,f) __attribute__((format (printf, s, f)))
- #else
--# define __unused__
--# define __printf__(s,f)
-+# define ctags_attr_unused
-+# define ctags_attr_printf(s,f)
- #endif
-
- /*
-diff -ur ctags-5.8.orig/lregex.c ctags-5.8/lregex.c
---- ctags-5.8.orig/lregex.c 2023-01-29 21:39:39.082029568 +0100
-+++ ctags-5.8/lregex.c 2023-01-29 21:56:52.985628533 +0100
-@@ -538,11 +538,11 @@
- #endif /* HAVE_REGEX */
-
- extern void addTagRegex (
-- const langType language __unused__,
-- const char* const regex __unused__,
-- const char* const name __unused__,
-- const char* const kinds __unused__,
-- const char* const flags __unused__)
-+ const langType language ctags_attr_unused,
-+ const char* const regex ctags_attr_unused,
-+ const char* const name ctags_attr_unused,
-+ const char* const kinds ctags_attr_unused,
-+ const char* const flags ctags_attr_unused)
- {
- #ifdef HAVE_REGEX
- Assert (regex != NULL);
-@@ -564,10 +564,10 @@
- }
-
- extern void addCallbackRegex (
-- const langType language __unused__,
-- const char* const regex __unused__,
-- const char* const flags __unused__,
-- const regexCallback callback __unused__)
-+ const langType language ctags_attr_unused,
-+ const char* const regex ctags_attr_unused,
-+ const char* const flags ctags_attr_unused,
-+ const regexCallback callback ctags_attr_unused)
- {
- #ifdef HAVE_REGEX
- Assert (regex != NULL);
-@@ -581,7 +581,7 @@
- }
-
- extern void addLanguageRegex (
-- const langType language __unused__, const char* const regex __unused__)
-+ const langType language ctags_attr_unused, const char* const regex ctags_attr_unused)
- {
- #ifdef HAVE_REGEX
- if (! regexBroken)
-@@ -602,7 +602,7 @@
- */
-
- extern boolean processRegexOption (const char *const option,
-- const char *const parameter __unused__)
-+ const char *const parameter ctags_attr_unused)
- {
- boolean handled = FALSE;
- const char* const dash = strchr (option, '-');
-@@ -624,7 +624,7 @@
- return handled;
- }
-
--extern void disableRegexKinds (const langType language __unused__)
-+extern void disableRegexKinds (const langType language ctags_attr_unused)
- {
- #ifdef HAVE_REGEX
- if (language <= SetUpper && Sets [language].count > 0)
-@@ -639,8 +639,8 @@
- }
-
- extern boolean enableRegexKind (
-- const langType language __unused__,
-- const int kind __unused__, const boolean mode __unused__)
-+ const langType language ctags_attr_unused,
-+ const int kind ctags_attr_unused, const boolean mode ctags_attr_unused)
- {
- boolean result = FALSE;
- #ifdef HAVE_REGEX
-@@ -660,7 +660,7 @@
- return result;
- }
-
--extern void printRegexKinds (const langType language __unused__, boolean indent __unused__)
-+extern void printRegexKinds (const langType language ctags_attr_unused, boolean indent ctags_attr_unused)
- {
- #ifdef HAVE_REGEX
- if (language <= SetUpper && Sets [language].count > 0)
-diff -ur ctags-5.8.orig/lua.c ctags-5.8/lua.c
---- ctags-5.8.orig/lua.c 2006-10-12 05:26:40.000000000 +0200
-+++ ctags-5.8/lua.c 2023-01-29 21:56:09.113576927 +0100
-@@ -37,7 +37,7 @@
- */
-
- /* for debugging purposes */
--static void __unused__ print_string (char *p, char *q)
-+static void ctags_attr_unused print_string (char *p, char *q)
- {
- for ( ; p != q; p++)
- fprintf (errout, "%c", *p);
-diff -ur ctags-5.8.orig/main.c ctags-5.8/main.c
---- ctags-5.8.orig/main.c 2007-06-07 06:35:21.000000000 +0200
-+++ ctags-5.8/main.c 2023-01-29 21:56:29.099660063 +0100
-@@ -522,7 +522,7 @@
- * Start up code
- */
-
--extern int main (int __unused__ argc, char **argv)
-+extern int main (int ctags_attr_unused argc, char **argv)
- {
- cookedArgs *args;
- #ifdef VMS
-diff -ur ctags-5.8.orig/options.c ctags-5.8/options.c
---- ctags-5.8.orig/options.c 2007-09-05 04:00:44.000000000 +0200
-+++ ctags-5.8/options.c 2023-01-29 21:55:59.927178263 +0100
-@@ -730,7 +730,7 @@
- }
-
- static void processExcludeOption (
-- const char *const option __unused__, const char *const parameter)
-+ const char *const option ctags_attr_unused, const char *const parameter)
- {
- const char *const fileName = parameter + 1;
- if (parameter [0] == '\0')
-@@ -867,7 +867,7 @@
- }
-
- static void processFilterTerminatorOption (
-- const char *const option __unused__, const char *const parameter)
-+ const char *const option ctags_attr_unused, const char *const parameter)
- {
- freeString (&Option.filterTerminator);
- Option.filterTerminator = stringCopy (parameter);
-@@ -930,8 +930,8 @@
- }
-
- static void processHelpOption (
-- const char *const option __unused__,
-- const char *const parameter __unused__)
-+ const char *const option ctags_attr_unused,
-+ const char *const parameter ctags_attr_unused)
- {
- printProgramIdentification ();
- putchar ('\n');
-@@ -1139,8 +1139,8 @@
- }
-
- static void processLicenseOption (
-- const char *const option __unused__,
-- const char *const parameter __unused__)
-+ const char *const option ctags_attr_unused,
-+ const char *const parameter ctags_attr_unused)
- {
- printProgramIdentification ();
- puts ("");
-@@ -1166,8 +1166,8 @@
- }
-
- static void processListMapsOption (
-- const char *const __unused__ option,
-- const char *const __unused__ parameter)
-+ const char *const ctags_attr_unused option,
-+ const char *const ctags_attr_unused parameter)
- {
- if (parameter [0] == '\0' || strcasecmp (parameter, "all") == 0)
- printLanguageMaps (LANG_AUTO);
-@@ -1183,8 +1183,8 @@
- }
-
- static void processListLanguagesOption (
-- const char *const option __unused__,
-- const char *const parameter __unused__)
-+ const char *const option ctags_attr_unused,
-+ const char *const parameter ctags_attr_unused)
- {
- printLanguageList ();
- exit (0);
-@@ -1358,8 +1358,8 @@
- }
-
- static void processVersionOption (
-- const char *const option __unused__,
-- const char *const parameter __unused__)
-+ const char *const option ctags_attr_unused,
-+ const char *const parameter ctags_attr_unused)
- {
- printProgramIdentification ();
- exit (0);
-diff -ur ctags-5.8.orig/options.h ctags-5.8/options.h
---- ctags-5.8.orig/options.h 2007-09-05 04:00:44.000000000 +0200
-+++ ctags-5.8/options.h 2023-01-29 21:55:10.711944997 +0100
-@@ -122,7 +122,7 @@
- /*
- * FUNCTION PROTOTYPES
- */
--extern void verbose (const char *const format, ...) __printf__ (1, 2);
-+extern void verbose (const char *const format, ...) ctags_attr_printf (1, 2);
- extern void freeList (stringList** const pString);
- extern void setDefaultTagFileName (void);
- extern void checkOptions (void);
-diff -ur ctags-5.8.orig/parse.c ctags-5.8/parse.c
---- ctags-5.8.orig/parse.c 2007-07-31 07:35:33.000000000 +0200
-+++ ctags-5.8/parse.c 2023-01-29 21:56:18.749962319 +0100
-@@ -376,7 +376,7 @@
- */
-
- extern void processLanguageDefineOption (
-- const char *const option, const char *const parameter __unused__)
-+ const char *const option, const char *const parameter ctags_attr_unused)
- {
- #ifdef HAVE_REGEX
- if (parameter [0] == '\0')
-diff -ur ctags-5.8.orig/routines.c ctags-5.8/routines.c
---- ctags-5.8.orig/routines.c 2023-01-29 21:39:39.068696639 +0100
-+++ ctags-5.8/routines.c 2023-01-29 21:56:04.163721350 +0100
-@@ -526,7 +526,7 @@
-
- #if ! defined (HAVE_STAT_ST_INO)
-
--static void canonicalizePath (char *const path __unused__)
-+static void canonicalizePath (char *const path ctags_attr_unused)
- {
- #if defined (MSDOS_STYLE_PATH)
- char *p;
-diff -ur ctags-5.8.orig/routines.h ctags-5.8/routines.h
---- ctags-5.8.orig/routines.h 2007-06-07 06:35:21.000000000 +0200
-+++ ctags-5.8/routines.h 2023-01-29 21:55:18.851708213 +0100
-@@ -85,7 +85,7 @@
- extern void setExecutableName (const char *const path);
- extern const char *getExecutableName (void);
- extern const char *getExecutablePath (void);
--extern void error (const errorSelection selection, const char *const format, ...) __printf__ (2, 3);
-+extern void error (const errorSelection selection, const char *const format, ...) ctags_attr_printf (2, 3);
-
- /* Memory allocation functions */
- #ifdef NEED_PROTO_MALLOC
diff --git a/branch.sh b/branch.sh
deleted file mode 100755
index 53abfa6..0000000
--- a/branch.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/sh
-set -e
-package=ctags
-svn=svn://svn.code.sf.net/p/ctags/code
-tag=ctags-5.8
-out=branch.diff
-
-d=$-
-filter() {
- set -$d
- # Excluding files which change version or were not in dist tarball
- filterdiff \
- -x 'NEWS' \
- -x 'maintainer.mak' \
- -x 'Test/*' \
- -x 'website/*' \
- | \
- # remove revno's for smaller diffs
- sed -e 's,^\([-+]\{3\} .*\)\t(revision [0-9]\+)$,\1,'
-}
-
-old=$svn/tags/$tag
-new=$svn/trunk
-echo >&2 "Running diff: $old -> $new"
-LC_ALL=C svn diff --old=$old --new=$new > $out.tmp
-revno=$(sed -ne 's,^[-+]\{3\} .*\t(revision \([0-9]\+\))$,\1,p' $out.tmp | sort -urn | head -n1)
-echo >&2 "Revision $revno"
-[ "$revno" -gt 0 ] || exit 1
-
-sed -i -e "1i# Revision $revno" $out.tmp
-filter < $out.tmp > $out.tmp2 && mv -f $out.{tmp2,tmp}
-
-if cmp -s $out{,.tmp}; then
- echo >&2 "No new diffs..."
- rm -f $out.tmp
- exit 0
-fi
-mv -f $out{.tmp,}
-
-../md5 $package.spec
-../dropin $out
diff --git a/ctags-5.7-segment-fault.patch b/ctags-5.7-segment-fault.patch
deleted file mode 100644
index 60e8809..0000000
--- a/ctags-5.7-segment-fault.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff -ruN -x '*~' ctags-5.7/vim.c ctags-5.7/vim.c
---- ctags-5.7/vim.c 2006-10-26 12:06:21.000000000 +0900
-+++ ctags-5.7/vim.c 2009-08-28 22:21:31.000000000 +0900
-@@ -328,7 +328,7 @@
- */
- const unsigned char *cp = line;
-
-- if ( (int) *cp == '\\' )
-+ if ( cp && ( (int) *cp == '\\' ) )
- {
- /*
- * We are recursively calling this function is the command
-@@ -350,9 +350,10 @@
- while (*cp && isspace ((int) *cp))
- ++cp;
- }
-- else if ( (!strncmp ((const char*) line, "comp", (size_t) 4) == 0) &&
-- (!strncmp ((const char*) line, "comc", (size_t) 4) == 0) &&
-- (strncmp ((const char*) line, "com", (size_t) 3) == 0) )
-+ else if ( line &&
-+ (!strncmp ((const char*) line, "comp", (size_t) 4) == 0) &&
-+ (!strncmp ((const char*) line, "comc", (size_t) 4) == 0) &&
-+ (strncmp ((const char*) line, "com", (size_t) 3) == 0) )
- {
- cp += 2;
- if ((int) *++cp == 'm' && (int) *++cp == 'a' &&
-@@ -394,6 +395,14 @@
- while (*cp && !isspace ((int) *cp))
- ++cp;
- }
-+ else if (!isalnum ((int) *cp))
-+ {
-+ /*
-+ * Broken syntax: throw away this line
-+ */
-+ cmdProcessed = TRUE;
-+ goto cleanUp;
-+ }
- } while ( *cp && !isalnum ((int) *cp) );
-
- if ( ! *cp )
diff --git a/ctags-5.8-css.patch b/ctags-5.8-css.patch
deleted file mode 100644
index 2744d33..0000000
--- a/ctags-5.8-css.patch
+++ /dev/null
@@ -1,260 +0,0 @@
-diff -up ctags-5.8/css.c.me ctags-5.8/css.c
---- ctags-5.8/css.c.me 2012-02-08 13:59:35.000000000 +0100
-+++ ctags-5.8/css.c 2012-02-08 13:55:16.000000000 +0100
-@@ -0,0 +1,226 @@
-+/***************************************************************************
-+ * css.c
-+ * Character-based parser for Css definitions
-+ * Author - Iago Rubio <iagorubio(at)users.sourceforge.net>
-+ **************************************************************************/
-+#include "general.h"
-+
-+#include <string.h>
-+#include <ctype.h>
-+
-+#include "parse.h"
-+#include "read.h"
-+
-+
-+typedef enum eCssKinds {
-+ K_NONE = -1, K_CLASS, K_SELECTOR, K_ID
-+} cssKind;
-+
-+static kindOption CssKinds [] = {
-+ { TRUE, 'c', "class", "classes" },
-+ { TRUE, 's', "selector", "selectors" },
-+ { TRUE, 'i', "id", "identities" }
-+};
-+
-+typedef enum _CssParserState { // state of parsing
-+ P_STATE_NONE, // default state
-+ P_STATE_IN_COMMENT, // into a comment, only multi line in CSS
-+ P_STATE_IN_SINGLE_STRING, // into a single quoted string
-+ P_STATE_IN_DOUBLE_STRING, // into a double quoted string
-+ P_STATE_IN_DEFINITION, // on the body of the style definition, nothing for us
-+ P_STATE_IN_MEDIA, // on a @media declaration, can be multi-line
-+ P_STATE_IN_IMPORT, // on a @import declaration, can be multi-line
-+ P_STATE_IN_NAMESPACE, // on a @namespace declaration
-+ P_STATE_IN_PAGE, // on a @page declaration
-+ P_STATE_IN_FONTFACE, // on a @font-face declaration
-+ P_STATE_AT_END // end of parsing
-+} CssParserState;
-+
-+static void makeCssSimpleTag( vString *name, cssKind kind, boolean delete )
-+{
-+ vStringTerminate (name);
-+ makeSimpleTag (name, CssKinds, kind);
-+ vStringClear (name);
-+ if( delete )
-+ vStringDelete (name);
-+}
-+
-+static boolean isCssDeclarationAllowedChar( const unsigned char *cp )
-+{
-+ return isalnum ((int) *cp) ||
-+ isspace ((int) *cp) ||
-+ *cp == '_' || // allowed char
-+ *cp == '-' || // allowed char
-+ *cp == '+' || // allow all sibling in a single tag
-+ *cp == '>' || // allow all child in a single tag
-+ *cp == '{' || // allow the start of the declaration
-+ *cp == '.' || // allow classes and selectors
-+ *cp == ',' || // allow multiple declarations
-+ *cp == ':' || // allow pseudo classes
-+ *cp == '*' || // allow globs as P + *
-+ *cp == '#'; // allow ids
-+}
-+
-+static CssParserState parseCssDeclaration( const unsigned char **position, cssKind kind )
-+{
-+ vString *name = vStringNew ();
-+ const unsigned char *cp = *position;
-+
-+ // pick to the end of line including children and sibling
-+ // if declaration is multiline go for the next line
-+ while ( isCssDeclarationAllowedChar(cp) ||
-+ *cp == '\0' ) // track the end of line into the loop
-+ {
-+ if( (int) *cp == '\0' )
-+ {
-+ cp = fileReadLine ();
-+ if( cp == NULL ){
-+ makeCssSimpleTag(name, kind, TRUE);
-+ *position = cp;
-+ return P_STATE_AT_END;
-+ }
-+ }
-+ else if( *cp == ',' )
-+ {
-+ makeCssSimpleTag(name, kind, TRUE);
-+ *position = ++cp;
-+ return P_STATE_NONE;
-+ }
-+ else if( *cp == '{' )
-+ {
-+ makeCssSimpleTag(name, kind, TRUE);
-+ *position = ++cp;
-+ return P_STATE_IN_DEFINITION;
-+ }
-+
-+ vStringPut (name, (int) *cp);
-+ ++cp;
-+ }
-+
-+ makeCssSimpleTag(name, kind, TRUE);
-+ *position = cp;
-+
-+ return P_STATE_NONE;
-+}
-+
-+static CssParserState parseCssLine( const unsigned char *line, CssParserState state )
-+{
-+ vString *aux;
-+
-+ while( *line != '\0' ) // fileReadLine returns NULL terminated strings
-+ {
-+ while (isspace ((int) *line))
-+ ++line;
-+ switch( state )
-+ {
-+ case P_STATE_NONE:
-+ // pick first char if alphanumeric is a selector
-+ if( isalnum ((int) *line) )
-+ state = parseCssDeclaration( &line, K_SELECTOR );
-+ else if( *line == '.' ) // a class
-+ state = parseCssDeclaration( &line, K_CLASS );
-+ else if( *line == '#' ) // an id
-+ state = parseCssDeclaration( &line, K_ID );
-+ else if( *line == '@' ) // at-rules, we'll ignore them
-+ {
-+ ++line;
-+ aux = vStringNew();
-+ while( !isspace((int) *line) )
-+ {
-+ vStringPut (aux, (int) *line);
-+ ++line;
-+ }
-+ vStringTerminate (aux);
-+ if( strcmp( aux->buffer, "media" ) == 0 )
-+ state = P_STATE_IN_MEDIA;
-+ else if ( strcmp( aux->buffer, "import" ) == 0 )
-+ state = P_STATE_IN_IMPORT;
-+ else if ( strcmp( aux->buffer, "namespace" ) == 0 )
-+ state = P_STATE_IN_NAMESPACE;
-+ else if ( strcmp( aux->buffer, "page" ) == 0 )
-+ state = P_STATE_IN_PAGE;
-+ else if ( strcmp( aux->buffer, "font-face" ) == 0 )
-+ state = P_STATE_IN_FONTFACE;
-+ vStringDelete (aux);
-+ }
-+ else if( *line == '*' && *(line-1) == '/' ) // multi-line comment
-+ state = P_STATE_IN_COMMENT;
-+ break;
-+ case P_STATE_IN_COMMENT:
-+ if( *line == '/' && *(line-1) == '*')
-+ state = P_STATE_NONE;
-+ break;
-+ case P_STATE_IN_SINGLE_STRING:
-+ if( *line == '\'' && *(line-1) != '\\' )
-+ state = P_STATE_IN_DEFINITION; // PAGE, FONTFACE and DEFINITION are treated the same way
-+ break;
-+ case P_STATE_IN_DOUBLE_STRING:
-+ if( *line=='"' && *(line-1) != '\\' )
-+ state = P_STATE_IN_DEFINITION; // PAGE, FONTFACE and DEFINITION are treated the same way
-+ break;
-+ case P_STATE_IN_MEDIA:
-+ // skip to start of media body or line end
-+ while( *line != '{' )
-+ {
-+ if( *line == '\0' )
-+ break;
-+ ++line;
-+ }
-+ if( *line == '{' )
-+ state = P_STATE_NONE;
-+ break;
-+ case P_STATE_IN_IMPORT:
-+ case P_STATE_IN_NAMESPACE:
-+ // skip to end of declaration or line end
-+ while( *line != ';' )
-+ {
-+ if( *line == '\0' )
-+ break;
-+ ++line;
-+ }
-+ if( *line == ';' )
-+ state = P_STATE_NONE;
-+ break;
-+ case P_STATE_IN_PAGE:
-+ case P_STATE_IN_FONTFACE:
-+ case P_STATE_IN_DEFINITION:
-+ if( *line == '}' )
-+ state = P_STATE_NONE;
-+ else if( *line == '\'' )
-+ state = P_STATE_IN_SINGLE_STRING;
-+ else if( *line == '"' )
-+ state = P_STATE_IN_DOUBLE_STRING;
-+ break;
-+ case P_STATE_AT_END:
-+ return state;
-+ break;
-+ }
-+ line++;
-+ }
-+ return state;
-+}
-+
-+static void findCssTags (void)
-+{
-+ const unsigned char *line;
-+ CssParserState state = P_STATE_NONE;
-+
-+ while ( (line = fileReadLine ()) != NULL )
-+ {
-+ state = parseCssLine( line, state );
-+ if( state==P_STATE_AT_END ) return;
-+ }
-+}
-+
-+/* parser definition */
-+extern parserDefinition* CssParser (void)
-+{
-+ static const char *const extensions [] = { "css", NULL };
-+ parserDefinition* def = parserNew ("CSS");
-+ def->kinds = CssKinds;
-+ def->kindCount = KIND_COUNT (CssKinds);
-+ def->extensions = extensions;
-+ def->parser = findCssTags;
-+ return def;
-+}
-+
-diff -up ctags-5.8/parsers.h.me ctags-5.8/parsers.h
---- ctags-5.8/parsers.h.me 2012-02-08 13:56:46.000000000 +0100
-+++ ctags-5.8/parsers.h 2012-02-08 13:57:25.000000000 +0100
-@@ -26,6 +26,7 @@
- CppParser, \
- CsharpParser, \
- CobolParser, \
-+ CssParser, \
- DosBatchParser, \
- EiffelParser, \
- ErlangParser, \
-diff -up ctags-5.8/source.mak.me ctags-5.8/source.mak
---- ctags-5.8/source.mak.me 2012-02-08 13:58:02.000000000 +0100
-+++ ctags-5.8/source.mak 2012-02-08 13:58:42.000000000 +0100
-@@ -17,6 +17,7 @@ SOURCES = \
- beta.c \
- c.c \
- cobol.c \
-+ css.c \
- dosbatch.c \
- eiffel.c \
- entry.c \
-@@ -79,6 +80,7 @@ OBJECTS = \
- beta.$(OBJEXT) \
- c.$(OBJEXT) \
- cobol.$(OBJEXT) \
-+ css.$(OBJEXT) \
- dosbatch.$(OBJEXT) \
- eiffel.$(OBJEXT) \
- entry.$(OBJEXT) \
diff --git a/ctags-5.8-cssparse.patch b/ctags-5.8-cssparse.patch
deleted file mode 100644
index f70c374..0000000
--- a/ctags-5.8-cssparse.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -up ctags-5.8/css.c.me ctags-5.8/css.c
---- ctags-5.8/css.c.me 2012-10-18 22:03:20.126163700 +0200
-+++ ctags-5.8/css.c 2012-10-18 22:04:03.237107358 +0200
-@@ -73,10 +73,11 @@ static CssParserState parseCssDeclaratio
- {
- if( (int) *cp == '\0' )
- {
-+ /* assign position to the end of line. */
-+ *position = cp;
- cp = fileReadLine ();
- if( cp == NULL ){
- makeCssSimpleTag(name, kind, TRUE);
-- *position = cp;
- return P_STATE_AT_END;
- }
- }
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/ctags.git/commitdiff/9f2d19dacabb6b21764c1b6846983744470c7243
More information about the pld-cvs-commit
mailing list