[geany/geany] 4a199f: Merge branch 'ctags-tests'

Colomban Wendling git-noreply at xxxxx
Mon Jun 24 15:54:41 UTC 2013


Branch:      refs/heads/master
Author:      Colomban Wendling <ban at herbesfolles.org>
Committer:   Colomban Wendling <ban at herbesfolles.org>
Date:        Mon, 24 Jun 2013 15:54:41 UTC
Commit:      4a199f8505abeb648fa711d148e894cc158f2580
             https://github.com/geany/geany/commit/4a199f8505abeb648fa711d148e894cc158f2580

Log Message:
-----------
Merge branch 'ctags-tests'


Modified Paths:
--------------
    .gitignore
    Makefile.am
    configure.ac
    tests/Makefile.am
    tests/ctags/1795612.js
    tests/ctags/1795612.js.tags
    tests/ctags/1850914.js
    tests/ctags/1850914.js.tags
    tests/ctags/1878155.js
    tests/ctags/1878155.js.tags
    tests/ctags/1880687.js
    tests/ctags/1880687.js.tags
    tests/ctags/2023624.js
    tests/ctags/2023624.js.tags
    tests/ctags/3184782.sql
    tests/ctags/3184782.sql.tags
    tests/ctags/3470609.js
    tests/ctags/3470609.js.tags
    tests/ctags/3526726.tex
    tests/ctags/3526726.tex.tags
    tests/ctags/68hc11.asm
    tests/ctags/68hc11.asm.tags
    tests/ctags/Makefile.am
    tests/ctags/Package.pm
    tests/ctags/Package.pm.tags
    tests/ctags/angle_bracket.cpp
    tests/ctags/angle_bracket.cpp.tags
    tests/ctags/array-spec.f90
    tests/ctags/array-spec.f90.tags
    tests/ctags/array_ref_and_out.cs
    tests/ctags/array_ref_and_out.cs.tags
    tests/ctags/array_spec.f90
    tests/ctags/array_spec.f90.tags
    tests/ctags/attributes.cs
    tests/ctags/attributes.cs.tags
    tests/ctags/auto.f
    tests/ctags/auto.f.tags
    tests/ctags/bit_field.c
    tests/ctags/bit_field.c.tags
    tests/ctags/bracematch.js
    tests/ctags/bracematch.js.tags
    tests/ctags/bug1020715.c
    tests/ctags/bug1020715.c.tags
    tests/ctags/bug1020715.cpp
    tests/ctags/bug1020715.cpp.tags
    tests/ctags/bug1086609.c
    tests/ctags/bug1086609.c.tags
    tests/ctags/bug1093123.cpp
    tests/ctags/bug1093123.cpp.tags
    tests/ctags/bug1111214-j-chan.v
    tests/ctags/bug1111214-j-chan.v.tags
    tests/ctags/bug1111214.v
    tests/ctags/bug1111214.v.tags
    tests/ctags/bug1201689.c
    tests/ctags/bug1201689.c.tags
    tests/ctags/bug1447756.java
    tests/ctags/bug1447756.java.tags
    tests/ctags/bug1458930.c
    tests/ctags/bug1458930.c.tags
    tests/ctags/bug1466117.c
    tests/ctags/bug1466117.c.tags
    tests/ctags/bug1491666.c
    tests/ctags/bug1491666.c.tags
    tests/ctags/bug1515910.cs
    tests/ctags/bug1515910.cs.tags
    tests/ctags/bug1548443.cpp
    tests/ctags/bug1548443.cpp.tags
    tests/ctags/bug1563476.cpp
    tests/ctags/bug1563476.cpp.tags
    tests/ctags/bug1570779.sql
    tests/ctags/bug1570779.sql.tags
    tests/ctags/bug1575055.cpp
    tests/ctags/bug1575055.cpp.tags
    tests/ctags/bug1585745.cpp
    tests/ctags/bug1585745.cpp.tags
    tests/ctags/bug1611054.cs
    tests/ctags/bug1611054.cs.tags
    tests/ctags/bug1691412.java
    tests/ctags/bug1691412.java.tags
    tests/ctags/bug1742588.rb
    tests/ctags/bug1742588.rb.tags
    tests/ctags/bug1743330.v
    tests/ctags/bug1743330.v.tags
    tests/ctags/bug1764143.h
    tests/ctags/bug1764143.h.tags
    tests/ctags/bug1764148.py
    tests/ctags/bug1764148.py.tags
    tests/ctags/bug1770479.cpp
    tests/ctags/bug1770479.cpp.tags
    tests/ctags/bug1773926.cpp
    tests/ctags/bug1773926.cpp.tags
    tests/ctags/bug1777344.java
    tests/ctags/bug1777344.java.tags
    tests/ctags/bug1799340.cpp
    tests/ctags/bug1799340.cpp.tags
    tests/ctags/bug1799343-1.cpp
    tests/ctags/bug1799343-1.cpp.tags
    tests/ctags/bug1799343-2.cpp
    tests/ctags/bug1799343-2.cpp.tags
    tests/ctags/bug1800065.cs
    tests/ctags/bug1800065.cs.tags
    tests/ctags/bug1809024.py
    tests/ctags/bug1809024.py.tags
    tests/ctags/bug1830343.cs
    tests/ctags/bug1830343.cs.tags
    tests/ctags/bug1830344.cs
    tests/ctags/bug1830344.cs.tags
    tests/ctags/bug1856363.py
    tests/ctags/bug1856363.py.tags
    tests/ctags/bug1906062.py
    tests/ctags/bug1906062.py.tags
    tests/ctags/bug1907083.cpp
    tests/ctags/bug1907083.cpp.tags
    tests/ctags/bug1924919.cpp
    tests/ctags/bug1924919.cpp.tags
    tests/ctags/bug1938565.sql
    tests/ctags/bug1938565.sql.tags
    tests/ctags/bug1944150.sql
    tests/ctags/bug1944150.sql.tags
    tests/ctags/bug1950327.js
    tests/ctags/bug1950327.js.tags
    tests/ctags/bug1988026.py
    tests/ctags/bug1988026.py.tags
    tests/ctags/bug1988027.py
    tests/ctags/bug1988027.py.tags
    tests/ctags/bug1988130.py
    tests/ctags/bug1988130.py.tags
    tests/ctags/bug2049723.java
    tests/ctags/bug2049723.java.tags
    tests/ctags/bug2075402.py
    tests/ctags/bug2075402.py.tags
    tests/ctags/bug2117073.java
    tests/ctags/bug2117073.java.tags
    tests/ctags/bug2374109.vhd
    tests/ctags/bug2374109.vhd.tags
    tests/ctags/bug2411878.cs
    tests/ctags/bug2411878.cs.tags
    tests/ctags/bug2747828.v
    tests/ctags/bug2747828.v.tags
    tests/ctags/bug2777310.js
    tests/ctags/bug2777310.js.tags
    tests/ctags/bug2781264.rb
    tests/ctags/bug2781264.rb.tags
    tests/ctags/bug2886870.tex
    tests/ctags/bug2886870.tex.tags
    tests/ctags/bug2888482.js
    tests/ctags/bug2888482.js.tags
    tests/ctags/bug3036476.js
    tests/ctags/bug3036476.js.tags
    tests/ctags/bug3168705.py
    tests/ctags/bug3168705.py.tags
    tests/ctags/bug3571233.js
    tests/ctags/bug3571233.js.tags
    tests/ctags/bug507864.c
    tests/ctags/bug507864.c.tags
    tests/ctags/bug538629.asm
    tests/ctags/bug538629.asm.tags
    tests/ctags/bug556645.c
    tests/ctags/bug556645.c.tags
    tests/ctags/bug556646.c
    tests/ctags/bug556646.c.tags
    tests/ctags/bug565813.f90
    tests/ctags/bug565813.f90.tags
    tests/ctags/bug612019.pas
    tests/ctags/bug612019.pas.tags
    tests/ctags/bug612621.pl
    tests/ctags/bug612621.pl.tags
    tests/ctags/bug620288.f
    tests/ctags/bug620288.f.tags
    tests/ctags/bug639639.h
    tests/ctags/bug639639.h.tags
    tests/ctags/bug639644.hpp
    tests/ctags/bug639644.hpp.tags
    tests/ctags/bug665086.cpp
    tests/ctags/bug665086.cpp.tags
    tests/ctags/bug670433.f90
    tests/ctags/bug670433.f90.tags
    tests/ctags/bug699171.py
    tests/ctags/bug699171.py.tags
    tests/ctags/bug722501.sql
    tests/ctags/bug722501.sql.tags
    tests/ctags/bug726712.f90
    tests/ctags/bug726712.f90.tags
    tests/ctags/bug726875.f90
    tests/ctags/bug726875.f90.tags
    tests/ctags/bug734933.f90
    tests/ctags/bug734933.f90.tags
    tests/ctags/bug762027.v
    tests/ctags/bug762027.v.tags
    tests/ctags/bug814263.java
    tests/ctags/bug814263.java.tags
    tests/ctags/bug823000.sql
    tests/ctags/bug823000.sql.tags
    tests/ctags/bug842077.pl
    tests/ctags/bug842077.pl.tags
    tests/ctags/bug849591.cpp
    tests/ctags/bug849591.cpp.tags
    tests/ctags/bug852368.cpp
    tests/ctags/bug852368.cpp.tags
    tests/ctags/bug858165.f90
    tests/ctags/bug858165.f90.tags
    tests/ctags/bug872494.cpp
    tests/ctags/bug872494.cpp.tags
    tests/ctags/bug877956.f90
    tests/ctags/bug877956.f90.tags
    tests/ctags/bug960316.v
    tests/ctags/bug960316.v.tags
    tests/ctags/bug961001.v
    tests/ctags/bug961001.v.tags
    tests/ctags/byte.f
    tests/ctags/byte.f.tags
    tests/ctags/char-selector.f90
    tests/ctags/char-selector.f90.tags
    tests/ctags/classes.php
    tests/ctags/classes.php.tags
    tests/ctags/common.f
    tests/ctags/common.f.tags
    tests/ctags/continuation.f90
    tests/ctags/continuation.f90.tags
    tests/ctags/countall.sql
    tests/ctags/countall.sql.tags
    tests/ctags/cpp_destructor.cpp
    tests/ctags/cpp_destructor.cpp.tags
    tests/ctags/cython_sample.pyx
    tests/ctags/cython_sample.pyx.tags
    tests/ctags/db-trig.sql
    tests/ctags/db-trig.sql.tags
    tests/ctags/debian_432872.f90
    tests/ctags/debian_432872.f90.tags
    tests/ctags/directives.c
    tests/ctags/directives.c.tags
    tests/ctags/dopbl2.f
    tests/ctags/dopbl2.f.tags
    tests/ctags/enum.c
    tests/ctags/enum.c.tags
    tests/ctags/enum.java
    tests/ctags/enum.java.tags
    tests/ctags/events.cs
    tests/ctags/events.cs.tags
    tests/ctags/extern_variable.h
    tests/ctags/extern_variable.h.tags
    tests/ctags/format.pl
    tests/ctags/format.pl.tags
    tests/ctags/func_typedef.h
    tests/ctags/func_typedef.h.tags
    tests/ctags/general.cs
    tests/ctags/general.cs.tags
    tests/ctags/hex2dec.sql
    tests/ctags/hex2dec.sql.tags
    tests/ctags/implied_program.f
    tests/ctags/implied_program.f.tags
    tests/ctags/indexer.cs
    tests/ctags/indexer.cs.tags
    tests/ctags/infinite_loop.java
    tests/ctags/infinite_loop.java.tags
    tests/ctags/ingres_procedures.sql
    tests/ctags/ingres_procedures.sql.tags
    tests/ctags/initialization.f90
    tests/ctags/initialization.f90.tags
    tests/ctags/interface_indexers.cs
    tests/ctags/interface_indexers.cs.tags
    tests/ctags/interface_properties.cs
    tests/ctags/interface_properties.cs.tags
    tests/ctags/internal.cs
    tests/ctags/internal.cs.tags
    tests/ctags/intro.tex
    tests/ctags/intro.tex.tags
    tests/ctags/intro_orig.tex
    tests/ctags/intro_orig.tex.tags
    tests/ctags/invalid_name.f90
    tests/ctags/invalid_name.f90.tags
    tests/ctags/java_enum.java
    tests/ctags/java_enum.java.tags
    tests/ctags/jsFunc_tutorial.js
    tests/ctags/jsFunc_tutorial.js.tags
    tests/ctags/keyword_abstract.cs
    tests/ctags/keyword_abstract.cs.tags
    tests/ctags/keyword_catch_try.cs
    tests/ctags/keyword_catch_try.cs.tags
    tests/ctags/keyword_class.cs
    tests/ctags/keyword_class.cs.tags
    tests/ctags/keyword_const.cs
    tests/ctags/keyword_const.cs.tags
    tests/ctags/keyword_delegate.cs
    tests/ctags/keyword_delegate.cs.tags
    tests/ctags/keyword_enum.cs
    tests/ctags/keyword_enum.cs.tags
    tests/ctags/keyword_event.cs
    tests/ctags/keyword_event.cs.tags
    tests/ctags/keyword_explicit.cs
    tests/ctags/keyword_explicit.cs.tags
    tests/ctags/keyword_extern.cs
    tests/ctags/keyword_extern.cs.tags
    tests/ctags/keyword_implicit.cs
    tests/ctags/keyword_implicit.cs.tags
    tests/ctags/keyword_interface.cs
    tests/ctags/keyword_interface.cs.tags
    tests/ctags/keyword_namespace.cs
    tests/ctags/keyword_namespace.cs.tags
    tests/ctags/keyword_out.cs
    tests/ctags/keyword_out.cs.tags
    tests/ctags/keyword_override.cs
    tests/ctags/keyword_override.cs.tags
    tests/ctags/keyword_params.cs
    tests/ctags/keyword_params.cs.tags
    tests/ctags/keyword_private.cs
    tests/ctags/keyword_private.cs.tags
    tests/ctags/keyword_protected.cs
    tests/ctags/keyword_protected.cs.tags
    tests/ctags/keyword_public.cs
    tests/ctags/keyword_public.cs.tags
    tests/ctags/keyword_sealed.cs
    tests/ctags/keyword_sealed.cs.tags
    tests/ctags/keyword_static.cs
    tests/ctags/keyword_static.cs.tags
    tests/ctags/keyword_struct.cs
    tests/ctags/keyword_struct.cs.tags
    tests/ctags/keyword_virtual.cs
    tests/ctags/keyword_virtual.cs.tags
    tests/ctags/keyword_volatile.cs
    tests/ctags/keyword_volatile.cs.tags
    tests/ctags/labels.sql
    tests/ctags/labels.sql.tags
    tests/ctags/lanus.for
    tests/ctags/lanus.for.tags
    tests/ctags/line_directives.c
    tests/ctags/line_directives.c.tags
    tests/ctags/local.c
    tests/ctags/local.c.tags
    tests/ctags/macros.c
    tests/ctags/macros.c.tags
    tests/ctags/masm.asm
    tests/ctags/masm.asm.tags
    tests/ctags/matlab_backtracking.m
    tests/ctags/matlab_backtracking.m.tags
    tests/ctags/matlab_test.m
    tests/ctags/matlab_test.m.tags
    tests/ctags/maze.erl
    tests/ctags/maze.erl.tags
    tests/ctags/misc_types.f
    tests/ctags/misc_types.f.tags
    tests/ctags/misc_types.f90
    tests/ctags/misc_types.f90.tags
    tests/ctags/mode.php
    tests/ctags/mode.php.tags
    tests/ctags/moniker.x68.asm
    tests/ctags/moniker.x68.asm.tags
    tests/ctags/namelist.f
    tests/ctags/namelist.f.tags
    tests/ctags/namespace.cpp
    tests/ctags/namespace.cpp.tags
    tests/ctags/namespaces.php
    tests/ctags/namespaces.php.tags
    tests/ctags/namespaces2.php
    tests/ctags/namespaces2.php.tags
    tests/ctags/no_terminator.js
    tests/ctags/no_terminator.js.tags
    tests/ctags/numlib.f90
    tests/ctags/numlib.f90.tags
    tests/ctags/objectivec_implementation.mm
    tests/ctags/objectivec_implementation.mm.tags
    tests/ctags/objectivec_interface.mm
    tests/ctags/objectivec_interface.mm.tags
    tests/ctags/objectivec_property.mm
    tests/ctags/objectivec_property.mm.tags
    tests/ctags/objectivec_protocol.mm
    tests/ctags/objectivec_protocol.mm.tags
    tests/ctags/property.cs
    tests/ctags/property.cs.tags
    tests/ctags/prototype.h
    tests/ctags/prototype.h.tags
    tests/ctags/pure_elem.f95
    tests/ctags/pure_elem.f95.tags
    tests/ctags/random.sql
    tests/ctags/random.sql.tags
    tests/ctags/readlob.sql
    tests/ctags/readlob.sql.tags
    tests/ctags/readlong.sql
    tests/ctags/readlong.sql.tags
    tests/ctags/recursive.f95
    tests/ctags/recursive.f95.tags
    tests/ctags/refcurs.sql
    tests/ctags/refcurs.sql.tags
    tests/ctags/regexp.js
    tests/ctags/regexp.js.tags
    tests/ctags/runner.sh
    tests/ctags/secondary_fcn_name.js
    tests/ctags/secondary_fcn_name.js.tags
    tests/ctags/semicolon.f90
    tests/ctags/semicolon.f90.tags
    tests/ctags/signature.cpp
    tests/ctags/signature.cpp.tags
    tests/ctags/simple.bas
    tests/ctags/simple.bas.tags
    tests/ctags/simple.cbl
    tests/ctags/simple.cbl.tags
    tests/ctags/simple.html
    tests/ctags/simple.html.tags
    tests/ctags/simple.js
    tests/ctags/simple.js.tags
    tests/ctags/simple.ksh
    tests/ctags/simple.ksh.tags
    tests/ctags/simple.lua
    tests/ctags/simple.lua.tags
    tests/ctags/simple.mak
    tests/ctags/simple.mak.tags
    tests/ctags/simple.php
    tests/ctags/simple.php.tags
    tests/ctags/simple.pl
    tests/ctags/simple.pl.tags
    tests/ctags/simple.py
    tests/ctags/simple.py.tags
    tests/ctags/simple.rb
    tests/ctags/simple.rb.tags
    tests/ctags/simple.sh
    tests/ctags/simple.sh.tags
    tests/ctags/simple.tcl
    tests/ctags/simple.tcl.tags
    tests/ctags/spurious_label_tags.c
    tests/ctags/spurious_label_tags.c.tags
    tests/ctags/sql_single_quote.sql
    tests/ctags/sql_single_quote.sql.tags
    tests/ctags/state_machine.v
    tests/ctags/state_machine.v.tags
    tests/ctags/static_array.c
    tests/ctags/static_array.c.tags
    tests/ctags/stdcall.f
    tests/ctags/stdcall.f.tags
    tests/ctags/strings.rb
    tests/ctags/strings.rb.tags
    tests/ctags/structure.f
    tests/ctags/structure.f.tags
    tests/ctags/tabindent.py
    tests/ctags/tabindent.py.tags
    tests/ctags/test.py
    tests/ctags/test.py.tags
    tests/ctags/test.vhd
    tests/ctags/test.vhd.tags
    tests/ctags/traffic_signal.v
    tests/ctags/traffic_signal.v.tags
    tests/ctags/traits.php
    tests/ctags/traits.php.tags
    tests/ctags/union.f
    tests/ctags/union.f.tags
    tests/ctags/value.f
    tests/ctags/value.f.tags

