Subject: t/tags-pr12372.sh assumes that etags generates tags for all files
From: Peter Rosin <[email-masked]>
To: [email-masked]
Date: Fri, 31 May 2013 11:15:42 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi!

I recently installed etags on Cygwin.

$ etags --version
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
  Compiled: Dec 11 2009, 11:42:40
  Addresses: <[email-masked]>, http://ctags.sourceforge.net
  Optional compiled features: +wildcards, +regex, +internal-sort

This caused t/tags-pr12372.sh (v1.13.2-63-gb4bfacb, i.e. not the very
latest, but close enough) to go from SKIP to FAIL.

The reason for the FAIL is that this etags program will not by default
generate any tags for file extensions it does not recognize.

Quoting from the manual:

SOURCE FILES
       Unless  the  --language-force option is specified, the language of each
       source file is automatically selected based  upon  a  mapping  of  file
       names  to  languages.  The  mappings in effect for each language may be
       display using the --list-maps option  and  may  be  changed  using  the
       --langmap option.  On platforms which support it, if the name of a file
       is not mapped to a language and the file is executable, the first  line
       of the file is checked to see if the file is a "#!" script for a recog‐
       nized language.

With that info (and with the help of the docs for the --langmap option), I
can make the test PASS *for this etags* with the below patch.

I also question if it's wise to 'cat TAGS' in the test, as I have
non-printable characters the tags files.

Cheers,
Peter

diff --git a/t/tags-pr12372.sh b/t/tags-pr12372.sh
index 4eeb9be..14b500e 100644
--- a/t/tags-pr12372.sh
+++ b/t/tags-pr12372.sh
@@ -63,7 +63,7 @@ $AUTOMAKE

 ./configure

-$MAKE
+$MAKE ETAGSFLAGS="--langmap=c:+.pc"
 cat TAGS
 cat sub/TAGS
 $FGREP foo-main.pc TAGS