Modified: .gitignore
6 files changed, 6 insertions(+), 0 deletions(-)
===================================================================
@@ -97,3 +97,9 @@ Makefile.in
 /doc/hacking.html
 /doc/*.pdf
 /doc/reference
+
+#-----------------------------------------------------------------------
+# /tests/
+#-----------------------------------------------------------------------
+/tests/**/*.trs
+/tests/**/*.log


Modified: Makefile.am
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in
 
-SUBDIRS = tagmanager scintilla src plugins icons po doc
+SUBDIRS = tagmanager scintilla src plugins icons po doc tests
 
 AUTOMAKE_OPTIONS =	1.7
 


Modified: configure.ac
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -139,6 +139,8 @@ AC_CONFIG_FILES([
 		geany.spec
 		geany.pc
 		doc/Doxyfile
+		tests/Makefile
+		tests/ctags/Makefile
 ])
 AC_OUTPUT
 


Modified: tests/Makefile.am
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+
+SUBDIRS = ctags


Modified: tests/ctags/1795612.js
29 files changed, 29 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,29 @@
+
+// This file should generate the following tags:
+//    classes
+//      Test.RPC
+//    methods
+//      Test.RPC.asyncMethod
+//      Test.RPC.asyncRequest
+//    properties
+//      Test.RPC.request_id
+Test.RPC =
+{
+	request_id: 0,
+
+	asyncRequest: function(
+		/* string */	uri,
+		/* object */	data,
+		/* object */	callback)
+	{
+	},
+
+	asyncMethod: function(
+		/* string */	uri,
+		/* string */	method,
+		/* array */		params,
+		/* object */	callback)
+	{
+	}
+};
+


Modified: tests/ctags/1795612.js.tags
5 files changed, 5 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,5 @@
+# format=tagmanager
+RPC�1�Test�0
+asyncMethod�128�Test.RPC�0
+asyncRequest�128�Test.RPC�0
+request_id�64�Test.RPC�0


Modified: tests/ctags/1850914.js
24 files changed, 24 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,24 @@
+// This file should generate the following tags:
+//
+//   classes
+//     objectLiteral
+//   methods
+//     objectLiteral.objLiteralMethod
+//   properties
+//     objectLiteral.objLiteralProperty
+
+
+/**
+* This is an object literal
+*/
+var objectLiteral = {
+/**
+* This is a literal object property
+*/
+objLiteralProperty : 1,
+/**
+* This is a literal object method
+*/
+objLiteralMethod : function(){}
+}
+


Modified: tests/ctags/1850914.js.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+objLiteralMethod�128�objectLiteral�0
+objLiteralProperty�64�objectLiteral�0
+objectLiteral�1�0


Modified: tests/ctags/1878155.js
19 files changed, 19 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,19 @@
+// Tags should include:
+//   functions
+//       my_function
+//   classes
+//       RE
+//   global variables
+//       foo
+//
+
+// This should handle the escaped quote
+var RE={/foo\"/: "bar"};
+
+// This should also handle the escaped quote
+// A tag should be created for the global variable "foo".
+var foo="foo \" some other stuff";
+
+// A tag should be created for this function "my_function".
+function my_function() {
+}


Modified: tests/ctags/1878155.js.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+RE�1�0
+foo�16384�0
+my_function�16�0


Modified: tests/ctags/1880687.js
191 files changed, 191 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,191 @@
+
+// All these examples contain various forms of IF statements
+// with missing semicolons.  Each of these are valid and must
+// be accommodated.
+//
+// After running ctags: ctags -f tags 1880687.js
+// The following tags should be generated:
+//     functions
+//       a
+//       b
+//       baz [f]
+//       c
+//       d
+//       e
+//       f
+//       g
+//       h
+//       i
+//       j
+//       k
+//       l
+//       m
+//       n
+//       o
+//       p
+//       q
+//       r
+//       s
+//       t
+//       u
+//       v
+//       w
+//       w_sub1 [w]
+//       w_sub2 [w]
+//     classes
+//       MyClass
+//     methods
+//       MyClass_sub1 [MyClass]
+//       MyClass_sub2 [MyClass]
+
+function a(flag){
+    if(flag)
+        test(1);
+    else
+        test(2)
+}
+
+function b(){
+    var b= 33;
+}
+
+function c(flag){
+    if(flag)
+        test(1);
+}
+
+function d(){
+    var b= 33;
+}
+
+function e(flag){
+    if(flag)
+        test(1)
+}
+
+function f(){
+    var b= 33;
+    if (foo)
+            bar();
+    else
+        test(2);
+    function baz() {
+    }
+}
+
+function g(flag){
+    if(flag) {
+        test(1)
+    }
+}
+
+function h(){
+    var b= 33;
+}
+
+function i(flag){
+    if(flag) {
+        test(1);
+    }
+}
+
+function j(){
+    var b= 33;
+}
+
+function k(flag){
+    if(flag) {
+        test(1);
+    }
+    else
+        flag = false;
+}
+
+function l(){
+    var b= 33;
+}
+
+function m(flag){
+    if(flag) {
+        test(1);
+    }
+    else {
+        flag = false;
+    }
+}
+
+function n(){
+    var b= 33;
+}
+
+if (1)
+    l();
+function o(){
+    var b= 33;
+}
+
+if (1){
+    l();
+}
+function p(){
+    var b= 33;
+}
+
+if (1){
+    l();
+} else
+    l();
+function q(){
+    var b= 33;
+}
+
+function r(flag){
+    if (flag) {
+        value = 33
+    }
+}
+
+function s(){
+    var b= 33;
+}
+
+function t(flag){
+    if (flag) {
+        b= new Object()
+    }
+}
+
+function u(flag){
+    if (flag) {
+        b= ({})
+    }
+}
+
+function v(flag){
+    if (flag) {
+        b= {}
+    }
+}
+
+function w(){
+    function w_sub1(x){
+        if (! x)
+            x = {foo:bar};
+        
+        var dummy1, dummy2;
+    }
+    function w_sub2(){
+    }
+}
+
+MyClass = {
+    MyClass_sub1: function(x){
+        if (! x)
+            x = { };
+        
+        var dummy3, dummy4;
+    },
+    MyClass_sub2: function(x){
+        var dummy5 = 42;
+    }
+};


Modified: tests/ctags/1880687.js.tags
30 files changed, 30 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,30 @@
+# format=tagmanager
+MyClass�1�0
+MyClass_sub1�128�MyClass�0
+MyClass_sub2�128�MyClass�0
+a�16�0
+b�16�0
+baz�16�f�0
+c�16�0
+d�16�0
+e�16�0
+f�16�0
+g�16�0
+h�16�0
+i�16�0
+j�16�0
+k�16�0
+l�16�0
+m�16�0
+n�16�0
+o�16�0
+p�16�0
+q�16�0
+r�16�0
+s�16�0
+t�16�0
+u�16�0
+v�16�0
+w�16�0
+w_sub1�16�w�0
+w_sub2�16�w�0


Modified: tests/ctags/2023624.js
15 files changed, 15 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,15 @@
+/*
+ * Both functions should be tagged.
+ * The embedded quote was fixed in issue:
+ * [ 1878155 ] Javascript escaped quotation mark brakes output
+ * [ 2023712 ] parseString for javascript broken on embedded quote
+ * The fix will be part of the 5.8 release.
+ */
+
+function f1() {
+    var str = 'This function will be listed.';
+}
+
+function f2() {
+    var str = 'This function won\'t.';
+}


Modified: tests/ctags/2023624.js.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+f1�16�0
+f2�16�0


Modified: tests/ctags/3184782.sql
41 files changed, 41 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,41 @@
+create or replace package body p_test is
+
+procedure do_this_stuff is begin
+if true then
+    for idx in z+1 .. myarr.last loop
+        if myarr.exists(idx) then
+            null;
+        end if;
+    end loop;
+
+elsif true then
+    for idx in myarr.first .. myarr.last loop
+        if myarr.exists(idx) then
+            null;
+        end if;
+    end loop;
+end if;
+end do_this_stuff;
+
+procedure process_this (
+    p_flag in boolean
+) is
+begin
+    null;
+end process_this;
+
+procedure myfn1 (
+    p_str1 in varchar2,
+    p_str2 in varchar2
+) is begin
+process_this(false);
+end myfn1;
+
+procedure myfn2 (
+    p_str1 in varchar2,
+    p_str2 in varchar2
+) is begin
+process_this(true);
+end myfn2;
+
+end p_test;


Modified: tests/ctags/3184782.sql.tags
7 files changed, 7 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,7 @@
+# format=tagmanager
+do_this_stuff�256�0
+elsif�16384�0
+myfn1�256�0
+myfn2�256�0
+p_test�512�0
+process_this�256�0


Modified: tests/ctags/3470609.js
48 files changed, 48 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,48 @@
+/*
+ * Test for properties values.  Everything is valid here and must be
+ * correctly parsed.
+ * 
+ * Output of ctags -f - 3470609.js should be:
+ * 
+ * Properties:
+ *    root.array
+ *    root.decimal
+ *    root.id
+ *    root.neg
+ *    root.parentheses
+ *    root.string
+ *    root.subObject.subProperty
+ * 
+ * Classes:
+ *    root
+ *    root.subObject
+ * 
+ * Methods:
+ *    root.method
+ *    root.subObject.subFunction
+ * 
+ * Functions:
+ *    f
+ */
+
+var root = {
+    'string' : 'hello world',
+    'method' : function() {
+        x = 42;
+    },
+    'id' : 1,
+    'neg' : -1,
+    'decimal' : 1.3,
+    'subObject' : {
+        'subProperty': 42,
+        'subFunction': function() {
+            y = 43;
+        }
+    },
+    'array' : [1, 2, 3],
+    'parentheses' : (2 * (2 + 3))
+}
+
+function f() {
+
+}


Modified: tests/ctags/3470609.js.tags
13 files changed, 13 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,13 @@
+# format=tagmanager
+array�64�root�0
+decimal�64�root�0
+f�16�0
+id�64�root�0
+method�128�root�0
+neg�64�root�0
+parentheses�64�root�0
+root�1�0
+string�64�root�0
+subFunction�128�root.subObject�0
+subObject�1�root�0
+subProperty�64�root.subObject�0


Modified: tests/ctags/3526726.tex
2984 files changed, 2984 insertions(+), 0 deletions(-)
===================================================================
No diff available, check online


Modified: tests/ctags/3526726.tex.tags
155 files changed, 155 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,155 @@
+# format=tagmanager
+ I think I found a bug in Snort. Now what?�65536�0
+ I've got RedHat and ....�65536�0
+A Rule with PCRE causes a failure to load snort.conf.  Why?�65536�0
+After I add new rules or comment out rules how do I make Snort reload?�65536�0
+Are rule keywords ORed or ANDed together?�65536�0
+Are there other output systems for Snort besides ``Barnyard''?\label{spoolers�65536�0
+BASE appears to be broken in Lynx �65536�0
+Background�64�0
+Can Snort be evaded by the use of polymorphic mutators on shellcode?�65536�0
+Can Snort trigger a rule by MAC addresses?�65536�0
+Can priorities be assigned to alerts using BASE?  �65536�0
+Configuring Snort�64�0
+Development�64�0
+Does Snort handle IP defragmentation?�65536�0
+Does Snort log the full packets when it generates alerts? �65536�0
+Does Snort perform TCP stream reassembly?�65536�0
+Does Snort perform stateful protocol analysis?�65536�0
+Does snort see packets filtered by IPTables/IPChains/IPF/PF?�65536�0
+Errors loading rules files�65536�0
+Getting Fancy�64�0
+Getting Started�64�0
+How can I deactivate a rule?�65536�0
+How can I define an address to be anything except some hosts?�65536�0
+How can I examine logged packets in more detail?�65536�0
+How can I protect web servers running on ports other than 80?�65536�0
+How can I run Snort on multiple interfaces simultaneously?�65536�0
+How can I specify a list of ports in a rule?�65536�0
+How can I test Snort without having an Ethernet card or a connection to other computers?  �65536�0
+How can I use Snort to log HTTP URLs or SMTP traffic?�65536�0
+How do I build this BASE thing?�65536�0
+How do I configure stream4?�65536�0
+How do I get Snort and ACID working?�65536�0
+How do I get Snort to e-mail me alerts?�65536�0
+How do I get Snort to log the packet payload as well as the header?�65536�0
+How do I ignore traffic coming from a particular host or hosts?�65536�0
+How do I log a specific type of traffic and send alerts to syslog?�65536�0
+How do I log to multiple databases or output plugins?�65536�0
+How do I process those Snort logs into reports?�65536�0
+How do I run Snort?�65536�0
+How do I set EXTERNAL\_NET?�65536�0
+How do I setup a receive-only ethernet cable?�65536�0
+How do I setup snort on a `stealth' interface? �65536�0
+How do I test Snort alerts and logging?�65536�0
+How do I turn off ``spp:possible EVASIVE RST detection'' alerts?�65536�0
+How do I understand this traffic and do IDS alert analysis?�65536�0
+How do I use a remote syslog machine?�65536�0
+How do you get Snort to ignore some traffic?�65536�0
+How do you pronounce the names of some of these guys who work on Snort?�65536�0
+How do you put Snort in debug mode? �65536�0
+How does rule ordering work?�65536�0
+How long can address lists, variables, or rules be?�65536�0
+How to start Snort as a win32 service? �65536�0
+I am getting `snort [pid] uses obsolete (PF\_INET, SOCK\_PACKET)' warnings. What's wrong?�65536�0
+I am getting too many ``IIS Unicode attack detected'' and/or ``CGI Null Byte attack detected'' false positives.  How can I turn this detection off? �65536�0
+I am still getting bombarded with spp\_portscan messages even though the IP that I am getting the portscan from is in my \$DNS\_SERVERs var �65536�0
+I am using Snort on Windows and receive an ``OpenPcap() error upon startup: ERROR: OpenPcap() device open: Error opening adapter'' message. What's wrong? �65536�0
+I have one network card and two aliases, how can I force Snort to ``listen'' on both addresses?�65536�0
+I hear people talking about ``Barnyard''. What's that?\label{barnyard�65536�0
+I just downloaded a new ruleset and now Snort fails, complaining about the�65536�0
+I try to start Snort and it gives an error like ``ERROR: Unable to open�65536�0
+I want to build a Snort box.  Will this $<$Insert list of hardware$>$ handle $<$this much$>$ traffic? �65536�0
+I'm getting large amounts of $<$some alerts type$>$. What should I do?  Where can I go to find out more about it? �65536�0
+I'm getting lots of *ICMP Ping Speedera*, is this bad?�65536�0
+I'm not seeing any interfaces listed under Win32.�65536�0
+I'm on a switched network, can I still use Snort?�65536�0
+IDSCenter�2048�0
+Is Fyodor Yarochkin the same Fyodor who wrote nmap?�65536�0
+Is Snort vulnerable to IDS noise generators like ``Stick'' and ``Snot''?�65536�0
+Is it possible to have Snort call an external program when an alert is raised?�65536�0
+Is it possible with snort to add a ipfilter/ipfw rule to a firewall? �65536�0
+Is there a private SID number range so my rules don't conflict?�65536�0
+It's not working on Win32, how can I tell if my problem is Snort or�65536�0
+Libpcap complains about permissions problems, what's going on?�65536�0
+Miscellaneous�64�0
+My /var/log/snort directory gets very large...�65536�0
+My BASE db connection times-out when performing long operations (e.g.�65536�0
+My IP address is assigned dynamically to my interface, can I use Snort with it?�65536�0
+My network spans multiple subnets.  How do I define HOME\_NET?�65536�0
+My snort crashes, how do I restart it?�65536�0
+On HPUX I get device lan0 open: recv\_ack: promisc\_phys: Invalid argument�65536�0
+Portscans are not being logged to my database �65536�0
+Problems�64�0
+Rules and Alerts�64�0
+SMB alerts aren't working, what's wrong? �65536�0
+Snort complains about the ``react'' keyword...�65536�0
+Snort fails to respond to a kill signal on Linux.  Why?�65536�0
+Snort is behind a firewall (ipf/pf/ipchains/ipfilter) and awfully quiet...�65536�0
+Snort is dying with a `can not create file' error and I have plenty of diskspace. What's wrong?�65536�0
+Snort is not logging to my database�65536�0
+Snort is not logging to syslog�65536�0
+Snort says BACKDOOR SIGNATURE... does my machine have a Trojan? �65536�0
+Snort says ``Garbage Packet with Null Pointer discarded!'' Huh?�65536�0
+Snort says ``Ran Out Of Space.'' Huh?�65536�0
+Snort says ``Rule IP addr (``1.1.1.1'') didn't x-late, WTF?''�65536�0
+Trying to install snort it says: ``bad interpreter: No such file or�65536�0
+What about `SMB Name Wildcard' alerts? �65536�0
+What about ``CGI Null Byte attacks?'' �65536�0
+What about all these false alarms? �65536�0
+What are CIDR netmasks? �65536�0
+What are HOME\_NET and EXTERNAL\_NET?�65536�0
+What are all these ICMP files in subdirectories under /var/log/snort? �65536�0
+What are all these ``ICMP destination unreachable'' alerts? �65536�0
+What are some resources that I can use to understand more about source�65536�0
+What are these IDS codes in the alert names? �65536�0
+What do the numbers (ie: [116:56:1]) in front of a Snort alert mean?�65536�0
+What is the best way to use Snort to block attack traffic?�65536�0
+What is the difference between ``Alerting'' and ``Logging''?�65536�0
+What is the use of the ``-r'' switch to read tcpdump files?  �65536�0
+What the heck is a SYNFIN scan?�65536�0
+What the heck is a SYNFIN scan? �65536�0
+What the heck is a ``Stealth scan''?�65536�0
+What version of Winpcap do I need?\label{winpcap�65536�0
+What's this about a Snort drinking game?�65536�0
+Where are my log files located?  What are they named?�65536�0
+Where can I get more reading and courses about IDS?\label{courses�65536�0
+Where do I find binary packages for BlueHat BSD-Linux-RT?�65536�0
+Where do I get more help on Snort?�65536�0
+Where do I get the latest version of Winpcap?�65536�0
+Where do I get the latest version of libpcap? �65536�0
+Where do the distance and within keywords work from to modify content�65536�0
+Where does one obtain new/modifed rules? How do you merge them in?�65536�0
+Where's a good place to physically put a Snort sensor?�65536�0
+Which takes precedence, commandline or rule file ?�65536�0
+Why am I seeing so many ``SMTP RCPT TO overflow'' alerts ?�65536�0
+Why are my unified alert times off by +/- N hours?�65536�0
+Why are there no subdirectories under /var/log/snort for IP addresses?�65536�0
+Why can't snort see one of the 10Mbps or 100Mbps traffic on my autoswitch hub?�65536�0
+Why do certain alerts seem to have `unknown' IPs in BASE?  �65536�0
+Why do many Snort rules have the flags P (TCP PuSH) and A (TCP ACK) set? �65536�0
+Why does Snort complain about /var/log/snort?�65536�0
+Why does building Snort complain about missing references? �65536�0
+Why does building snort fail with errors about yylex and lex\_init? �65536�0
+Why does chrooted Snort die when I send it a SIGHUP? \label{chroot�65536�0
+Why does snort report ``Packet loss statistics are unavailable under Linux?''�65536�0
+Why does the `error deleting alert' message occur when attempting to delete an alert with BASE?  �65536�0
+Why does the portscan plugin log ``stealth'' packets even though the host is in the portscan-ignorehosts list? �65536�0
+Why does the program generate alerts on packets that have pass rules?  �65536�0
+barnyard�2048�0
+center�1�0
+chroot�2048�0
+courses�2048�0
+document�1�0
+enumerate�1�0
+itemize�1�0
+latexonly�1�0
+myquote�16�0
+myref�16�0
+quote�1�0
+spoolers�2048�0
+stealth�2048�0
+stream4�2048�0
+tabular�1�0
+verbatim�1�0
+winpcap�2048�0


Modified: tests/ctags/68hc11.asm
23 files changed, 23 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,23 @@
+INTERRUPTS:
+;
+PORTD       EQU  $1008
+;
+SP          EQU  $20
+;
+TRAPP       FCB CR,LF
+            FCB CR,LF
+            FCC  '    ******** ILLEGAL OPCODE TRAP !!! ********'
+            FCB CR,LF
+            FCB 0
+PROMPT      FCB CR,LF
+            FCC  '               68Mon V1.2 (C) 1992 Keith Vasilakes'
+            FCB CR,LF
+            FCB 0
+COLD        LDS  #STACK
+            LDAA #$20
+
+; http://www.mekatronix.com/downloads/docs/as11_man.pdf
+sym1 EQU 1
+sym2: EQU 2
+sym3:
+sym4: bne sym3


Modified: tests/ctags/68hc11.asm.tags
11 files changed, 11 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,11 @@
+# format=tagmanager
+COLD�256�0
+INTERRUPTS�256�0
+PORTD�65536�0
+PROMPT�256�0
+SP�65536�0
+TRAPP�256�0
+sym1�65536�0
+sym2�65536�0
+sym3�256�0
+sym4�256�0


Modified: tests/ctags/Makefile.am
235 files changed, 235 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,235 @@
+
+dist_check_SCRIPTS = runner.sh
+
+NULL =
+test_sources = \
+	1795612.js						\
+	1850914.js						\
+	1878155.js						\
+	1880687.js						\
+	2023624.js						\
+	3184782.sql						\
+	3470609.js						\
+	3526726.tex						\
+	68hc11.asm						\
+	angle_bracket.cpp				\
+	array_ref_and_out.cs			\
+	array_spec.f90					\
+	array-spec.f90					\
+	attributes.cs					\
+	auto.f							\
+	bit_field.c						\
+	bracematch.js					\
+	bug1020715.cpp					\
+	bug1020715.c					\
+	bug1086609.c					\
+	bug1093123.cpp					\
+	bug1111214-j-chan.v				\
+	bug1111214.v					\
+	bug1201689.c					\
+	bug1447756.java					\
+	bug1458930.c					\
+	bug1466117.c					\
+	bug1491666.c					\
+	bug1515910.cs					\
+	bug1548443.cpp					\
+	bug1563476.cpp					\
+	bug1570779.sql					\
+	bug1575055.cpp					\
+	bug1585745.cpp					\
+	bug1611054.cs					\
+	bug1691412.java					\
+	bug1742588.rb					\
+	bug1743330.v					\
+	bug1764143.h					\
+	bug1764148.py					\
+	bug1770479.cpp					\
+	bug1773926.cpp					\
+	bug1777344.java					\
+	bug1799340.cpp					\
+	bug1799343-1.cpp				\
+	bug1799343-2.cpp				\
+	bug1800065.cs					\
+	bug1809024.py					\
+	bug1830343.cs					\
+	bug1830344.cs					\
+	bug1856363.py					\
+	bug1906062.py					\
+	bug1907083.cpp					\
+	bug1924919.cpp					\
+	bug1938565.sql					\
+	bug1944150.sql					\
+	bug1950327.js					\
+	bug1988026.py					\
+	bug1988027.py					\
+	bug1988130.py					\
+	bug2049723.java					\
+	bug2075402.py					\
+	bug2117073.java					\
+	bug2374109.vhd					\
+	bug2411878.cs					\
+	bug2747828.v					\
+	bug2777310.js					\
+	bug2781264.rb					\
+	bug2886870.tex					\
+	bug2888482.js					\
+	bug3036476.js					\
+	bug3168705.py					\
+	bug3571233.js					\
+	bug507864.c						\
+	bug538629.asm					\
+	bug556645.c						\
+	bug556646.c						\
+	bug565813.f90					\
+	bug612019.pas					\
+	bug612621.pl					\
+	bug620288.f						\
+	bug639639.h						\
+	bug639644.hpp					\
+	bug665086.cpp					\
+	bug670433.f90					\
+	bug699171.py					\
+	bug722501.sql					\
+	bug726712.f90					\
+	bug726875.f90					\
+	bug734933.f90					\
+	bug762027.v						\
+	bug814263.java					\
+	bug823000.sql					\
+	bug842077.pl					\
+	bug849591.cpp					\
+	bug852368.cpp					\
+	bug858165.f90					\
+	bug872494.cpp					\
+	bug877956.f90					\
+	bug960316.v						\
+	bug961001.v						\
+	byte.f							\
+	char-selector.f90				\
+	classes.php						\
+	common.f						\
+	continuation.f90				\
+	countall.sql					\
+	cpp_destructor.cpp				\
+	cython_sample.pyx				\
+	db-trig.sql						\
+	debian_432872.f90				\
+	directives.c					\
+	dopbl2.f						\
+	enum.c							\
+	enum.java						\
+	events.cs						\
+	extern_variable.h				\
+	format.pl						\
+	func_typedef.h					\
+	general.cs						\
+	hex2dec.sql						\
+	implied_program.f				\
+	indexer.cs						\
+	infinite_loop.java				\
+	ingres_procedures.sql			\
+	initialization.f90				\
+	interface_indexers.cs			\
+	interface_properties.cs			\
+	internal.cs						\
+	intro_orig.tex					\
+	intro.tex						\
+	invalid_name.f90				\
+	java_enum.java					\
+	jsFunc_tutorial.js				\
+	keyword_abstract.cs				\
+	keyword_catch_try.cs			\
+	keyword_class.cs				\
+	keyword_const.cs				\
+	keyword_delegate.cs				\
+	keyword_enum.cs					\
+	keyword_event.cs				\
+	keyword_explicit.cs				\
+	keyword_extern.cs				\
+	keyword_implicit.cs				\
+	keyword_interface.cs			\
+	keyword_namespace.cs			\
+	keyword_out.cs					\
+	keyword_override.cs				\
+	keyword_params.cs				\
+	keyword_private.cs				\
+	keyword_protected.cs			\
+	keyword_public.cs				\
+	keyword_sealed.cs				\
+	keyword_static.cs				\
+	keyword_struct.cs				\
+	keyword_virtual.cs				\
+	keyword_volatile.cs				\
+	labels.sql						\
+	lanus.for						\
+	line_directives.c				\
+	local.c							\
+	macros.c						\
+	masm.asm						\
+	matlab_backtracking.m			\
+	matlab_test.m					\
+	maze.erl						\
+	misc_types.f90					\
+	misc_types.f					\
+	mode.php						\
+	moniker.x68.asm					\
+	namelist.f						\
+	namespace.cpp					\
+	namespaces2.php					\
+	namespaces.php					\
+	no_terminator.js				\
+	numlib.f90						\
+	objectivec_implementation.mm	\
+	objectivec_interface.mm			\
+	objectivec_property.mm			\
+	objectivec_protocol.mm			\
+	Package.pm						\
+	property.cs						\
+	prototype.h						\
+	pure_elem.f95					\
+	random.sql						\
+	readlob.sql						\
+	readlong.sql					\
+	recursive.f95					\
+	refcurs.sql						\
+	regexp.js						\
+	secondary_fcn_name.js			\
+	semicolon.f90					\
+	signature.cpp					\
+	simple.bas						\
+	simple.cbl						\
+	simple.html						\
+	simple.js						\
+	simple.ksh						\
+	simple.lua						\
+	simple.mak						\
+	simple.php						\
+	simple.pl						\
+	simple.py						\
+	simple.rb						\
+	simple.sh						\
+	simple.tcl						\
+	spurious_label_tags.c			\
+	sql_single_quote.sql			\
+	state_machine.v					\
+	static_array.c					\
+	stdcall.f						\
+	strings.rb						\
+	structure.f						\
+	tabindent.py					\
+	test.py							\
+	test.vhd						\
+	traffic_signal.v				\
+	traits.php						\
+	union.f							\
+	value.f							\
+	$(NULL)
+test_results = $(test_sources:=.tags)
+
+TEST_EXTENSIONS = .tags
+TAGS_LOG_COMPILER = $(srcdir)/runner.sh
+
+TESTS = $(test_results)
+EXTRA_DIST = $(test_sources) $(test_results)
+
+runner.sh: ../../src/geany$(EXEEXT)


Modified: tests/ctags/Package.pm
57 files changed, 57 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,57 @@
+# This file is intended to test package keyword support along with
+# multi-line subroutine definitions, like this:
+#   sub
+# 
+#   somefunction
+#   {...
+
+package Test::One;
+
+package Test::One::Two;
+
+package Test;
+
+use strict;
+use warnings;
+
+sub
+
+ init {
+}
+
+use constant
+CONST => 1;
+
+=head2 quo
+
+This is 'quo' subroutine
+
+=cut
+
+sub quo;
+
+quo;
+
+Test::quo;
+
+sub quo {
+    goto END;
+    die;
+END:
+END2  :
+    print "END!\n";
+    return;
+}
+
+sub xuz :lvalue;
+
+sub xtz (&@;$) :lvalue;
+  
+sub
+# This should create a tag
+dude
+{
+    1;
+}
+
+1;


Modified: tests/ctags/Package.pm.tags
10 files changed, 10 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,10 @@
+# format=tagmanager
+CONST�2�0
+END�65536�0
+END2�65536�0
+Test�512�0
+Test::One�512�0
+Test::One::Two�512�0
+dude�16�0
+init�16�0
+quo�16�0


Modified: tests/ctags/angle_bracket.cpp
16 files changed, 16 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,16 @@
+static void foo (int nelem)
+{
+    int rsize = 2;
+    while (nelem < 0) {
+	rsize <<= 1;
+    }
+}
+
+static void bar (int value)
+{
+    return value < 0 ? value : 3;
+}
+
+static bar2 (void)
+{
+}


Modified: tests/ctags/angle_bracket.cpp.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+bar�16�(int value)�0�void
+bar2�16�(void)�0
+foo�16�(int nelem)�0�void


Modified: tests/ctags/array-spec.f90
10 files changed, 10 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,10 @@
+      MODULE inm_df
+      IMPLICIT none
+      SAVE
+      TYPE df_type
+      REAL(8), POINTER :: &
+       df_mb_time(:),              df_wb_time(:)
+      REAL(4), POINTER :: &
+       df_mb_data(:,:),  df_wb_data(:,:)
+      END TYPE
+      END MODULE inm_df


Modified: tests/ctags/array-spec.f90.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+df_type�4096�inm_df�0
+inm_df�256�0


Modified: tests/ctags/array_ref_and_out.cs
33 files changed, 33 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,33 @@
+// Programmer's Reference: Passing Array Using ref and out
+public static void MyMethod(out int[] arr) 
+{
+   arr = new int[10];   // definite assignment of arr
+}
+
+public static void MyMethod(ref int[] arr) 
+{
+   arr = new int[10];   // arr initialized to a different array
+}
+
+using System; 
+class TestOut 
+{
+   static public void FillArray(out int[] myArray) 
+   {
+      // Initialize the array:
+      myArray = new int[5] {1, 2, 3, 4, 5};
+   }
+
+   static public void Main() 
+   {
+      int[] myArray; // Initialization is not required
+
+      // Pass the array to the callee using out:
+      FillArray(out myArray);
+
+      // Display the array elements:
+      Console.WriteLine("Array elements are:");
+      for (int i=0; i < myArray.Length; i++)
+         Console.WriteLine(myArray[i]);
+   }
+}


Modified: tests/ctags/array_ref_and_out.cs.tags
6 files changed, 6 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,6 @@
+# format=tagmanager
+FillArray�128�(out int[] myArray)�TestOut�0�public void
+Main�128�()�TestOut�0�public void
+MyMethod�128�(out int[] arr)�0�public void
+MyMethod�128�(ref int[] arr)�0�public void
+TestOut�1�0


Modified: tests/ctags/array_spec.f90
15 files changed, 15 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,15 @@
+! Bug reported by Jim Chen on 31 Dec 2002
+module Global_Variables
+implicit none
+
+! Example of array-spec in entity-decl
+real*8, save ::         &
+H (NDIM, NDIM) = 0.D0,  &
+H0(NDIM, NDIM),         &
+H1(NDIM, NDIM) = 0.D0,  &
+H2(NDIM, NDIM) = 0.D0,  &
+H3(NDIM, NDIM) = 0.D0,  &
+H4(NDIM, NDIM) = 0.D0,  &
+H5(NDIM, NDIM) = 0.D0
+
+end module Global_Variables


Modified: tests/ctags/array_spec.f90.tags
9 files changed, 9 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,9 @@
+# format=tagmanager
+Global_Variables�256�0
+H�16384�Global_Variables�0
+H0�16384�Global_Variables�0
+H1�16384�Global_Variables�0
+H2�16384�Global_Variables�0
+H3�16384�Global_Variables�0
+H4�16384�Global_Variables�0
+H5�16384�Global_Variables�0


Modified: tests/ctags/attributes.cs
22 files changed, 22 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,22 @@
+[DllImport] public class MyDllimportClass {}
+
+[DllImport("user32.dll", SetLastError=false, ExactSpelling=false)]
+[DllImport("user32.dll", ExactSpelling=false, SetLastError=false)]
+[DllImport("user32.dll")]
+
+[Conditional("DEBUG"), Conditional("TEST1")] void TraceMethod() {}
+
+using System;
+[AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct)]
+public class Author : Attribute
+{
+   public Author(string name) { this.name = name; version = 1.0; }
+   public double version;
+   string name;
+}
+
+[AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct,
+   AllowMultiple=true)] // multiuse attribute
+public class Author : Attribute
+{
+}


Modified: tests/ctags/attributes.cs.tags
7 files changed, 7 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,7 @@
+# format=tagmanager
+Author�1�0
+Author�128�(string name)�Author�0
+MyDllimportClass�1�0
+TraceMethod�128�()�0�[][][][]void
+name�8�Author�0
+version�8�Author�0�double


Modified: tests/ctags/auto.f
7 files changed, 7 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,7 @@
+! Provided by Brian Helsinki, 7 March 2003
+	program AUTO_TEST
+	AUTOMATIC A, B, C 
+	AUTOMATIC REAL P, D, Q 
+	!IMPLICIT AUTOMATIC REAL (X-Z) 
+	END
+


Modified: tests/ctags/auto.f.tags
5 files changed, 5 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,5 @@
+# format=tagmanager
+AUTO_TEST�512�0
+D�16384�AUTO_TEST�0
+P�16384�AUTO_TEST�0
+Q�16384�AUTO_TEST�0


Modified: tests/ctags/bit_field.c
35 files changed, 35 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,35 @@
+struct bit_fields {
+    unsigned int a: 1;
+    unsigned int b: 1;
+    unsigned int c: 2;
+};
+
+struct {
+    unsigned sign  : 1;
+    unsigned exp   : _FP_EXPBITS_D;
+    unsigned frac1 : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0) - _FP_W_TYPE_SIZE;
+    unsigned frac0 : _FP_W_TYPE_SIZE;
+};
+
+struct shortname_info {
+	unsigned char lower:1,
+		      upper:1,
+		      valid:1;
+};
+
+// Problem reported by Michael Brown on 23 October 2001.
+typedef struct
+{
+    BYTE 	public: 1;
+    BYTE 	bad2: 1;
+    BYTE 	group: 1;
+    BYTE 	personal: 1;
+} bitfield_flags;
+
+typedef struct
+{
+    BYTE	this;
+    BYTE	public;
+    BYTE	private;
+    BYTE	that;
+} mystruct;


Modified: tests/ctags/bit_field.c.tags
26 files changed, 26 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,26 @@
+# format=tagmanager
+a�64�bit_fields�0�int
+anon_struct_0�2048�0
+anon_struct_1�2048�0
+anon_struct_2�2048�0
+b�64�bit_fields�0�int
+bad2�64�anon_struct_1�0�BYTE
+bit_fields�2048�0
+bitfield_flags�4096�0�anon_struct_1
+c�64�bit_fields�0�int
+exp�64�anon_struct_0�0
+frac0�64�anon_struct_0�0
+frac1�64�anon_struct_0�0
+group�64�anon_struct_1�0�BYTE
+lower�64�shortname_info�0�char
+mystruct�4096�0�anon_struct_2
+personal�64�anon_struct_1�0�BYTE
+private�64�anon_struct_2�0�BYTE
+public�64�anon_struct_1�0�BYTE
+public�64�anon_struct_2�0�BYTE
+shortname_info�2048�0
+sign�64�anon_struct_0�0
+that�64�anon_struct_2�0�BYTE
+this�64�anon_struct_2�0�BYTE
+upper�64�shortname_info�0�char
+valid�64�shortname_info�0�char


Modified: tests/ctags/bracematch.js
45 files changed, 45 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,45 @@
+/*
+ * "Braces aren't properly matched in findCmdTerm()"
+ * 
+ * ctags -f - bracematch.js should output:
+ * 
+ * functions:
+ *    Container
+ *    Container.x
+ *    Container.y
+ * 
+ * classes:
+ *    MyClass
+ * 
+ * methods:
+ *    MyClass.insert
+ *    MyClass.wrap
+ */
+
+
+function Container() {
+  function x() {
+    if (!x)
+      x = { };
+  }
+
+  function y() {
+    
+  }
+}
+
+// from prototype.js, a lot simplified to only show the issue
+MyClass = {
+  insert: function(element, insertions) {
+    element = $(element);
+
+    if (condition)
+      insertions = {bottom:insertions};
+
+    var content, insert, tagName, childNodes;
+  },
+
+  wrap: function(element, wrapper, attributes) {
+    // ...
+  }
+}


Modified: tests/ctags/bracematch.js.tags
7 files changed, 7 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,7 @@
+# format=tagmanager
+Container�16�0
+MyClass�1�0
+insert�128�MyClass�0
+wrap�128�MyClass�0
+x�16�Container�0
+y�16�Container�0


Modified: tests/ctags/bug1020715.c
52 files changed, 52 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,52 @@
+/*
+Bugs item #1020715, was opened at 2004-09-01 22:42
+Message generated for change (Tracker Item Submitted) made by Item Submitter
+You can respond by visiting: 
+https://sourceforge.net/tracker/?func=detail&atid=106556&aid=1020715&group_id=6556
+
+Category: None
+Group: None
+Status: Open
+Resolution: None
+Priority: 5
+Submitted By: Arne Georg Gleditsch (argggh)
+Assigned to: Nobody/Anonymous (nobody)
+Summary: Strange parsing of C code
+
+Initial Comment:
+Running ctags 5.5.4 like this
+
+/usr/local/bin/ctags --fields=+S --excmd=number -f - --c-types=+l /usr/src/source/2.6.6/drivers/scsi/aha152x.c | grep ^done
+
+returns a bogus entry for the function "done" on line
+1745 with a wacky signature.  The file aha152x.c is
+from Linux 2.6.6, but is appended for convenience.
+*/
+/*
+Date: 2007-08-14 01:00
+Sender: elliotth
+Hide
+
+i don't really understand why the other lines in the test case were
+necessary to exercise the bug, but changing parseParens to call
+processAngleBracket instead of just skipToMatch("<>") fixes this bug. i've
+committed that since it causes no regressions.
+
+
+Date: 2007-08-14 00:34
+Sender: elliotth
+Hide
+
+i've come up with a minimal test case, and committed it. it's pretty
+weird:
+*/
+void f() {
+	done(a<<1);
+	a->a;
+	if (a->a) {
+	}
+}
+/*
+change just about anything and the bizarre "done" tag goes away. you can't
+even switch from '->' to '.', which seems odd.
+*/


Modified: tests/ctags/bug1020715.c.tags
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+# format=tagmanager
+f�16�()�0�void


Modified: tests/ctags/bug1020715.cpp
6 files changed, 6 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,6 @@
+void f() {
+ done(a<<1);
+ a->a;
+ if (a->a) {
+ }
+}


Modified: tests/ctags/bug1020715.cpp.tags
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+# format=tagmanager
+f�16�()�0�void


Modified: tests/ctags/bug1086609.c
41 files changed, 41 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,41 @@
+/*
+Bugs item #1086609, was opened at 2004-12-16 13:07
+Message generated for change (Tracker Item Submitted) made by Item Submitter
+You can respond by visiting: 
+https://sourceforge.net/tracker/?func=detail&atid=106556&aid=1086609&group_id=6556
+
+Category: None
+Group: None
+Status: Open
+Resolution: None
+Priority: 5
+Submitted By: Mikhail Kruk (meshko)
+Assigned to: Nobody/Anonymous (nobody)
+Summary: ctags getting confused by #if 0
+
+Initial Comment:
+Here is a sample C program which confuses ctags.  I
+think every line in it is significant. Dropping any of
+the #ifdefs or the #define makes the problem go away:
+*/
+#if 0
+#define __PROC__
+int func1(
+#if 0
+#endif
+)
+{
+}
+#endif
+
+int func2(int a)
+{
+}
+/*
+Somehow the opening brace from line 3 doesn't get
+ignored and the closing brace does get ignored and
+ctags drops out on "int func2(int a)" line with "failed
+to find match for '(' at line 11" error.
+Granted, having #if 0 in the middle of args list is
+weird, but perfeclty legal.
+*/


Modified: tests/ctags/bug1086609.c.tags
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+# format=tagmanager
+func2�16�(int a)�0�int


Modified: tests/ctags/bug1093123.cpp
7 files changed, 7 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,7 @@
+#include <iostream>
+
+int main() {
+using namespace std;
+cout << 0 << endl;
+int m;
+}


Modified: tests/ctags/bug1093123.cpp.tags
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+# format=tagmanager
+main�16�()�0�int


Modified: tests/ctags/bug1111214-j-chan.v
8 files changed, 8 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,8 @@
+/*
+*
+**/
+module top(outsig, insig);
+output outsig;
+input insig;
+assign outsig = insig;
+endmodule


Modified: tests/ctags/bug1111214-j-chan.v.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+insig�16384�0
+outsig�16384�0
+top�1�0


Modified: tests/ctags/bug1111214.v
17 files changed, 17 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,17 @@
+// File example.v
+//
+// Below is an example of a comment that is mis-parsed by exuberant ctags.
+// It uses the multi-line comment format, i.e. /* ... */ except that in
+// this case, the character sequence immediately preceeding the closing
+// delimiter is an asterisk. (Any even number of asterisks would have the
+// same problem.
+// The line immediately afterwards is used to demonstrate the problem.
+// the module name 'wahoo' isn't recognised, because the parser mistakenly
+// thinks we are still in a multi-line comment.
+/*
+ * I am a multi-line comment
+ * I happen to end in a strange
+ * (but legal) way: **/
+module wahoo ()
+begin
+end


Modified: tests/ctags/bug1111214.v.tags
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+# format=tagmanager
+wahoo�1�0


Modified: tests/ctags/bug1201689.c
35 files changed, 35 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,35 @@
+/*
+Bugs item #1201689, was opened at 2005-05-13 18:18
+Message generated for change (Tracker Item Submitted) made by Item Submitter
+You can respond by visiting: 
+https://sourceforge.net/tracker/?func=detail&atid=106556&aid=1201689&group_id=6556
+
+Category: None
+Group: None
+Status: Open
+Resolution: None
+Priority: 5
+Submitted By: Scott Ferguson (shf301)
+Assigned to: Nobody/Anonymous (nobody)
+Summary: Variable Length Argument Lists in K&R Style not Parsed
+
+Initial Comment:
+A function with a K&R style parameter list that has a 
+variable length argument list will not be added to the tags file.
+
+For example create a file, say test.c with the following code
+*/
+void test(a, ...)
+char a;
+{
+    return;
+}
+/*
+Run ctags test.c.  the tags file with only contain the line:
+   a	test.c	/^char a;$/;"	v
+
+This occurs with ctags 5.3 and 5.5.4. 
+
+Variable length argument lists work fine if the function is in 
+ANSI style, void test(char a, ...) will work fine.
+*/


Modified: tests/ctags/bug1201689.c.tags
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+# format=tagmanager
+a�16384�0�char


Modified: tests/ctags/bug1447756.java
9 files changed, 9 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,9 @@
+// Java 1.5 generic interfaces appear to be tagged on the
+// parameterized type name instead of the interface name,
+// e.g.,
+
+	      public interface Foo<T> {
+		      public T bar();
+	      }
+
+// is tagged on 'T' instead of 'Foo'.


Modified: tests/ctags/bug1447756.java.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+Foo�32�0
+bar�128�()�Foo�0�public T


Modified: tests/ctags/bug1458930.c
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+// test with --c-kinds=+p
+char x();
+wchar_t y();


Modified: tests/ctags/bug1458930.c.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+x�1024�()�0�char
+y�1024�()�0�wchar_t


Modified: tests/ctags/bug1466117.c
10 files changed, 10 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,10 @@
+typedef struct mystruct {
+	int a;
+	int b;
+};
+
+typedef struct {
+	int a;
+	int b;
+} mystruct;
+


Modified: tests/ctags/bug1466117.c.tags
8 files changed, 8 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,8 @@
+# format=tagmanager
+a�64�anon_struct_0�0�int
+a�64�mystruct�0�int
+anon_struct_0�2048�0
+b�64�anon_struct_0�0�int
+b�64�mystruct�0�int
+mystruct�2048�0
+mystruct�4096�0�anon_struct_0


Modified: tests/ctags/bug1491666.c
13 files changed, 13 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,13 @@
+typedef struct {
+	int
+		x;
+
+	float
+		y;
+} my_struct;
+
+void main (void) {
+	my_struct var1;
+	my_struct
+		var2;
+}


Modified: tests/ctags/bug1491666.c.tags
6 files changed, 6 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,6 @@
+# format=tagmanager
+anon_struct_0�2048�0
+main�16�(void)�0�void
+my_struct�4096�0�anon_struct_0
+x�64�anon_struct_0�0�int
+y�64�anon_struct_0�0�float


Modified: tests/ctags/bug1515910.cs
15 files changed, 15 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,15 @@
+// Simple generic classes.
+public class MyGenericClass1<T> { }
+
+// Derived enums.
+enum Enum1 : byte {
+	Value1, Values
+}
+
+// Verbatim strings.
+public class C {
+    private string str1 = @"abc\";
+    private int int1 = 123;
+    private string str2 = @"abc\";
+    private string str3 = "abc";
+}


Modified: tests/ctags/bug1515910.cs.tags
10 files changed, 10 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,10 @@
+# format=tagmanager
+C�1�0
+MyGenericClass1�1�0
+Value1�4�byte�0
+Values�4�byte�0
+byte�2�0
+int1�8�C�0�int
+str1�8�C�0
+str2�8�C�0
+str3�8�C�0


Modified: tests/ctags/bug1548443.cpp
9 files changed, 9 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,9 @@
+union TestUnion
+{
+int _number;
+};
+
+struct TestStruct
+{
+int _number;
+};


Modified: tests/ctags/bug1548443.cpp.tags
5 files changed, 5 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,5 @@
+# format=tagmanager
+TestStruct�2048�0
+TestUnion�8192�0
+_number�64�TestStruct�0�int
+_number�64�TestUnion�0�int


Modified: tests/ctags/bug1563476.cpp
16 files changed, 16 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,16 @@
+int g() {
+}
+
+template< typename Accessor, typename bEnable = void >
+struct IntroduceBitDef;
+
+template< typename Accessor >
+struct IntroduceBitDef< Accessor, typename
+boost::enable_if_c< CoreConfig::VERSION <= 3 >::type >
+{
+
+// class body here
+// anything after this point is not parsed by ctags
+ int f() { }
+
+};


Modified: tests/ctags/bug1563476.cpp.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+IntroduceBitDef�32768�0
+g�16�()�0�int


Modified: tests/ctags/bug1570779.sql
14 files changed, 14 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,14 @@
+-- This should find the "address" column when --sql-types=r is used
+-- ctags -f - --format=2 --excmd=pattern --fields=nks  --sort=no  --sql-types=cdfFlLPprstTvieURDVnxy bug1570779.sql
+-- employees       bug1570779.sql  /^CREATE TABLE employees ($/;"  t       line:2
+-- employees.id    bug1570779.sql  /^    id integer NOT NULL,$/;"  F       line:3
+-- employees.name  bug1570779.sql  /^    name varchar(20),$/;"     F       line:4
+-- employees.address       bug1570779.sql  /^    address varchar(50),$/;"  F   line:5
+
+CREATE TABLE employees (
+    id integer NOT NULL,
+    name varchar(20),
+    address varchar(50),
+    primary key (id)
+);
+


Modified: tests/ctags/bug1570779.sql.tags
5 files changed, 5 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,5 @@
+# format=tagmanager
+employees�1�0
+employees.address�8�0
+employees.id�8�0
+employees.name�8�0


Modified: tests/ctags/bug1575055.cpp
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+namespace TheNamespace {
+	class MyClass { };
+	int variable;
+}


Modified: tests/ctags/bug1575055.cpp.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+MyClass�1�TheNamespace�0
+TheNamespace�256�0
+variable�64�TheNamespace�0�int


Modified: tests/ctags/bug1585745.cpp
8 files changed, 8 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,8 @@
+// Despite the weird whitespace, all these destructors should be recognized and tagged.
+Class1::~Class1() { }
+Class2::~ Class2() { }
+Class3:: ~Class3() { }
+Class4:: ~ Class4() { }
+class Class5 {
+    public: ~ Class5() { }
+};


Modified: tests/ctags/bug1585745.cpp.tags
7 files changed, 7 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,7 @@
+# format=tagmanager
+Class5�1�0
+~Class1�16�()�Class1�0�Class1
+~Class2�16�Class2�0�Class2
+~Class3�16�()�Class3�0�Class3
+~Class4�16�Class4�0�Class4
+~Class5�16�Class5�0


Modified: tests/ctags/bug1611054.cs
8 files changed, 8 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,8 @@
+class C {
+	public String a() {
+		return @"c:\";
+	}
+	// this tag is missing in ctags 5.6
+	public void b() {
+	}
+}


Modified: tests/ctags/bug1611054.cs.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+C�1�0
+a�128�()�C�0�public String
+b�128�()�C�0�public void


Modified: tests/ctags/bug1691412.java
17 files changed, 17 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,17 @@
+public class C {
+ @NonNull
+ @CheckReturnValue(explanation = "When this function returns, the caller can get the Cipher name selected by the user in the Dialog.")
+ public static DefaultCipherDialog newInstance() {
+  DefaultCipherDialog instance = new DefaultCipherDialog();
+  instance.init();
+  return instance;
+ }
+
+ @Override
+ public String toString() { return "hello"; }
+}
+
+ at Target(ElementType.METHOD)
+ at Retention(RetentionPolicy.SOURCE)
+public @interface CustomAnnotation {
+}


Modified: tests/ctags/bug1691412.java.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+C�1�0
+newInstance�128�()�C�0�@NonNull @CheckReturnValue public DefaultCipherDialog
+toString�128�()�C�0�@Override public String


Modified: tests/ctags/bug1742588.rb
7 files changed, 7 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,7 @@
+class A
+ def a()
+  super(" do ")
+ end
+ def b()
+ end
+end


Modified: tests/ctags/bug1742588.rb.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+A�1�0
+a�128�A�0
+b�128�A�0


Modified: tests/ctags/bug1743330.v
9 files changed, 9 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,9 @@
+// somewhat contrived, but i came across a real-life file that caused this
+// crash.
+value=
+hello/
+world;
+
+// dummy stuff to generate a tag
+module dummy;
+endmodule


Modified: tests/ctags/bug1743330.v.tags
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+# format=tagmanager
+dummy�1�0


Modified: tests/ctags/bug1764143.h
27 files changed, 27 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,27 @@
+static inline void omap1_arch_reset(char mode)
+{
+	/*
+	 * Workaround for 5912/1611b bug mentioned in sprz209d.pdf p. 28
+	 * "Global Software Reset Affects Traffic Controller Frequency".
+	 */
+	if (cpu_is_omap5912()) {
+		omap_writew(omap_readw(DPLL_CTL) & ~(1 << 4),
+				 DPLL_CTL);
+		omap_writew(0x8, ARM_RSTCT1);
+	}
+
+	if (machine_is_voiceblue())
+		voiceblue_reset();
+	else
+		omap_writew(1, ARM_RSTCT1);
+}
+
+static inline void arch_reset(char mode)
+{
+	if (!cpu_is_omap24xx())
+		omap1_arch_reset(mode);
+	else
+		omap_prcm_arch_reset(mode);
+}
+
+#endif


Modified: tests/ctags/bug1764143.h.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+arch_reset�16�(char mode)�0�inline void
+omap1_arch_reset�16�(char mode)�0�inline void


Modified: tests/ctags/bug1764148.py
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+#!/usr/bin/python
+def PyFunc(msg): print msg


Modified: tests/ctags/bug1764148.py.tags
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+# format=tagmanager
+PyFunc�16�(msg)�0


Modified: tests/ctags/bug1770479.cpp
17 files changed, 17 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,17 @@
+#include <sstream>
+
+int main (int argc, char **argv)
+{
+  std::ostringstream a;
+  a << "a";
+
+  std::ostringstream b;
+  b << "b";
+
+  return 0;
+}
+
+int foo (int i)
+{
+  return i;
+}


Modified: tests/ctags/bug1770479.cpp.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+foo�16�(int i)�0�int
+main�16�(int argc, char **argv)�0�int


Modified: tests/ctags/bug1773926.cpp
12 files changed, 12 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+#define ERROR_HAPPENED
 50 



+#define OK 2
+#define NEXT_DEFINE 3
+
+int main(int argc, char* argv[])
+{
+    printf("Hello world\n");
+    return 0;
+}
+


Modified: tests/ctags/bug1773926.cpp.tags
5 files changed, 5 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,5 @@
+# format=tagmanager
+ERROR_HAPPENED�65536�0
+NEXT_DEFINE�65536�0
+OK�65536�0
+main�16�(int argc, char* argv[])�0�int


Modified: tests/ctags/bug1777344.java
7 files changed, 7 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,7 @@
+import java.util.*;
+public class bug1777344<K, V> {
+    private HashMap<K,V> map1;
+    private HashMap<K,V> map2 = new HashMap<K,V>(), map3;
+    private boolean b = (1 < 3), c;
+    private boolean d = 1 < 3, e;
+}


Modified: tests/ctags/bug1777344.java.tags
10 files changed, 10 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,10 @@
+# format=tagmanager
+V�128�()�bug1777344�0�
+b�8�bug1777344�0�boolean
+bug1777344�1�0
+c�8�bug1777344�0�boolean
+d�8�bug1777344�0�boolean
+e�8�bug1777344�0�boolean
+map1�8�bug1777344�0�HashMap
+map2�8�bug1777344�0�HashMap
+map3�8�bug1777344�0�HashMap


Modified: tests/ctags/bug1799340.cpp
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+std::string & f1() {}
+const std::string & f2() {}
+std::string const & f3() {}


Modified: tests/ctags/bug1799340.cpp.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+f1�16�()�0�std
+f2�16�()�0�const std
+f3�16�()�std�0�std const


Modified: tests/ctags/bug1799343-1.cpp
10 files changed, 10 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,10 @@
+#include <iostream>
+struct C { int x; };
+struct D : ::C {
+ D() { x = 123; }
+ ~D() { std::cout << x << std::endl; }
+};
+int main(void) {
+ D d;
+ return 0;
+}


Modified: tests/ctags/bug1799343-1.cpp.tags
6 files changed, 6 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,6 @@
+# format=tagmanager
+C�2048�0
+D�16�()�0
+main�16�(void)�0�int
+x�64�C�0�int
+~D�16�()�0


Modified: tests/ctags/bug1799343-2.cpp
27 files changed, 27 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,27 @@
+class P {
+  protected:
+   int x;
+};
+
+namespace A {
+   class P {
+  protected:
+     int x;
+   };
+   class Q {
+     int y;
+   };
+
+   namespace C {
+     class R: ::P, A::Q {
+       int z;
+       int f (int v) { return v + x; }
+     };
+   }
+}
+
+namespace B {
+   class S : A::C::R {
+     int t;
+   };
+}


Modified: tests/ctags/bug1799343-2.cpp.tags
14 files changed, 14 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,14 @@
+# format=tagmanager
+A�256�0
+B�256�0
+C�256�0
+P�1�0
+P�1�A�0
+Q�1�A�0
+S�1�B�0
+f�16�(int v)�A::C::<anonymous>�0�int
+t�64�B::S�0�int
+x�64�A::P�0�int
+x�64�P�0�int
+y�64�A::Q�0�int
+z�64�A::C::<anonymous>�0�int


Modified: tests/ctags/bug1800065.cs
5 files changed, 5 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,5 @@
+using Gtk;
+public class C {
+ private Gtk.Window window;
+ private string title;
+}


Modified: tests/ctags/bug1800065.cs.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+C�1�0
+title�8�C�0
+window�8�C�0�Gtk


Modified: tests/ctags/bug1809024.py
10 files changed, 10 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,10 @@
+   def detach (self):
+
+        model = self.view.props.model
+        sort_id, sort_order = tree_sortable_get_sort_column_id (model)
+        if sort_id >= 0:
+            self.app.state.sort_column = self.find_item_class (id = sort_id)
+            if sort_order == gtk.SORT_ASCENDING:
+                self.app.state.sort_order = "ascending"
+            else:
+                self.app.state.sort_order = "descending"


Modified: tests/ctags/bug1809024.py.tags
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+# format=tagmanager
+detach�16�(self)�0


Modified: tests/ctags/bug1830343.cs
8 files changed, 8 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,8 @@
+class ForEachTest {
+	static void Main(string[] args) {
+		int[] fibarray = new int[] { 0, 1, 2, 3, 5, 8, 13 };
+		foreach (int i in fibarray) {
+			System.Console.WriteLine(i);
+		}
+	}
+}


Modified: tests/ctags/bug1830343.cs.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+ForEachTest�1�0
+Main�128�(string[] args)�ForEachTest�0�void


Modified: tests/ctags/bug1830344.cs
10 files changed, 10 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,10 @@
+public class C {
+	public void m() {
+		bool flagCheck = true;
+		if (flagCheck == true) {
+			Console.WriteLine("true");
+		} else {
+			Console.WriteLine("false");
+		}
+	}
+}


Modified: tests/ctags/bug1830344.cs.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+C�1�0
+m�128�()�C�0�public void


Modified: tests/ctags/bug1856363.py
9 files changed, 9 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,9 @@
+#!/usr/bin/python
+
+def main():
+	# A broken ctags will see a function "initely_not_a_function" here.
+	definitely_not_a_function = 0
+	return
+
+if __name__ == 'main':
+	main()


Modified: tests/ctags/bug1856363.py.tags
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+# format=tagmanager
+main�16�()�0


Modified: tests/ctags/bug1906062.py
7 files changed, 7 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,7 @@
+include_file = '''
+class (b)
+'''
+
+# dummy class to generate a tag
+class dummy:
+    pass


Modified: tests/ctags/bug1906062.py.tags
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+# format=tagmanager
+dummy�1�0


Modified: tests/ctags/bug1907083.cpp
5 files changed, 5 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,5 @@
+// All of these should have "class:C", but m2-m4 have "class C::C" with ctags 5.7.
+C::T * C::m1() {}
+C::T * const C::m2() {}
+C::T const * C::m3() {}
+C::T const * const C::m4() {}


Modified: tests/ctags/bug1907083.cpp.tags
5 files changed, 5 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,5 @@
+# format=tagmanager
+m1�16�()�C::C�0�C *C
+m2�16�()�C::C�0�C *const C
+m3�16�()�C::C�0�C const *C
+m4�16�()�C::C�0�C const *const C


Modified: tests/ctags/bug1924919.cpp
5 files changed, 5 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,5 @@
+#include <string>
+namespace mud {
+	std::string MajorVersion;
+	std::string MinorVersion;
+};


Modified: tests/ctags/bug1924919.cpp.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+MajorVersion�64�mud�0�std
+MinorVersion�64�mud�0�std
+mud�256�0


Modified: tests/ctags/bug1938565.sql
18 files changed, 18 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,18 @@
+CREATE OR REPLACE PACKAGE demo_pkg
+IS
+
+FUNCTION func1_proto( value in varchar ) RETURNS number;
+FUNCTION func2_proto( value in varchar ) RETURN number;
+
+FUNCTION func1( value in varchar ) RETURNS number IS
+BEGIN
+	RETURN 1;
+END func1;
+
+FUNCTION func2( value in varchar ) RETURN number IS
+BEGIN
+	RETURN 2;
+END func2;
+
+END demo_pkg;
+/


Modified: tests/ctags/bug1938565.sql.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+demo_pkg�512�0
+func1�16�0
+func2�16�0


Modified: tests/ctags/bug1944150.sql
7 files changed, 7 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,7 @@
+CREATE TRIGGER [tr_d_cash_trade_comment] ON dbo.cash_trade_comment
+FOR DELETE
+AS
+BEGIN
+END
+GO
+


Modified: tests/ctags/bug1944150.sql.tags
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+# format=tagmanager
+cash_trade_comment.�65536�0


Modified: tests/ctags/bug1950327.js
41 files changed, 41 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,41 @@
+// I've attached the simple test case as bugDemo.js. Trigger the bug by
+// uncommenting line 8. Attached are tags files with line 21 commented/not
+// commented. This is the current tip, svn r663.
+//
+// When the container.dirtyTab line is uncommented you see these methods:
+//     TabChrome.createTabTile
+//     TabChrome.init
+//
+// When the container.dirtyTab line is commented you see these methods:
+//     TabChrome.createTabTile
+//     TabChrome.destroyTabTile
+//     TabChrome.init
+//
+TabChrome.prototype = {
+	init: function() 
+	{
+		this.browserMap = new Object();
+	},
+	createTabTile: function(browser) 
+	{
+		//container.dirtyTab = {'url': false, 'title':false, 'snapshot':false, '*': false}		
+		return container;
+	},
+	destroyTabTile: function(tile)
+	{
+	}
+}
+Different.prototype = {
+	init: function() 
+	{
+		this.browserMap = new Object();
+	},
+	createTabTile: function(browser) 
+	{
+		container.dirtyTab = {'url': false, 'title':false, 'snapshot':false, '*': false}		
+		return container;
+	},
+	destroyTabTile: function(tile)
+	{
+	}
+}


Modified: tests/ctags/bug1950327.js.tags
14 files changed, 14 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,14 @@
+# format=tagmanager
+*�64�container.dirtyTab�0
+Different�1�0
+TabChrome�1�0
+createTabTile�128�Different�0
+createTabTile�128�TabChrome�0
+destroyTabTile�128�Different�0
+destroyTabTile�128�TabChrome�0
+dirtyTab�1�container�0
+init�128�Different�0
+init�128�TabChrome�0
+snapshot�64�container.dirtyTab�0
+title�64�container.dirtyTab�0
+url�64�container.dirtyTab�0


Modified: tests/ctags/bug1988026.py
9 files changed, 9 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,9 @@
+
+class testClass:
+    my_var = 0
+    def main():
+        pass
+
+if __name__ == '__main__': testClass.main()
+	def im_a_function():
+	    pass


Modified: tests/ctags/bug1988026.py.tags
5 files changed, 5 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,5 @@
+# format=tagmanager
+im_a_function�16�()�0
+main�128�()�testClass�0
+my_var�16384�testClass�0
+testClass�1�0


Modified: tests/ctags/bug1988027.py
14 files changed, 14 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,14 @@
+#!/usr/bin/env python
+# encoding: utf-8
+
+
+"""
+bla
+#"""
+
+"""make a tarball with all the sources in it; return (distdirname, tarballname)"""
+
+
+# dummy class to generate a tag
+class dummy:
+    pass


Modified: tests/ctags/bug1988027.py.tags
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+# format=tagmanager
+dummy�1�0


Modified: tests/ctags/bug1988130.py
7 files changed, 7 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,7 @@
+def testFunc():
+    print 'The following works now' + '"""'
+
+def main():
+    print 'nothing'
+    print 'This is another quoted triple string: """.'
+    return 0


Modified: tests/ctags/bug1988130.py.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+main�16�()�0
+testFunc�16�()�0


Modified: tests/ctags/bug2049723.java
6 files changed, 6 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,6 @@
+import javax.annotation.Nonnull;
+
+public class bug2049723 {
+  public void m1(String arg) {}
+  public void m2(@Nonnull String arg) {}
+}


Modified: tests/ctags/bug2049723.java.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+bug2049723�1�0
+m1�128�(String arg)�bug2049723�0�public void
+m2�128�(@Nonnull String arg)�bug2049723�0�public void


Modified: tests/ctags/bug2075402.py
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+y = 1 # """
+x = 2


Modified: tests/ctags/bug2075402.py.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+x�16384�0
+y�16384�0


Modified: tests/ctags/bug2117073.java
12 files changed, 12 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,12 @@
+public class AAssignmentExp {
+  public AAssignmentExp(@SuppressWarnings("hiding") TAssign _token_,
+                        @SuppressWarnings("hiding") PLvalue _lvalue_,
+                        @SuppressWarnings("hiding") PExp _exp_) {
+    setToken(_token_);
+    setLvalue(_lvalue_);
+    setExp(_exp_);
+  }
+
+  @Override void removeChild(@SuppressWarnings("unused") Node child) {
+  }
+}


Modified: tests/ctags/bug2117073.java.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+AAssignmentExp�1�0
+AAssignmentExp�128�(@SuppressWarnings() TAssign _token_, @SuppressWarnings() PLvalue _lvalue_, @SuppressWarnings() PExp _exp_)�AAssignmentExp�0
+removeChild�128�(@SuppressWarnings() Node child)�AAssignmentExp�0�@Override void


Modified: tests/ctags/bug2374109.vhd
9 files changed, 9 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,9 @@
+function Pow2( N, Exp : integer )  return mylib.myinteger is
+  Variable Result   : integer := 1;
+
+begin
+  for i in 1 to Exp loop
+    Result := Result * N;
+  end loop;
+  return( Result );
+end Pow;


Modified: tests/ctags/bug2374109.vhd.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+Pow2�16�0
+Result�16384�0


Modified: tests/ctags/bug2411878.cs
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+public class C {
+  private System.String m_name;
+}


Modified: tests/ctags/bug2411878.cs.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+C�1�0
+m_name�8�C�0�System


Modified: tests/ctags/bug2747828.v
1 files changed, 1 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1 @@
+parameter ramaddr_0 = {1'b1,9'd0};


Modified: tests/ctags/bug2747828.v.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+9�16384�0
+ramaddr_0�16384�0


Modified: tests/ctags/bug2777310.js
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+var x = 1;
+var z = {};
+var y = [];
+


Modified: tests/ctags/bug2777310.js.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+x�16384�0
+y�16384�0
+z�16384�0


Modified: tests/ctags/bug2781264.rb
12 files changed, 12 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,12 @@
+
+class Foo
+  def foo
+    File.open("foo", "r") do |infile|
+      infile.readline
+    end
+  end
+
+  def bar
+    print "bar"
+  end
+end


Modified: tests/ctags/bug2781264.rb.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+Foo�1�0
+bar�128�Foo�0
+foo�128�Foo�0


Modified: tests/ctags/bug2886870.tex
351 files changed, 351 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,351 @@
+Sample LaTeX file
+The name of this file is intro.tex.
+
+\documentclass[12pt]{article}
+
+\usepackage{amsmath}    % need for subequations
+\usepackage{graphicx}   % need for figures
+\usepackage{verbatim}   % useful for program listings
+\usepackage{color}      % use if color is used in text
+\usepackage{subfigure}  % use for side-by-side figures
+\usepackage{hyperref}   % use for hypertext links, including those to external documents and URLs
+
+% don't need the following. simply use defaults
+\setlength{\baselineskip}{16.0pt}    % 16 pt usual spacing between lines
+
+\setlength{\parskip}{3pt plus 2pt}
+\setlength{\parindent}{20pt}
+\setlength{\oddsidemargin}{0.5cm}
+\setlength{\evensidemargin}{0.5cm}
+\setlength{\marginparsep}{0.75cm}
+\setlength{\marginparwidth}{2.5cm}
+\setlength{\marginparpush}{1.0cm}
+\setlength{\textwidth}{150mm}
+
+\begin{comment}
+\pagestyle{empty} % use if page numbers not wanted
+\end{comment}
+
+% above is the preamble
+
+\begin{document}
+
+\begin{center}
+{\large Introduction to \LaTeX} \\ % \\ = new line
+\copyright 2006 by Harvey Gould \\
+December 5, 2006
+\end{center}
+
+\section{Introduction}
+\TeX\ looks more difficult than it is. It is
+almost as easy as $\pi$. See how easy it is to make special
+symbols such as $\alpha$,
+$\beta$, $\gamma$,
+$\delta$, $\sin x$, $\hbar$, $\lambda$, $\ldots$ We also can make
+subscripts
+$A_{x}$, $A_{xy}$ and superscripts, $e^x$, $e^{x^2}$, and
+$e^{a^b}$. We will use \LaTeX, which is based on \TeX\ and has
+many higher-level commands (macros) for formatting, making
+tables, etc. More information can be found in Ref.~\cite{latex}.
+
+We just made a new paragraph. Extra lines and spaces make no
+difference. Note that all formulas are enclosed by
+\$ and occur in \textit{math mode}.
+
+The default font is Computer Modern. It includes \textit{italics},
+\textbf{boldface},
+\textsl{slanted}, and \texttt{monospaced} fonts.
+
+\section{Equations}
+Let us see how easy it is to write equations.
+\begin{equation}
+\Delta =\sum_{i=1}^N w_i (x_i - \bar{x})^2 .
+\end{equation}
+It is a good idea to number equations, but we can have a
+equation without a number by writing
+\begin{equation}
+P(x) = \frac{x - a}{b - a} , \nonumber
+\end{equation}
+and
+\begin{equation}
+g = \frac{1}{2} \sqrt{2\pi} . \nonumber
+\end{equation}
+
+We can give an equation a label so that we can refer to it later.
+\begin{equation}
+\label{eq:ising}
+E = -J \sum_{i=1}^N s_i s_{i+1} ,
+\end{equation}
+Equation~\eqref{eq:ising} expresses the energy of a configuration
+of spins in the Ising model.\footnote{It is necessary to process (typeset) a
+file twice to get the counters correct.}
+
+We can define our own macros to save typing. For example, suppose
+that we introduce the macros:
+\begin{verbatim}
+ \newcommand{\lb}{{\langle}}
+ \newcommand{\rb}{{\rangle}}
+\end{verbatim}
+\newcommand{\lb}{{\langle}}
+\newcommand{\rb}{{\rangle}}
+Then we can write the average value of $x$ as
+\begin{verbatim}
+\begin{equation}
+\lb x \rb = 3
+\end{equation}
+\end{verbatim}
+The result is
+\begin{equation}
+\lb x \rb = 3 .
+\end{equation}
+
+Examples of more complicated equations:
+\begin{equation}
+I = \! \int_{-\infty}^\infty f(x)\,dx \label{eq:fine}.
+\end{equation}
+We can do some fine tuning by adding small amounts of horizontal
+spacing:
+\begin{verbatim}
+ \, small space       \! negative space
+\end{verbatim}
+as is done in Eq.~\eqref{eq:fine}.
+
+We also can align several equations:
+\begin{align}
+a & = b \\
+c &= d ,
+\end{align}
+or number them as subequations:
+\begin{subequations}
+\begin{align}
+a & = b \\
+c &= d .
+\end{align}
+\end{subequations}
+
+We can also have different cases:
+\begin{equation}
+\label{eq:mdiv}
+m(T) =
+\begin{cases}
+0 & \text{$T > T_c$} \\
+\bigl(1 - [\sinh 2 \beta J]^{-4} \bigr)^{\! 1/8} & \text{$T < T_c$}
+\end{cases}
+\end{equation}
+write matrices
+\begin{align}
+\textbf{T} &=
+\begin{pmatrix}
+T_{++} \hfill & T_{+-} \\
+T_{-+} & T_{--} \hfill 
+\end{pmatrix} , \nonumber \\
+& =
+\begin{pmatrix}
+e^{\beta (J + B)} \hfill & e^{-\beta J} \hfill \\
+e^{-\beta J} \hfill & e^{\beta (J - B)} \hfill
+\end{pmatrix}.
+\end{align}
+and 
+\newcommand{\rv}{\textbf{r}}
+\begin{equation}
+\sum_i \vec A \cdot \vec B = -P\!\int\! \rv \cdot
+\hat{\mathbf{n}}\, dA = P\!\int \! {\vec \nabla} \cdot \rv\, dV.
+\end{equation}
+
+\section{Tables}
+Tables are a little more difficult. TeX
+automatically calculates the width of the columns.
+
+\begin{table}[h]
+\begin{center}
+\begin{tabular}{|l|l|r|l|}
+\hline
+lattice & $d$ & $q$ & $T_{\rm mf}/T_c$ \\
+\hline
+square & 2 & 4 & 1.763 \\
+\hline
+triangular & 2 & 6 & 1.648 \\
+\hline
+diamond & 3 & 4 & 1.479 \\
+\hline
+simple cubic & 3 & 6 & 1.330 \\
+\hline
+bcc & 3 & 8 & 1.260 \\
+\hline
+fcc & 3 & 12 & 1.225 \\
+\hline
+\end{tabular}
+\caption{\label{tab:5/tc}Comparison of the mean-field predictions
+for the critical temperature of the Ising model with exact results
+and the best known estimates for different spatial dimensions $d$
+and lattice symmetries.}
+\end{center}
+\end{table}
+
+\section{Lists}
+
+Some example of formatted lists include the
+following:
+
+\begin{enumerate}
+
+\item bread
+
+\item cheese
+
+\end{enumerate}
+
+\begin{itemize}
+
+\item Tom
+
+\item Dick
+
+\end{itemize}
+
+\section{Figures}
+
+We can make figures bigger or smaller by scaling them. Figure~\ref{fig:lj}
+has been scaled by 60\%.
+
+\begin{figure}[h]
+\begin{center}
+\includegraphics{figures/sine}
+\caption{\label{fig:typical}Show me a sine.}
+\end{center}
+\end{figure}
+
+\begin{figure}[h]
+\begin{center}
+\scalebox{0.6}{\includegraphics{figures/lj}}
+\caption{\label{fig:lj}Plot of the
+Lennard-Jones potential
+$u(r)$. The potential is characterized by a length
+$\sigma$ and an energy
+$\epsilon$.}
+\end{center}
+\end{figure}
+
+\section{Literal text}
+It is desirable to print program code exactly as it is typed in a
+monospaced font. Use \verb \begin{verbatim} and
+\verb \end{verbatim} as in the following example:
+\begin{verbatim}
+double y0 = 10; // example of declaration and assignment statement
+double v0 = 0;  // initial velocity
+double t = 0;   // time
+double dt = 0.01; // time step
+double y = y0;
+\end{verbatim}
+The command \verb \verbatiminput{programs/Square.java}\ allows
+you to list the file \texttt{Square.java} in the directory
+programs.
+
+\section{Special Symbols}
+
+\subsection{Common Greek letters}
+
+These commands may be used only in math mode. Only the most common
+letters are included here.
+
+$\alpha, 
+\beta, \gamma, \Gamma,
+\delta,\Delta,
+\epsilon, \zeta, \eta, \theta, \Theta, \kappa,
+\lambda, \Lambda, \mu, \nu,
+\xi, \Xi,
+\pi, \Pi,
+\rho,
+\sigma, 
+\tau,
+\phi, \Phi,
+\chi,
+\psi, \Psi,
+\omega, \Omega$
+\subsubsection{Test for ctags}
+\subsection{Special symbols}
+
+The derivative is defined as
+\begin{equation}
+\frac{dy}{dx} = \lim_{\Delta x \to 0} \frac{\Delta y}
+{\Delta x}
+\end{equation}
+\begin{equation}
+f(x) \to y \quad \mbox{as} \quad x \to
+x_{0}
+\end{equation}
+\begin{equation}
+f(x) \mathop {\longrightarrow}
+\limits_{x \to x_0} y
+\end{equation}
+
+\noindent Order of magnitude:
+\begin{equation}
+\log_{10}f \simeq n
+\end{equation}
+\begin{equation}
+f(x)\sim 10^{n}
+\end{equation}
+Approximate equality:
+\begin{equation}
+f(x)\simeq g(x)
+\end{equation}
+\LaTeX\ is simple if we keep everything in proportion:
+\begin{equation}
+f(x) \propto x^3 .
+\end{equation}
+
+Finally we can skip some space by using commands such as
+\begin{verbatim}
+\bigskip    \medskip    \smallskip    \vspace{1pc}
+\end{verbatim}
+The space can be negative.
+
+\section{\color{red}Use of Color}
+
+{\color{blue}{We can change colors for emphasis}},
+{\color{green}{but}} {\color{cyan}{who is going pay for the ink?}}
+
+\section{\label{morefig}Subfigures}
+
+As soon as many students start becoming comfortable using \LaTeX, they want
+to use some of its advanced features. So we now show how to place two
+figures side by side.
+
+\begin{figure}[h!]
+\begin{center}
+\subfigure[Real and imaginary.]{
+\includegraphics[scale=0.5]{figures/reim}}
+\subfigure[Amplitude and phase.]{
+\includegraphics[scale=0.5]{figures/phase}}
+\caption{\label{fig:qm/complexfunctions} Two representations of complex
+wave functions.}
+\end{center}
+\end{figure}
+
+We first have to include the necessary package,
+\verb+\usepackage{subfigure}+, which has to go in the preamble (before
+\verb+\begin{document}+). It sometimes can be difficult to place a figure in
+the desired place.
+
+Your LaTeX document can be easily modified to make a poster or a screen
+presentation similar to (and better than) PowerPoint. Conversion to HTML is
+straightforward. Comments on this tutorial are appreciated.
+
+\begin{thebibliography}{5}
+
+\bibitem{latex}Helmut Kopka and Patrick W. Daly, \textsl{A Guide to
+\LaTeX: Document Preparation for Beginners and Advanced Users},
+fourth edition, Addison-Wesley (2004).
+
+\bibitem{website}Some useful links are
+given at \url{}.
+
+\end{thebibliography}
+
+{\small \noindent Updated 5 December 2006.}
+\end{document}
+
+Updated 6 February 2006. 
+
+


Modified: tests/ctags/bug2886870.tex.tags
39 files changed, 39 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,39 @@
+# format=tagmanager
+Common Greek letters�65536�0
+Equations�64�0
+Figures�64�0
+Introduction�64�0
+Lists�64�0
+Literal text�64�0
+Special Symbols�64�0
+Special symbols�65536�0
+Tables�64�0
+Test for ctags�16384�0
+\color{red�64�0
+\label{morefig�64�0
+align�1�0
+cases�1�0
+center�1�0
+comment�1�0
+document�1�0
+enumerate�1�0
+eq:fine�2048�0
+eq:ising�2048�0
+eq:mdiv�2048�0
+equation�1�0
+fig:lj�2048�0
+fig:qm/complexfunctions�2048�0
+fig:typical�2048�0
+figure�1�0
+itemize�1�0
+lb�16�0
+morefig�2048�0
+pmatrix�1�0
+rb�16�0
+rv�16�0
+subequations�1�0
+tab:5/tc�2048�0
+table�1�0
+tabular�1�0
+thebibliography�1�0
+verbatim�1�0


Modified: tests/ctags/bug2888482.js
12 files changed, 12 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,12 @@
+function scrollEditBox() {
+	var editBoxEl = document.getElementById("wpTextbox1");
+	var scrollTopEl = document.getElementById("wpScrolltop");
+	var editFormEl = document.getElementById("editform");
+
+	if (editBoxEl && scrollTopEl) {
+		if (scrollTopEl.value) editBoxEl.scrollTop = scrollTopEl.value;
+		editFormEl.onsubmit = function() {
+			document.getElementById("wpScrolltop").value = document.getElementById("wpTextbox1").scrollTop;
+		}
+	}
+}


Modified: tests/ctags/bug2888482.js.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+onsubmit�16�editFormEl�0
+scrollEditBox�16�0


Modified: tests/ctags/bug3036476.js
20 files changed, 20 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,20 @@
+/*
+ * "Lowercase "object" isn't a keyword"
+ * 
+ * ctags -f - bug3036476.js should output:
+ * 
+ * variables:
+ *    container
+ * 
+ * functions:
+ *    container.object
+ *    container.object.method1
+ *    container.object.method2
+ */
+
+var container = {};
+
+container.object = function() {}
+container.object.method1 = function() {}
+container.object.method2 = function() {}
+


Modified: tests/ctags/bug3036476.js.tags
5 files changed, 5 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,5 @@
+# format=tagmanager
+container�16384�0
+method1�16�container.object�0
+method2�16�container.object�0
+object�16�container�0


Modified: tests/ctags/bug3168705.py
9 files changed, 9 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,9 @@
+class A:
+    def func1():
+        """this is
+a comment"""
+        pass
+
+    def func2():
+        pass
+


Modified: tests/ctags/bug3168705.py.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+A�1�0
+func1�128�()�A�0
+func2�128�()�A�0


Modified: tests/ctags/bug3571233.js
56 files changed, 56 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,56 @@
+/*
+ * "Functions nested inside methods show improper scope with the parent method
+ * being reported as "function""
+ * 
+ * ctags -f - bug3571233.js should output:
+ * 
+ * classes
+ *    MyClass
+ * 
+ * methods
+ *    MyClass.method2
+ * 
+ * functions
+ *    MyClass.method2.nestedFunction1
+ *    MyClass.method2.nestedFunction2
+ *    function1
+ *    function1.nestedFunction3
+ *    function2
+ *    function2.nestedFunction4
+ *    function2.nestedFunction5
+ * 
+ * 
+ * Note that MyClass is shown both as a class and as a function (the parser
+ * discovers it actually is a class only later on).  This isn't really easy to
+ * fix because a JavaScript function is only a class if it happen to be used as
+ * one, for example it has prototypes.
+ */
+
+function MyClass() {
+}
+
+MyClass.prototype.method2 = function() {
+  // these functions have improper scope
+  function nestedFunction1() {
+    
+  }
+  
+  function nestedFunction2() {
+    
+  }
+};
+
+// following work fine, just here as a reference
+function function1() {
+  function nestedFunction3() {
+  }
+};
+
+function2 = function() {
+  function nestedFunction4() {
+  }
+  
+  function nestedFunction5() {
+  }
+};
+


Modified: tests/ctags/bug3571233.js.tags
11 files changed, 11 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,11 @@
+# format=tagmanager
+MyClass�1�0
+MyClass�16�0
+function1�16�0
+function2�16�0
+method2�128�MyClass�0
+nestedFunction1�16�MyClass.method2�0
+nestedFunction2�16�MyClass.method2�0
+nestedFunction3�16�function1�0
+nestedFunction4�16�function2�0
+nestedFunction5�16�function2�0


Modified: tests/ctags/bug507864.c
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+FUNCSTS func1(ENTSEQNO(seq)) {}
+FUNCSTS func2 (MEMTXT(form_msg), MEMTXT (text), MEMTXT (mail)) {}


Modified: tests/ctags/bug507864.c.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+ENTSEQNO�16�(seq)�0�FUNCSTS
+MEMTXT�16�(form_msg)�0�
+MEMTXT�1024�(form_msg)�0�


Modified: tests/ctags/bug538629.asm
1 files changed, 1 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1 @@
+	MYMACRO EQU 01234h


Modified: tests/ctags/bug538629.asm.tags
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+# format=tagmanager
+MYMACRO�65536�0


Modified: tests/ctags/bug556645.c
39 files changed, 39 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,39 @@
+/*
+From noreply at sourceforge.net Wed May 29 23:11:25 2002
+Date: Wed, 15 May 2002 23:25:52 -0700
+From: noreply at sourceforge.net
+To: noreply at sourceforge.net
+Subject: [ ctags-Bugs-556645 ] Some typedef can not be tagged in C code
+
+Bugs item #556645, was opened at 2002-05-16 14:25
+You can respond by visiting: 
+http://sourceforge.net/tracker/?func=detail&atid=106556&aid=556645&group_id=6556
+
+Category: None
+Group: None
+Status: Open
+Resolution: None
+Priority: 5
+Submitted By: Howard Wu (howardhbwu)
+Assigned to: Nobody/Anonymous (nobody)
+Summary: Some typedef can not be tagged in C code
+
+Initial Comment:
+My Ctags version:5.2.3
+
+The typedef of "Qtype" as the following,
+
+*/
+#define A1(_type, _length)                  \
+struct  {                                   \
+    	    unsigned int    head;           \
+    	    unsigned int    tail;           \
+    	    bool            is_full;        \
+    	    _type           queue[_length]; \
+	}
+
+typedef A1(ilm_struct, 1) Qtype;
+
+/*
+As using ctags, the "Qtype" can not be tagged by it.
+*/


Modified: tests/ctags/bug556645.c.tags
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,2 @@
+# format=tagmanager
+A1�131072�(_type, _length)�0


Modified: tests/ctags/bug556646.c
42 files changed, 42 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,42 @@
+/*
+Bugs item #556646, was opened at 2002-05-16 14:36
+You can respond by visiting: 
+http://sourceforge.net/tracker/?func=detail&atid=106556&aid=556646&group_id=6556
+
+Category: None
+Group: None
+Status: Open
+Resolution: None
+Priority: 5
+Submitted By: Howard Wu (howardhbwu)
+Assigned to: Nobody/Anonymous (nobody)
+Summary: Some typedef can not be tagged in C code
+
+Initial Comment:
+My Ctags version: 5.2.3
+*/
+typedef enum{
+  INDX_NIL =   0x00,
+  INDX_P,
+  INDX_S,
+  INDX_M,
+  INDX_S1,
+  INDX_S2,
+  INDX_S3,
+  INDX_C1,
+  INDX_C2,
+  INDX_S4,
+  INDX_T,
+  INDX_L,
+  INDX_R,
+  INDX_R2,
+  INDX_IM1,
+  INDX_IM2,
+  INDX_L2,
+  INDX_T2,
+  A = INDX_T2
+} task_indx_type;
+
+/*
+"task_indx_type" can not be tagged with Ctags
+*/


Modified: tests/ctags/bug556646.c.tags
22 files changed, 22 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,22 @@
+# format=tagmanager
+A�4�anon_enum_0�0
+INDX_C1�4�anon_enum_0�0
+INDX_C2�4�anon_enum_0�0
+INDX_IM1�4�anon_enum_0�0
+INDX_IM2�4�anon_enum_0�0
+INDX_L�4�anon_enum_0�0
+INDX_L2�4�anon_enum_0�0
+INDX_M�4�anon_enum_0�0
+INDX_NIL�4�anon_enum_0�0
+INDX_P�4�anon_enum_0�0
+INDX_R�4�anon_enum_0�0
+INDX_R2�4�anon_enum_0�0
+INDX_S�4�anon_enum_0�0
+INDX_S1�4�anon_enum_0�0
+INDX_S2�4�anon_enum_0�0
+INDX_S3�4�anon_enum_0�0
+INDX_S4�4�anon_enum_0�0
+INDX_T�4�anon_enum_0�0
+INDX_T2�4�anon_enum_0�0
+anon_enum_0�2�0
+task_indx_type�4096�0�anon_enum_0


Modified: tests/ctags/bug565813.f90
42 files changed, 42 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,42 @@
+module ctags_bug
+
+    implicit none
+    private
+    save
+
+    type :: foo_t
+        integer :: bar
+    end type foo_t
+
+    integer, parameter :: N = 1000
+
+    public :: foo_t
+    public :: foo_setbar
+    public :: foo_set_bar
+    public :: foo_getbar
+
+contains
+
+    subroutine foo_setbar (f,b)
+        type(foo_t), intent(out) :: f
+        integer, intent(in) :: b
+
+        f%bar = b
+    end subroutine foo_setbar
+
+
+    pure subroutine foo_set_bar (f,b)
+        type(foo_t), intent(out) :: f
+        integer, intent(in) :: b
+
+        f%bar = b
+    end subroutine foo_set_bar
+
+
+    integer function foo_getbar (f)
+        type(foo_t), intent(in) :: f
+
+        foo_getbar = f%bar
+    end function foo_getbar
+
+end module ctags_bug


Modified: tests/ctags/bug565813.f90.tags
7 files changed, 7 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,7 @@
+# format=tagmanager
+N�16384�ctags_bug�0
+ctags_bug�256�0
+foo_getbar�16�ctags_bug�0
+foo_set_bar�64�ctags_bug�0
+foo_setbar�64�ctags_bug�0
+foo_t�4096�ctags_bug�0


Modified: tests/ctags/bug612019.pas
33 files changed, 33 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,33 @@
+(*
+Bugs item #612019, was opened at 2002-09-20 15:29
+You can respond by visiting: 
+https://sourceforge.net/tracker/?func=detail&atid=106556&aid=612019&group_id=6556
+
+Category: None
+Group: None
+Status: Open
+Resolution: None
+Priority: 5
+Submitted By: Konstantin Stupnik (xecutor)
+Assigned to: Nobody/Anonymous (nobody)
+Summary: pascal parser
+
+Initial Comment:
+In attached sample there are some lines from tags file
+generated for object pascal sources.
+There are some problems with this lines.
+Generaly speaking they are parsed incorrectly.
+*)
+unit a;
+
+interface
+type
+  TTest=class
+    procedure Test1;
+    procedure  Test2;
+    procedure   Test3;
+  end;
+
+implementation
+
+end.


Modified: tests/ctags/bug612019.pas.tags
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,4 @@
+# format=tagmanager
+TTest�16�()�0
+Test2�16�()�0
+Test3�16�()�0


Modified: tests/ctags/bug612621.pl
57 files changed, 57 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,57 @@
+=pod
+Bugs item #612621, was opened at 2002-09-21 21:23
+You can respond by visiting: 
+https://sourceforge.net/tracker/?func=detail&atid=106556&aid=612621&group_id=6556
+
+Category: None
+Group: None
+Status: Open
+Resolution: None
+Priority: 5
+Submitted By: Richard Donkin (rdonkin)
+Assigned to: Nobody/Anonymous (nobody)
+Summary: Perl POD syntax -> incomplete tags file
+
+Initial Comment:
+In the following test file, ctags 5.2.3 (compiled from 
+source on Cygwin) only adds the first subroutine (bar) to 
+the tags file, when run using:
+
+ctags --totals --
+language-force=perl temp
+
+-----------------
+=cut
+sub bar() 
+{
+
+    print "blah\n";
+
+=for
+    print "blah2\n";
+    # 
+Note: next line has trailing space
+=cut 
+
+
+}
+
+sub foo {
+    print "hello\n";
+}
+=pod
+The 
+tags file looks like 
+this:
+!_TAG_FILE_FORMAT	2	/extended format; -- format=1 will not append ;" to lines/
+!_TAG_FILE_SORTED	1	/0=unsorted, 1=sorted/
+!_TAG_PROGRAM_AUTHOR	Darren Hiebert	/dhiebert at users.sourceforge.net/
+!_TAG_PROGRAM_NAME	Exuberant Ctags	//
+!_TAG_PROGRAM_URL	http://ctags.sourceforge.net	/official site/
+!_TAG_PROGRAM_VERSION	5.2.3	//
+bar	temp	/^sub bar() {$/;"	s
+
+The workaround is to delete the 
+trailing space at the end of the '=cut' line.
+
+=cut


Modified: tests/ctags/bug612621.pl.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+bar�16�0
+foo�16�0


Modified: tests/ctags/bug620288.f
98 files changed, 98 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,98 @@
+C Bugs item #620288, was opened at 2002-10-08 08:15
+C You can respond by visiting: 
+C https://sourceforge.net/tracker/?func=detail&atid=106556&aid=620288&group_id=6556
+C 
+C Category: None
+C Group: None
+C Status: Open
+C Resolution: None
+C Priority: 5
+C Submitted By: Nobody/Anonymous (nobody)
+C Assigned to: Nobody/Anonymous (nobody)
+C Summary: fortran function definition
+C 
+C Initial Comment:
+C 
+C System Information:
+C --------------
+C ctags version: 
+C Exuberant Ctags 5.3.1, Copyright (C) 1996-2002 Darren 
+C Hiebert
+C   Compiled: Sep 12 2002, 10:22:42
+C   Addresses: <dhiebert at users.sourceforge.net>, 
+C http://ctags.sourceforge.net
+C   Optional compiled features: +wildcards, +regex
+C 
+C Unix:
+C HP-UX B.11.00 A 9000/800 551726527
+C --------------
+C 
+C Symptoms:
+C --------------
+C I have a fortran file that has a single function.  This 
+C function has a
+C return type of double precision.  I type $ctags bar.f .  
+C This produces the expected 
+C tags file.  However, tags does not contain the function 
+C definition.
+C 
+C This does not occur when the same function's return 
+C type has been changed to 
+C a integer or character data return type.
+C --------------
+C 
+C 
+C Examples in which I can repeat the experience with their 
+C respective tags files:
+C --------------
+C 
+C 
+C foo.f
+C --------------
+	integer function foo(a)
+
+	integer a
+	foo = a
+	end
+C --------------
+C 
+C 
+C tags
+C --------------
+C !_TAG_FILE_FORMAT	2	/extended 
+C format; --format=1 will not append ;" to lines/
+C !_TAG_FILE_SORTED	1
+C 	/0=unsorted, 1=sorted, 2=foldcase/
+C !_TAG_PROGRAM_AUTHOR	Darren Hiebert
+C 	/dhiebert at users.sourceforge.net/
+C !_TAG_PROGRAM_NAME	Exuberant Ctags	//
+C !_TAG_PROGRAM_URL
+C 	http://ctags.sourceforge.net	/official site/
+C !_TAG_PROGRAM_VERSION	5.3.1	//
+C foo	foo.f	/^	integer function foo(/;"	f
+C --------------
+C 
+C 
+C 
+C bar.f	
+C ---------------
+	double precision function bar(a)
+	
+	double precision a
+	bar = a
+	end
+C --------------	
+C 
+C tags
+C ---------------
+C !_TAG_FILE_FORMAT	2	/extended 
+C format; --format=1 will not append ;" to lines/
+C !_TAG_FILE_SORTED	1
+C 	/0=unsorted, 1=sorted, 2=foldcase/
+C !_TAG_PROGRAM_AUTHOR	Darren Hiebert
+C 	/dhiebert at users.sourceforge.net/
+C !_TAG_PROGRAM_NAME	Exuberant Ctags	//
+C !_TAG_PROGRAM_URL
+C 	http://ctags.sourceforge.net	/official site/
+C !_TAG_PROGRAM_VERSION	5.3.1	//
+C ---------------


Modified: tests/ctags/bug620288.f.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+bar�16�0
+foo�16�0


Modified: tests/ctags/bug639639.h
46 files changed, 46 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,46 @@
+/*
+Date: Sun, 17 Nov 2002 04:41:42 -0800
+Subject: [ ctags-Bugs-639639 ] incorrect enum field for C++ header
+
+Bugs item #639639, was opened at 2002-11-17 13:41
+You can respond by visiting: 
+https://sourceforge.net/tracker/?func=detail&atid=106556&aid=639639&group_id=6556
+
+Category: None
+Group: None
+Status: Open
+Resolution: None
+Priority: 5
+Submitted By: Matthias S. Benkmann (mbenkmann)
+Assigned to: Nobody/Anonymous (nobody)
+Summary: incorrect enum field for C++ header
+
+Initial Comment:
+----------- temp2.h -------------
+*/
+namespace Namespace1
+{
+  int function2(char* str);
+}
+
+enum {anon2=1000};
+----------------------------  
+/*
+> ctags --excmd=number --fields=+kKmnsSz
+--file-scope=no -f - temp2.h
+
+Namespace1      temp2.h 1;"     kind:namespace  line:1
+anon2   temp2.h 6;"     kind:enumerator line:6 
+enum:Namespace1
+
+
+As you can see ctags thinks that anon2 belongs to enum
+Namespace1 which it obviously doesn't (Namespace1 is
+not even an enum). It should be enum:<anonymous>.
+
+
+----------------------------------------------------------------------
+
+You can respond by visiting: 
+https://sourceforge.net/tracker/?func=detail&atid=106556&aid=639639&group_id=6556
+*/


Modified: tests/ctags/bug639639.h.tags
3 files changed, 3 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,3 @@
+# format=tagmanager
+anon2�4�anon_enum_0�0
+anon_enum_0�2�0


Modified: tests/ctags/bug639644.hpp
41 files changed, 41 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,41 @@
+/*
+Date: Sun, 17 Nov 2002 04:57:43 -0800
+Subject: [ ctags-Bugs-639644 ] anonymous namespaces in headers
+
+Bugs item #639644, was opened at 2002-11-17 13:57
+You can respond by visiting: 
+https://sourceforge.net/tr@@ Diff output truncated at 100000 characters. @@

--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list