emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master e0117b1 2/3: Change new etags test to use UTF-8 enc


From: Paul Eggert
Subject: [Emacs-diffs] master e0117b1 2/3: Change new etags test to use UTF-8 encoding
Date: Mon, 18 May 2015 00:32:18 +0000

branch: master
commit e0117b17c474b9f27b3797a286ffd1d7f52cd0d3
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Change new etags test to use UTF-8 encoding
    
    * test/etags/CTAGS.good, test/etags/ETAGS.good_1:
    * test/etags/ETAGS.good_2, test/etags/ETAGS.good_3:
    * test/etags/ETAGS.good_4, test/etags/ETAGS.good_5:
    * test/etags/html-src/index.shtml, test/etags/html-src/software.html:
    * test/etags/html-src/softwarelibero.html:
    Switch to UTF-8 encoding.
    * test/etags/Makefile (SRCS): Adjust to switch to UTF-8.
    Remove Makefile, as it's too incestuous to have the test input
    include the build procedure.
    (UTF8_LOCALE, UTF_ENCODING): New macros.
    (LC_ALL): If possible, set to a UTF-8 encoding if not already UTF-8.
    (check): Skip if not UTF-8.
    (.PHONY): New rule.
    (FRC): Remove, as superseded by .PHONY.  All uses removed.
    (regexfile): Prefer printf to echo when outputting oddball chars.
    (.PRECIOUS): Remove, as these files are not built.
---
 test/etags/CTAGS.good                   |   52 +------
 test/etags/ETAGS.good_1                 |  224 +++++++++++----------------
 test/etags/ETAGS.good_2                 |  236 ++++++++++++-----------------
 test/etags/ETAGS.good_3                 |  240 ++++++++++++-----------------
 test/etags/ETAGS.good_4                 |  224 +++++++++++----------------
 test/etags/ETAGS.good_5                 |  252 +++++++++++++------------------
 test/etags/Makefile                     |   32 +++-
 test/etags/html-src/index.shtml         |    6 +-
 test/etags/html-src/software.html       |    8 +-
 test/etags/html-src/softwarelibero.html |  166 ++++++++++----------
 10 files changed, 608 insertions(+), 832 deletions(-)

diff --git a/test/etags/CTAGS.good b/test/etags/CTAGS.good
index 1a885cc..5a518f1 100644
--- a/test/etags/CTAGS.good
+++ b/test/etags/CTAGS.good
@@ -47,7 +47,6 @@ $user_comment_lc      php-src/lce_functions.php       115
 (a-forth-constant      forth-src/test-forth.fth        /^constant 
(a-forth-constant$/
 (another-forth-word    forth-src/test-forth.fth        /^: 
(another-forth-word) ( -- )$/
 +      tex-src/texinfo.tex     /^\\def+{{\\tt \\char 43}}$/
-.PRECIOUS      Makefile        /^.PRECIOUS: ETAGS.good CTAGS.good$/
 /.notdef       ps-src/rfc1245.ps       /^\/.notdef \/.notdef \/.notdef 
\/.notdef \/.notdef \/.not/
 /.notdef       ps-src/rfc1245.ps       /^\/.notdef \/.notdef \/.notdef 
\/.notdef \/.notdef \/.not/
 /.notdef       ps-src/rfc1245.ps       /^\/.notdef \/.notdef \/.notdef 
\/.notdef \/.notdef \/.not/
@@ -244,7 +243,6 @@ A::operator+        cp-src/c.C      /^  A operator+(A& a) 
{};$/
 A::rosso       cp-src/c.C      40
 A::verde       cp-src/c.C      40
 A::~A  cp-src/c.C      /^A::~A() {}$/
-ADASRC Makefile        /^ADASRC=$(addprefix .\/ada-src\/,etags-test-for.ada 2/
 ADDRESS        c-src/emacs/src/gmalloc.c       /^#define ADDRESS(B)    ((void 
*) (((B) - 1) * BLOCKSIZ/
 ALIGNOF_STRUCT_LISP_VECTOR     c-src/emacs/src/lisp.h  1378
 ALLOCATED_BEFORE_DUMPING       c-src/emacs/src/gmalloc.c       /^#define 
ALLOCATED_BEFORE_DUMPING(P) \\$/
@@ -254,7 +252,6 @@ AND y-src/cccp.c    11
 ANSIC  c-src/h.h       84
 ANSIC  c-src/h.h       85
 AREF   c-src/emacs/src/lisp.h  /^AREF (Lisp_Object array, ptrdiff_t idx)$/
-ARGS   Makefile        /^ARGS=- < srclist$/
 ARITH_EQUAL    c-src/emacs/src/lisp.h  3498
 ARITH_GRTR     c-src/emacs/src/lisp.h  3501
 ARITH_GRTR_OR_EQUAL    c-src/emacs/src/lisp.h  3503
@@ -267,7 +264,6 @@ ARRAY_MARK_FLAG     c-src/emacs/src/lisp.h  768
 ASCII_CHAR_P   c-src/emacs/src/lisp.h  /^#define ASCII_CHAR_P(c) UNSIGNED_CMP 
(c, <, 0x80)$/
 ASET   c-src/emacs/src/lisp.h  /^ASET (Lisp_Object array, ptrdiff_t idx, 
Lisp_Objec/
 ASIZE  c-src/emacs/src/lisp.h  /^ASIZE (Lisp_Object array)$/
-ASRC   Makefile        /^ASRC=$(addprefix .\/a-src\/,empty.zz empty.zz.gz)$/
 AST_Array::AST_Array   cp-src/c.C      /^AST_Array::AST_Array(UTL_ScopedName 
*n, unsigned l/
 AST_ConcreteType::AST_ConcreteType     cp-src/c.C      
/^AST_ConcreteType::AST_ConcreteType(AST_Decl::NodeT/
 AST_Root       cp-src/c.C      92
@@ -465,13 +461,9 @@ CONSTYPE_PURE      c-src/emacs/src/lisp.h  3739
 CONS_TO_INTEGER        c-src/emacs/src/lisp.h  /^#define CONS_TO_INTEGER(cons, 
type, var)                              \\$/
 CONVERT_CHARSTRING_TO_VALUE    pas-src/common.pas      /^procedure 
CONVERT_CHARSTRING_TO_VALUE;(*($/
 CPPFLAGS       make-src/Makefile       49
-CPSRC  Makefile        /^CPSRC=$(addprefix .\/cp-src\/,c.C burton.cpp burton./
-CSRC   Makefile        /^CSRC=$(addprefix .\/c-src\/,abbrev.c .\/\/c.c 
torture./
-CTAGS  Makefile        /^CTAGS: FRC ${infiles}$/
 CTAGS  c-src/etags.c   146
 CTAGS  c-src/etags.c   147
 CTAGS  c-src/etags.c   149
-CTAGS_PROG     Makefile        /^CTAGS_PROG=..\/..\/lib-src\/ctags$/
 C_AUTO c-src/etags.c   2198
 C_EXT  c-src/etags.c   2193
 C_JAVA c-src/etags.c   2197
@@ -580,7 +572,6 @@ Debug       cp-src/functions.cpp    /^void Debug ( int 
lineno, int level, char* func , c/
 DisposeANameList       pas-src/common.pas      /^procedure DisposeANameList( $/
 DisposeNameList        pas-src/common.pas      /^procedure DisposeNameList;$/
 ELEM_I c-src/h.h       3
-ELSRC  Makefile        /^ELSRC=$(addprefix .\/el-src\/,TAGTEST.EL 
emacs\/lisp\//
 EMACS_INT      c-src/emacs/src/lisp.h  91
 EMACS_INT      c-src/emacs/src/lisp.h  96
 EMACS_INT      c-src/emacs/src/lisp.h  103
@@ -610,12 +601,9 @@ ENUM_BF    c-src/emacs/src/lisp.h  /^      ENUM_BF 
(specbind_tag) kind : CHAR_BIT;$/
 ENUM_BF        c-src/emacs/src/lisp.h  /^      ENUM_BF (specbind_tag) kind : 
CHAR_BIT;$/
 EQ     c-src/emacs/src/lisp.h  /^# define EQ(x, y) lisp_h_EQ (x, y)$/
 EQUAL  y-src/cccp.c    12
-ERLSRC Makefile        /^ERLSRC=$(addprefix .\/erl-src\/,gs_dialog.erl)$/
 ERROR  y-src/parse.y   303
 ERROR  parse.y 303
 ERROR  y-src/cccp.c    9
-ETAGS  Makefile        /^ETAGS: FRC ${infiles}$/
-ETAGS_PROG     Makefile        /^ETAGS_PROG=..\/..\/lib-src\/etags$/
 EXFUN  c-src/emacs/src/lisp.h  /^#define EXFUN(fnname, maxargs) \\$/
 EXTERNALLY_VISIBLE     c-src/emacs/src/keyboard.c      3497
 EXTERNALLY_VISIBLE     c-src/emacs/src/keyboard.c      4372
@@ -638,13 +626,10 @@ FIXNUM_OVERFLOW_P c-src/emacs/src/lisp.h  /^#define 
FIXNUM_OVERFLOW_P(i) \\$/
 FIXNUM_OVERFLOW_P      c-src/emacs/src/lisp.h  /^LISP_MACRO_DEFUN (EQ, bool, 
(Lisp_Object x, Lisp_O/
 FLOATP c-src/emacs/src/lisp.h  /^# define FLOATP(x) lisp_h_FLOATP (x)$/
 FLOAT_TO_STRING_BUFSIZE        c-src/emacs/src/lisp.h  3927
-FORTHSRC       Makefile        /^FORTHSRC=$(addprefix 
.\/forth-src\/,test-forth.fth)$/
 FOR_EACH_ALIST_VALUE   c-src/emacs/src/lisp.h  /^#define 
FOR_EACH_ALIST_VALUE(head_var, list_var, v/
 FOR_EACH_TAIL  c-src/emacs/src/lisp.h  /^#define FOR_EACH_TAIL(hare, list, 
tortoise, n)        \\$/
 FRAMEP c-src/emacs/src/lisp.h  /^FRAMEP (Lisp_Object a)$/
-FRC    Makefile        /^FRC:;$/
 FREEFLOOD      c-src/emacs/src/gmalloc.c       1858
-FSRC   Makefile        /^FSRC=$(addprefix .\/f-src\/,entry.for entry.strange_/
 FUN0   y-src/parse.y   /^yylex FUN0()$/
 FUN0   parse.y /^yylex FUN0()$/
 FUN1   y-src/parse.y   /^yyerror FUN1(char *, s)$/
@@ -735,7 +720,6 @@ HASH_TABLE_SIZE     c-src/emacs/src/lisp.h  
/^HASH_TABLE_SIZE (struct Lisp_Hash_Table
 HASH_VALUE     c-src/emacs/src/lisp.h  /^HASH_VALUE (struct Lisp_Hash_Table 
*h, ptrdiff_t i/
 HAVE_NTGUI     c-src/etags.c   116
 HEAP   c-src/emacs/src/gmalloc.c       131
-HTMLSRC        Makefile        /^HTMLSRC=$(addprefix 
.\/html-src\/,softwarelibero.htm/
 HTML_help      c-src/etags.c   584
 HTML_labels    c-src/etags.c   /^HTML_labels (FILE *inf)$/
 HTML_suffixes  c-src/etags.c   582
@@ -851,7 +835,6 @@ LTGT        cp-src/MDiagArray2.h    35
 LTGT   cp-src/MDiagArray2.h    39
 LTGT   cp-src/MDiagArray2.h    42
 LTGT   cp-src/MDiagArray2.h    144
-LUASRC Makefile        /^LUASRC=$(addprefix .\/lua-src\/,allegro.lua)$/
 L_CELL y-src/parse.c   10
 L_CONST        y-src/parse.c   13
 L_FN0  y-src/parse.c   14
@@ -938,7 +921,6 @@ Lua_suffixes        c-src/etags.c   598
 MAGICBYTE      c-src/emacs/src/gmalloc.c       1856
 MAGICFREE      c-src/emacs/src/gmalloc.c       1855
 MAGICWORD      c-src/emacs/src/gmalloc.c       1854
-MAKESRC        Makefile        /^MAKESRC=$(addprefix .\/make-src\/,Makefile)$/
 MALLOCFLOOD    c-src/emacs/src/gmalloc.c       1857
 MANY   c-src/emacs/src/lisp.h  2833
 MARKERP        c-src/emacs/src/lisp.h  /^# define MARKERP(x) lisp_h_MARKERP 
(x)$/
@@ -1016,7 +998,6 @@ NILP       c-src/emacs/src/lisp.h  /^# define NILP(x) 
lisp_h_NILP (x)$/
 NIL_IS_ZERO    c-src/emacs/src/lisp.h  1515
 NONPOINTER_BITS        c-src/emacs/src/lisp.h  78
 NONPOINTER_BITS        c-src/emacs/src/lisp.h  80
-NONSRCS        Makefile        /^NONSRCS=.\/f-src\/entry.strange 
.\/erl-src\/lists.erl /
 NONSRCS        make-src/Makefile       35
 NOTEQUAL       y-src/cccp.c    13
 NULL   cccp.y  51
@@ -1033,20 +1014,14 @@ NewLayerSet     lua-src/allegro.lua     /^function 
NewLayerSet (name)$/
 NewNameString  pas-src/common.pas      /^procedure NewNameString; (* (var NSP: 
NameStringPo/
 NmStrToErrStr  pas-src/common.pas      /^function NmStrToErrStr;(*($/
 NmStrToInteger pas-src/common.pas      /^function NmStrToInteger; (* (Str : 
NameString) : i/
-OBJCPPSRC      Makefile        /^OBJCPPSRC=$(addprefix 
.\/objcpp-src\/,SimpleCalc.H S/
-OBJCSRC        Makefile        /^OBJCSRC=$(addprefix 
.\/objc-src\/,Subprocess.h Subpr/
 OPENBUTTON     objc-src/PackInsp.m     47
-OPTIONS        Makefile        /^OPTIONS=--members --declarations 
address@hidden/
 OR     y-src/cccp.c    10
 OVERLAYP       c-src/emacs/src/lisp.h  /^OVERLAYP (Lisp_Object x)$/
 Objc_help      c-src/etags.c   613
 Objc_suffixes  c-src/etags.c   609
 OperatorFun    c-src/h.h       88
 Overview       tex-src/gzip.texi       /address@hidden Overview, Sample, 
Copying, Top$/
-PASSRC Makefile        /^PASSRC=$(addprefix .\/pas-src\/,common.pas)$/
 PDT    c-src/h.h       /^  Date 04 May 87 235311 PDT (Mon)$/
-PERLSRC        Makefile        /^PERLSRC=$(addprefix 
.\/perl-src\/,htlmify-cystic yag/
-PHPSRC Makefile        /^PHPSRC=$(addprefix .\/php-src\/,lce_functions.php pt/
 PHP_functions  c-src/etags.c   /^PHP_functions (FILE *inf)$/
 PHP_help       c-src/etags.c   639
 PHP_suffixes   c-src/etags.c   637
@@ -1059,13 +1034,13 @@ POReader        php-src/lce_functions.php       163
 POReader       php-src/lce_functions.php       /^      function 
POReader($domain, $filename)$/
 PRINT_UNDOCUMENTED_OPTIONS_HELP        c-src/etags.c   804
 PROCESSP       c-src/emacs/src/lisp.h  /^PROCESSP (Lisp_Object a)$/
-PROLSRC        Makefile        /^PROLSRC=$(addprefix 
.\/prol-src\/,ordsets.prolog nat/
 PROP   c-src/emacs/src/keyboard.c      /^#define PROP(IDX) AREF 
(tool_bar_item_properties, /
 PROP   c-src/emacs/src/keyboard.c      8379
 PROTECT_MALLOC_STATE   c-src/emacs/src/gmalloc.c       /^#define 
PROTECT_MALLOC_STATE(PROT) protect_malloc_/
 PROTECT_MALLOC_STATE   c-src/emacs/src/gmalloc.c       /^#define 
PROTECT_MALLOC_STATE(PROT)    \/* empty *\/$/
 PRTPKG f-src/entry.for /^      LOGICAL FUNCTION PRTPKG ( SHORT, LONG, EXPL,/
 PRTPKG f-src/entry.strange_suffix      /^      LOGICAL FUNCTION PRTPKG ( 
SHORT, LONG, EXPL,/
+PRTPKG f-src/entry.strange     /^      LOGICAL FUNCTION PRTPKG ( SHORT, LONG, 
EXPL,/
 PSEUDO c-src/sysdep.h  /^#define       PSEUDO(name, syscall_name, args)        
                              /
 PSEUDOVECSIZE  c-src/emacs/src/lisp.h  /^#define PSEUDOVECSIZE(type, 
nonlispfield)                     \\$/
 PSEUDOVECTORP  c-src/emacs/src/lisp.h  /^PSEUDOVECTORP (Lisp_Object a, int 
code)$/
@@ -1076,7 +1051,6 @@ PSEUDOVECTOR_REST_MASK    c-src/emacs/src/lisp.h  814
 PSEUDOVECTOR_SIZE_BITS c-src/emacs/src/lisp.h  808
 PSEUDOVECTOR_SIZE_MASK c-src/emacs/src/lisp.h  809
 PSEUDOVECTOR_TYPEP     c-src/emacs/src/lisp.h  /^PSEUDOVECTOR_TYPEP (struct 
vectorlike_header *a, i/
-PSSRC  Makefile        /^PSSRC=$(addprefix .\/ps-src\/,rfc1245.ps)$/
 PS_functions   c-src/etags.c   /^PS_functions (FILE *inf)$/
 PS_help        c-src/etags.c   649
 PS_suffixes    c-src/etags.c   647
@@ -1101,7 +1075,6 @@ PVEC_TERMINAL     c-src/emacs/src/lisp.h  790
 PVEC_TYPE_MASK c-src/emacs/src/lisp.h  819
 PVEC_WINDOW    c-src/emacs/src/lisp.h  786
 PVEC_WINDOW_CONFIGURATION      c-src/emacs/src/lisp.h  791
-PYTSRC Makefile        /^PYTSRC=$(addprefix .\/pyt-src\/,server.py)$/
 PackageInspector       objc-src/PackInsp.h     /address@hidden 
PackageInspector:WMInspector$/
 Pascal_functions       c-src/etags.c   /^Pascal_functions (FILE *inf)$/
 Pascal_help    c-src/etags.c   621
@@ -1192,7 +1165,6 @@ RECC_UNIBYTE      c-src/emacs/src/regex.h 617
 RECC_UPPER     c-src/emacs/src/regex.h 612
 RECC_WORD      c-src/emacs/src/regex.h 610
 RECC_XDIGIT    c-src/emacs/src/regex.h 614
-REGEX  Makefile        /^REGEX=\/[ \\t]*DEFVAR_[A-Z_ \\t\\n(]+"\\([^"]+\\)"\/$/
 REGS_FIXED     c-src/emacs/src/regex.h 378
 REGS_REALLOCATE        c-src/emacs/src/regex.h 377
 REGS_UNALLOCATED       c-src/emacs/src/regex.h 376
@@ -1267,7 +1239,6 @@ RE_TRANSLATE_TYPE c-src/emacs/src/regex.h 332
 RE_UNMATCHED_RIGHT_PAREN_ORD   c-src/emacs/src/regex.h 136
 RSH    y-src/cccp.c    17
 RTE/s  ada-src/2ataspri.adb    /^   package RTE renames 
Interfaces.C.POSIX_RTE;$/
-RUN    Makefile        /^RUN=$/
 Range  cp-src/Range.h  35
 Range::Range   cp-src/Range.h  /^  Range (void)$/
 Range::Range   cp-src/Range.h  /^  Range (const Range& r)$/
@@ -1328,6 +1299,7 @@ SDTrefSkipSpaces  pas-src/common.pas      /^procedure 
SDTrefSkipSpaces;$/
 SDTrefStringToRec      pas-src/common.pas      /^procedure SDTrefStringToRec 
(* ($/
 SETPRT f-src/entry.for /^       ENTRY  SETPRT ( SHORT, EXPL, LONG, TRACE, D/
 SETPRT f-src/entry.strange_suffix      /^       ENTRY  SETPRT ( SHORT, EXPL, 
LONG, TRACE, D/
+SETPRT f-src/entry.strange     /^       ENTRY  SETPRT ( SHORT, EXPL, LONG, 
TRACE, D/
 SET_SYMBOL_BLV c-src/emacs/src/lisp.h  /^SET_SYMBOL_BLV (struct Lisp_Symbol 
*sym, struct Li/
 SET_SYMBOL_FWD c-src/emacs/src/lisp.h  /^SET_SYMBOL_FWD (struct Lisp_Symbol 
*sym, union Lis/
 SET_SYMBOL_VAL c-src/emacs/src/lisp.h  /^# define SET_SYMBOL_VAL(sym, v) 
lisp_h_SET_SYMBOL_/
@@ -1344,7 +1316,6 @@ SPECPDL_UNWIND    c-src/emacs/src/lisp.h  2944
 SPECPDL_UNWIND_INT     c-src/emacs/src/lisp.h  2946
 SPECPDL_UNWIND_PTR     c-src/emacs/src/lisp.h  2945
 SPECPDL_UNWIND_VOID    c-src/emacs/src/lisp.h  2947
-SRCS   Makefile        /^SRCS=Makefile ${ADASRC} ${ASRC} ${CSRC} ${CPSRC} $/
 SREF   c-src/emacs/src/lisp.h  /^SREF (Lisp_Object string, ptrdiff_t index)$/
 SSDATA c-src/emacs/src/lisp.h  /^SSDATA (Lisp_Object string)$/
 SSET   c-src/emacs/src/lisp.h  /^SSET (Lisp_Object string, ptrdiff_t index, 
unsigne/
@@ -1419,7 +1390,6 @@ TAS_Cell/t        ada-src/2ataspri.ads    /^   type 
TAS_Cell is$/
 TCB_Ptr/t      ada-src/2ataspri.ads    /^   type TCB_Ptr is access all 
Task_Control_Block;$/
 TERMINALP      c-src/emacs/src/lisp.h  /^TERMINALP (Lisp_Object a)$/
 TEST   php-src/ptest.php       1
-TEXSRC Makefile        /^TEXSRC=$(addprefix .\/tex-src\/,testenv.tex gzip.tex/
 TEXTAGS        make-src/Makefile       204
 TEXTAGS        make-src/Makefile       219
 TEX_LESC       c-src/etags.c   4986
@@ -1604,7 +1574,6 @@ XUNTAG    c-src/emacs/src/lisp.h  /^XUNTAG (Lisp_Object 
a, int type)$/
 XWINDOW        c-src/emacs/src/lisp.h  /^XWINDOW (Lisp_Object a)$/
 Y      c-src/h.h       100
 YACC   c-src/etags.c   2199
-YSRC   Makefile        /^YSRC=$(addprefix .\/y-src\/,parse.y parse.c atest.y /
 YYABORT        /usr/share/bison/bison.simple   153
 YYABORT        /usr/share/bison/bison.simple   153
 YYACCEPT       /usr/share/bison/bison.simple   152
@@ -2574,7 +2543,7 @@ b c-src/h.h       41
 b      c-src/h.h       103
 b      c-src/h.h       104
 backslash=0    tex-src/texinfo.tex     /^\\let\\indexbackslash=0  %overridden 
during \\printin/
-bar    c-src//c.c      /^void bar() {while(0) {}}$/
+bar    c-src/c.c       /^void bar() {while(0) {}}$/
 bar    c.c     143
 bar    c-src/h.h       19
 bas_syn        prol-src/natded.prolog  /^bas_syn(n(_)).$/
@@ -2667,7 +2636,6 @@ cat       c-src/h.h       81
 cat    prol-src/natded.prolog  /^cat(A, address@hidden, Ass3, Qs3, 
tree(fe,A:address@hidden/
 cat_atoms      prol-src/natded.prolog  /^cat_atoms(A1,A2,A3):-$/
 cccccccccc     c-src/h.h       115
-cdiff  Makefile        /^cdiff: CTAGS.good CTAGS ${infiles}$/
 cdr    c-src/emacs/src/lisp.h  1159
 cell   y-src/parse.y   278
 cgrep  html-src/software.html  /^cgrep$/
@@ -2677,7 +2645,6 @@ char_bits c-src/emacs/src/lisp.h  2443
 char_table_specials    c-src/emacs/src/lisp.h  1692
 charset_unibyte        c-src/emacs/src/regex.h 410
 chartonmstr    pas-src/common.pas      /^function chartonmstr; (*($/
-check  Makefile        /^check:$/
 checkQuotation php-src/lce_functions.php       /^      function 
checkQuotation($str)$/
 check_cons_list        c-src/emacs/src/lisp.h  /^#  define check_cons_list() 
lisp_h_check_cons_list/
 checkhdr       c-src/emacs/src/gmalloc.c       /^checkhdr (const struct hdr 
*hdr)$/
@@ -2846,7 +2813,6 @@ echo_message_buffer       c-src/emacs/src/keyboard.c      
171
 echo_now       c-src/emacs/src/keyboard.c      /^echo_now (void)$/
 echo_truncate  c-src/emacs/src/keyboard.c      /^echo_truncate (ptrdiff_t 
nchars)$/
 echoing        c-src/emacs/src/keyboard.c      154
-ediff% Makefile        /^ediff%: ETAGS.good% ETAGS ${infiles}$/
 editItem       pyt-src/server.py       /^    def editItem(self):$/
 editsite       pyt-src/server.py       /^    def editsite(self, site):$/
 edituser       pyt-src/server.py       /^    def edituser(self, user):$/
@@ -2918,7 +2884,7 @@ expression_value  cccp.y  68
 expression_value       y-src/cccp.y    68
 extras c-src/emacs/src/lisp.h  1603
 extvar c-src/h.h       109
-f      c-src//c.c      /^T f(){if(x){}$/
+f      c-src/c.c       /^T f(){if(x){}$/
 f      c.c     145
 f      c.c     156
 f      c.c     168
@@ -3002,7 +2968,7 @@ foo       f-src/entry.strange     /^       character*(*) 
function foo()$/
 foo    php-src/ptest.php       /^foo()$/
 foo::f cp-src/c.C      /^     void f() {}$/
 foo::x cp-src/c.C      80
-foobar c-src//c.c      /^int foobar() {;}$/
+foobar c-src/c.c       /^int foobar() {;}$/
 foobar c.c     /^extern void foobar (void) __attribute__ ((section /
 foobar2        c-src/h.h       20
 foobar2_       c-src/h.h       16
@@ -3124,7 +3090,7 @@ hybrid_get_current_dir_name       
c-src/emacs/src/gmalloc.c       /^hybrid_get_current_dir_n
 hybrid_malloc  c-src/emacs/src/gmalloc.c       /^hybrid_malloc (size_t size)$/
 hybrid_realloc c-src/emacs/src/gmalloc.c       /^hybrid_realloc (void *ptr, 
size_t size)$/
 hypothetical_mem       prol-src/natded.prolog  
/^hypothetical_mem(fi(N),Ass,_):-$/
-i      c-src//c.c      2
+i      c-src/c.c       2
 i      c.c     169
 i      c-src/emacs/src/lisp.h  567
 i      c-src/emacs/src/lisp.h  4673
@@ -3145,7 +3111,6 @@ inattribute       c-src/etags.c   2400
 index  c-src/emacs/src/lisp.h  1856
 infabsdir      c-src/etags.c   206
 infabsname     c-src/etags.c   205
-infiles        Makefile        /^infiles = $(filter-out ${NONSRCS},${SRCS}) 
srclist/
 infname        c-src/etags.c   204
 info   c-src/emacs/src/gmalloc.c       157
 infoPanel:     objcpp-src/SimpleCalc.M /^- infoPanel:sender$/
@@ -3183,7 +3148,7 @@ integertonmstr    pas-src/common.pas      /^function 
integertonmstr; (* (TheInteger : in
 intensity1     f-src/entry.for /^     & 
intensity1(efv,fv,svin,svquad,sfpv,maxp,val/
 intensity1     f-src/entry.strange_suffix      /^     & 
intensity1(efv,fv,svin,svquad,sfpv,maxp,val/
 intensity1     f-src/entry.strange     /^     & 
intensity1(efv,fv,svin,svquad,sfpv,maxp,val/
-interface_locate       c-src//c.c      /^interface_locate(void)$/
+interface_locate       c-src/c.c       /^interface_locate(void)$/
 intern c-src/emacs/src/lisp.h  /^intern (const char *str)$/
 intern_c_string        c-src/emacs/src/lisp.h  /^intern_c_string (const char 
*str)$/
 internal_last_event_frame      c-src/emacs/src/keyboard.c      228
@@ -3901,7 +3866,6 @@ regex     make-src/Makefile       216
 regex  make-src/Makefile       219
 regex_t        c-src/emacs/src/regex.h 416
 regex_tag_multiline    c-src/etags.c   /^regex_tag_multiline (void)$/
-regexfile      Makefile        /^regexfile: Makefile$/
 regexp c-src/etags.c   256
 regexp c-src/etags.c   268
 registerAction:        objcpp-src/SimpleCalc.M /^- registerAction:(SEL)action$/
@@ -4053,7 +4017,6 @@ specbind_tag      c-src/emacs/src/lisp.h  2943
 specbinding    c-src/emacs/src/lisp.h  2955
 specialsymbol  prol-src/natded.prolog  /^specialsymbol(C1,C2,S):-$/
 splitexp       prol-src/natded.prolog  /^splitexp(E,E,('NIL','NIL')):-!.$/
-srclist        Makefile        /^srclist: Makefile$/
 ss3    c.c     255
 sss1   c.c     252
 sss2   c.c     253
@@ -4419,7 +4382,6 @@ xref-location-line        
el-src/emacs/lisp/progmodes/etags.el    /^(cl-defmethod xref-loc
 xref-location-marker   el-src/emacs/lisp/progmodes/etags.el    /^(cl-defmethod 
xref-location-marker ((l xref-etags-/
 xref-make-etags-location       el-src/emacs/lisp/progmodes/etags.el    
/^(defun xref-make-etags-location (tag-info file)$/
 xrnew  c-src/etags.c   /^#define xrnew(op, n, Type) ((op) = (Type *) xreall/
-xx     Makefile        /^xx="this line is here because of a fontlock bug$/
 y-get-selection-internal       c.c     /^      Fy_get_selection_internal, 
Sy_get_selection_/
 yyalloc        /usr/share/bison/bison.simple   83
 yyalloc        /usr/share/bison/bison.simple   83
diff --git a/test/etags/ETAGS.good_1 b/test/etags/ETAGS.good_1
index 6762bf3..7ccc5a0 100644
--- a/test/etags/ETAGS.good_1
+++ b/test/etags/ETAGS.good_1
@@ -1,46 +1,4 @@
 
-Makefile,683
-ADASRC=1,0
-ASRC=2,91
-CSRC=3,139
-CPSRC=7,410
-ELSRC=10,584
-ERLSRC=11,654
-FORTHSRC=12,699
-FSRC=13,749
-HTMLSRC=14,821
-LUASRC=16,950
-MAKESRC=17,993
-OBJCSRC=18,1035
-OBJCPPSRC=19,1116
-PASSRC=20,1179
-PERLSRC=21,1221
-PHPSRC=22,1291
-PSSRC=23,1363
-PROLSRC=24,1403
-PYTSRC=25,1465
-TEXSRC=26,1506
-YSRC=27,1585
-SRCS=28,1650
-NONSRCS=32,1902
-ETAGS_PROG=34,1976
-CTAGS_PROG=35,2007
-REGEX=37,2039
-xx=38,2085
-RUN=40,2134
-OPTIONS=42,2140
-ARGS=43,2192
-infiles 45,2210
-check:check47,2272
-ediff%:ediff%55,2575
-cdiff:cdiff58,2676
-ETAGS:ETAGS61,2773
-CTAGS:CTAGS64,2843
-srclist:srclist67,2921
-regexfile:regexfile71,3012
-.PRECIOUS:.PRECIOUS77,3189
-FRC:FRC79,3223
-
 ada-src/etags-test-for.ada,1969
    type LL_Task_Procedure_Access LL_Task_Procedure_Access/t1,0
    function Body_RequiredBody_Required/f3,78
@@ -621,18 +579,18 @@ char                      **tab_fill(tab_fill70,1129
 int                    tab_delete_first(91,1638
 int                    tab_count_words(103,1820
 
-c-src/dostorture.c,197
-(*tag1 tag118,451
-#define notag2 26,552
-(*tag2 tag229,629
-(*tag3 tag339,771
-#define notag4 45,860
-(*tag4 tag448,954
-tag5 57,1080
-tag6 66,1207
-int pp1(74,1316
-pp287,1418
-pp3(100,1517
+c-src/dostorture.c,198
+(*tag1 tag118,468
+#define notag2 26,577
+(*tag2 tag229,657
+(*tag3 tag339,809
+#define notag4 45,904
+(*tag4 tag448,1001
+tag5 57,1136
+tag6 66,1272
+int pp1(74,1389
+pp287,1504
+pp3(100,1616
 
 c-src/emacs/src/gmalloc.c,3539
 #define USE_PTHREAD25,1002
@@ -1951,46 +1909,46 @@ template <class C, int n> class AT 52,1668
 class AU 53,1716
 class B<B54,1735
 class B<int> { void f(B::f54,1735
-const A::B::T& abt 55,1765
-class A 56,1791
-class A { class B A::B56,1791
-class A 57,1826
-  A operator+(A::operator+59,1860
-is_muldiv_operation(61,1887
-domain foo 68,1955
-     void f(foo::f69,1968
-void A::A(72,1989
-struct A 73,2004
-struct B 74,2022
-void B::B(75,2041
-void BE_Node::BE_Node(76,2056
-class BE_Node 77,2083
-struct foo 79,2102
-class test 86,2156
-  int f(test::f87,2169
-  int ff(test::ff89,2231
-  int g(test::g90,2254
-class  AST_Root 92,2278
-AST_ConcreteType::AST_ConcreteType(99,2393
-AST_Array::AST_Array(107,2532
-     void f(::f115,2733
-struct A 117,2753
-A::~A(120,2777
-struct B 122,2789
-    ~B(B::~B123,2800
-enum {dog,::dog126,2817
-enum {dog, cat}::cat126,2817
-enum {dog, cat} animals;126,2817
-struct {int teats;} cow;127,2842
-class Boo 129,2868
-    enum {dog,Boo::dog130,2880
-    enum {dog, cat}Boo::cat130,2880
-    foo(Boo::foo133,2954
-    Boo(Boo::Boo137,2995
-Boo::Boo(141,3070
-typedef int should_see_this_one_enclosed_in_extern_C;149,3155
-typedef int 
(*should_see_this_function_pointer)should_see_this_function_pointer153,3228
-typedef int should_see_this_array_type[should_see_this_array_type156,3310
+const A::B::T& abt 55,1766
+class A 56,1792
+class A { class B A::B56,1792
+class A 57,1827
+  A operator+(A::operator+59,1861
+is_muldiv_operation(61,1888
+domain foo 68,1956
+     void f(foo::f69,1969
+void A::A(72,1990
+struct A 73,2005
+struct B 74,2023
+void B::B(75,2042
+void BE_Node::BE_Node(76,2057
+class BE_Node 77,2084
+struct foo 79,2103
+class test 86,2157
+  int f(test::f87,2170
+  int ff(test::ff89,2232
+  int g(test::g90,2255
+class  AST_Root 92,2279
+AST_ConcreteType::AST_ConcreteType(99,2394
+AST_Array::AST_Array(107,2533
+     void f(::f115,2734
+struct A 117,2754
+A::~A(120,2778
+struct B 122,2790
+    ~B(B::~B123,2801
+enum {dog,::dog126,2818
+enum {dog, cat}::cat126,2818
+enum {dog, cat} animals;126,2818
+struct {int teats;} cow;127,2843
+class Boo 129,2869
+    enum {dog,Boo::dog130,2881
+    enum {dog, cat}Boo::cat130,2881
+    foo(Boo::foo133,2955
+    Boo(Boo::Boo137,2996
+Boo::Boo(141,3071
+typedef int should_see_this_one_enclosed_in_extern_C;149,3156
+typedef int 
(*should_see_this_function_pointer)should_see_this_function_pointer153,3229
+typedef int should_see_this_array_type[should_see_this_array_type156,3311
 
 cp-src/burton.cpp,103
 ::dummy::dummy test::dummy1(1,0
@@ -2298,10 +2256,12 @@ f-src/entry.strange_suffix,172
      & intensity1(577,12231
        character*(*) function foo(579,12307
 
-f-src/entry.strange,103
-       ENTRY  MSGSEL 193,4382
-     & intensity1(375,8135
-       character*(*) function foo(377,8211
+f-src/entry.strange,171
+      LOGICAL FUNCTION PRTPKG 2,2
+       ENTRY  SETPRT 193,3793
+       ENTRY  MSGSEL 394,8405
+     & intensity1(576,12158
+       character*(*) function foo(578,12234
 
 forth-src/test-forth.fth,408
 : a-forth-word 20,301
@@ -2317,44 +2277,44 @@ constant (a-forth-constant(a-forth-constant38,628
 code assemby-code-word 43,685
 : a-forth-word 50,870
 
-html-src/softwarelibero.html,198
-Cos'� il software libero?4,38
-Licenze d'uso di un programmalicenze65,2474
-Sfatiamo alcuni miti138,6064
-Il movimento open sourceoss191,7968
-Impatto pratico del software liberoimpatto231,9986
+html-src/softwarelibero.html,200
+Cos'è il software libero?4,38
+Licenze d'uso di un programmalicenze65,2500
+Sfatiamo alcuni miti138,6118
+Il movimento open sourceoss191,8037
+Impatto pratico del software liberoimpatto231,10066
 
 html-src/index.shtml,104
 &nbsp;8,281
-In evidenza15,446
-Comunicati e iniziative32,974
-Ultime notizie dall'associazione63,2027
+In evidenza15,447
+Comunicati e iniziative32,976
+Ultime notizie dall'associazione63,2030
 
 html-src/algrthms.html,467
-Tutorial on Convolutional Coding with Viterbi Decoding--Description of the 
Data Generation, Convolutional Encoding, Channel Mapping and AWGN, and 
Quantizing Algorithms7,276
-Descriptionalgorithms10,477
-Generating the Datagenalgorithm48,1953
-Convolutionallyconalgorithm55,2463
-Nextstatetable262,11331
-Outputoutputtable350,13571
-Mapping the Channel Symbolsmapping433,15786
-Adding Noise to theaddnoise439,16174
-Quantizing the Receivedquantizing469,18637
+Tutorial on Convolutional Coding with Viterbi Decoding--Description of the 
Data Generation, Convolutional Encoding, Channel Mapping and AWGN, and 
Quantizing Algorithms7,282
+Descriptionalgorithms10,486
+Generating the Datagenalgorithm48,2000
+Convolutionallyconalgorithm55,2517
+Nextstatetable262,11592
+Outputoutputtable350,13920
+Mapping the Channel Symbolsmapping433,16218
+Adding Noise to theaddnoise439,16612
+Quantizing the Receivedquantizing469,19105
 
-html-src/software.html,438
-Francesco Potort� Software Page9,280
-Software that I wrote for supporting my research activitysimulation36,1400
-MTGmtg41,1484
-Fracasfracas65,2626
-GaliLEOgalileo101,4234
-Leasqrleasqr114,4679
-Free software that I wrote for the GNU project or for my personal or 
workgnu142,6067
-Etagsetags148,6182
-checkiso161,6731
-cgrep178,7549
-debian-bug.eldebian-bug190,7981
-tcpdump205,8566
-Links to interesting softwarelinks216,8893
+html-src/software.html,439
+Francesco Potortì Software Page9,280
+Software that I wrote for supporting my research activitysimulation36,1398
+MTGmtg41,1482
+Fracasfracas65,2624
+GaliLEOgalileo101,4232
+Leasqrleasqr114,4677
+Free software that I wrote for the GNU project or for my personal or 
workgnu142,6065
+Etagsetags148,6180
+checkiso161,6729
+cgrep178,7547
+debian-bug.eldebian-bug190,7979
+tcpdump205,8564
+Links to interesting softwarelinks216,8891
 
 lua-src/allegro.lua,400
 local function get_layer_by_name 7,175
@@ -3730,7 +3690,7 @@ 
Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %
 \global\def={=3306,107486
 \def\normalbackslash{\normalbackslash3320,107868
 
-c-src//c.c,76
+c-src/c.c,76
 T f(1,0
 }T i;2,14
 void bar(5,69
diff --git a/test/etags/ETAGS.good_2 b/test/etags/ETAGS.good_2
index 32b58d8..bd20d14 100644
--- a/test/etags/ETAGS.good_2
+++ b/test/etags/ETAGS.good_2
@@ -1,46 +1,4 @@
 
-Makefile,683
-ADASRC=1,0
-ASRC=2,91
-CSRC=3,139
-CPSRC=7,410
-ELSRC=10,584
-ERLSRC=11,654
-FORTHSRC=12,699
-FSRC=13,749
-HTMLSRC=14,821
-LUASRC=16,950
-MAKESRC=17,993
-OBJCSRC=18,1035
-OBJCPPSRC=19,1116
-PASSRC=20,1179
-PERLSRC=21,1221
-PHPSRC=22,1291
-PSSRC=23,1363
-PROLSRC=24,1403
-PYTSRC=25,1465
-TEXSRC=26,1506
-YSRC=27,1585
-SRCS=28,1650
-NONSRCS=32,1902
-ETAGS_PROG=34,1976
-CTAGS_PROG=35,2007
-REGEX=37,2039
-xx=38,2085
-RUN=40,2134
-OPTIONS=42,2140
-ARGS=43,2192
-infiles 45,2210
-check:check47,2272
-ediff%:ediff%55,2575
-cdiff:cdiff58,2676
-ETAGS:ETAGS61,2773
-CTAGS:CTAGS64,2843
-srclist:srclist67,2921
-regexfile:regexfile71,3012
-.PRECIOUS:.PRECIOUS77,3189
-FRC:FRC79,3223
-
 ada-src/etags-test-for.ada,1969
    type LL_Task_Procedure_Access LL_Task_Procedure_Access/t1,0
    function Body_RequiredBody_Required/f3,78
@@ -688,18 +646,18 @@ char                      **tab_fill(tab_fill70,1129
 int                    tab_delete_first(91,1638
 int                    tab_count_words(103,1820
 
-c-src/dostorture.c,197
-(*tag1 tag118,451
-#define notag2 26,552
-(*tag2 tag229,629
-(*tag3 tag339,771
-#define notag4 45,860
-(*tag4 tag448,954
-tag5 57,1080
-tag6 66,1207
-int pp1(74,1316
-pp287,1418
-pp3(100,1517
+c-src/dostorture.c,198
+(*tag1 tag118,468
+#define notag2 26,577
+(*tag2 tag229,657
+(*tag3 tag339,809
+#define notag4 45,904
+(*tag4 tag448,1001
+tag5 57,1136
+tag6 66,1272
+int pp1(74,1389
+pp287,1504
+pp3(100,1616
 
 c-src/emacs/src/gmalloc.c,6643
 #define USE_PTHREAD25,1002
@@ -2457,53 +2415,53 @@ template <class C, int n> class AT 52,1668
 class AU 53,1716
 class B<B54,1735
 class B<int> { void f(B::f54,1735
-const A::B::T& abt 55,1765
-class A 56,1791
-class A { class B A::B56,1791
-class A { class B { int f(A::B::f56,1791
-class A 57,1826
-  int get_data(A::get_data58,1836
-  A operator+(A::operator+59,1860
-is_muldiv_operation(61,1887
-domain foo 68,1955
-     void f(foo::f69,1968
-void A::A(72,1989
-struct A 73,2004
-struct A { A(A::A73,2004
-struct B 74,2022
-struct B { B(B::B74,2022
-void B::B(75,2041
-void BE_Node::BE_Node(76,2056
-class BE_Node 77,2083
-struct foo 79,2102
-class test 86,2156
-  int f(test::f87,2169
-  int ff(test::ff89,2231
-  int g(test::g90,2254
-class  AST_Root 92,2278
-class  AST_Root;96,2327
-AST_ConcreteType::AST_ConcreteType(99,2393
-AST_Array::AST_Array(107,2532
-     void f(::f115,2733
-struct A 117,2753
-    ~A(A::~A118,2764
-A::~A(120,2777
-struct B 122,2789
-    ~B(B::~B123,2800
-enum {dog,::dog126,2817
-enum {dog, cat}::cat126,2817
-enum {dog, cat} animals;126,2817
-struct {int teats;} cow;127,2842
-class Boo 129,2868
-    enum {dog,Boo::dog130,2880
-    enum {dog, cat}Boo::cat130,2880
-    foo(Boo::foo133,2954
-    Boo(Boo::Boo137,2995
-    Boo(Boo::Boo138,3052
-Boo::Boo(141,3070
-typedef int should_see_this_one_enclosed_in_extern_C;149,3155
-typedef int 
(*should_see_this_function_pointer)should_see_this_function_pointer153,3228
-typedef int should_see_this_array_type[should_see_this_array_type156,3310
+const A::B::T& abt 55,1766
+class A 56,1792
+class A { class B A::B56,1792
+class A { class B { int f(A::B::f56,1792
+class A 57,1827
+  int get_data(A::get_data58,1837
+  A operator+(A::operator+59,1861
+is_muldiv_operation(61,1888
+domain foo 68,1956
+     void f(foo::f69,1969
+void A::A(72,1990
+struct A 73,2005
+struct A { A(A::A73,2005
+struct B 74,2023
+struct B { B(B::B74,2023
+void B::B(75,2042
+void BE_Node::BE_Node(76,2057
+class BE_Node 77,2084
+struct foo 79,2103
+class test 86,2157
+  int f(test::f87,2170
+  int ff(test::ff89,2232
+  int g(test::g90,2255
+class  AST_Root 92,2279
+class  AST_Root;96,2328
+AST_ConcreteType::AST_ConcreteType(99,2394
+AST_Array::AST_Array(107,2533
+     void f(::f115,2734
+struct A 117,2754
+    ~A(A::~A118,2765
+A::~A(120,2778
+struct B 122,2790
+    ~B(B::~B123,2801
+enum {dog,::dog126,2818
+enum {dog, cat}::cat126,2818
+enum {dog, cat} animals;126,2818
+struct {int teats;} cow;127,2843
+class Boo 129,2869
+    enum {dog,Boo::dog130,2881
+    enum {dog, cat}Boo::cat130,2881
+    foo(Boo::foo133,2955
+    Boo(Boo::Boo137,2996
+    Boo(Boo::Boo138,3053
+Boo::Boo(141,3071
+typedef int should_see_this_one_enclosed_in_extern_C;149,3156
+typedef int 
(*should_see_this_function_pointer)should_see_this_function_pointer153,3229
+typedef int should_see_this_array_type[should_see_this_array_type156,3311
 
 cp-src/burton.cpp,103
 ::dummy::dummy test::dummy1(1,0
@@ -2865,10 +2823,12 @@ f-src/entry.strange_suffix,172
      & intensity1(577,12231
        character*(*) function foo(579,12307
 
-f-src/entry.strange,103
-       ENTRY  MSGSEL 193,4382
-     & intensity1(375,8135
-       character*(*) function foo(377,8211
+f-src/entry.strange,171
+      LOGICAL FUNCTION PRTPKG 2,2
+       ENTRY  SETPRT 193,3793
+       ENTRY  MSGSEL 394,8405
+     & intensity1(576,12158
+       character*(*) function foo(578,12234
 
 forth-src/test-forth.fth,408
 : a-forth-word 20,301
@@ -2884,44 +2844,44 @@ constant (a-forth-constant(a-forth-constant38,628
 code assemby-code-word 43,685
 : a-forth-word 50,870
 
-html-src/softwarelibero.html,198
-Cos'� il software libero?4,38
-Licenze d'uso di un programmalicenze65,2474
-Sfatiamo alcuni miti138,6064
-Il movimento open sourceoss191,7968
-Impatto pratico del software liberoimpatto231,9986
+html-src/softwarelibero.html,200
+Cos'è il software libero?4,38
+Licenze d'uso di un programmalicenze65,2500
+Sfatiamo alcuni miti138,6118
+Il movimento open sourceoss191,8037
+Impatto pratico del software liberoimpatto231,10066
 
 html-src/index.shtml,104
 &nbsp;8,281
-In evidenza15,446
-Comunicati e iniziative32,974
-Ultime notizie dall'associazione63,2027
+In evidenza15,447
+Comunicati e iniziative32,976
+Ultime notizie dall'associazione63,2030
 
 html-src/algrthms.html,467
-Tutorial on Convolutional Coding with Viterbi Decoding--Description of the 
Data Generation, Convolutional Encoding, Channel Mapping and AWGN, and 
Quantizing Algorithms7,276
-Descriptionalgorithms10,477
-Generating the Datagenalgorithm48,1953
-Convolutionallyconalgorithm55,2463
-Nextstatetable262,11331
-Outputoutputtable350,13571
-Mapping the Channel Symbolsmapping433,15786
-Adding Noise to theaddnoise439,16174
-Quantizing the Receivedquantizing469,18637
+Tutorial on Convolutional Coding with Viterbi Decoding--Description of the 
Data Generation, Convolutional Encoding, Channel Mapping and AWGN, and 
Quantizing Algorithms7,282
+Descriptionalgorithms10,486
+Generating the Datagenalgorithm48,2000
+Convolutionallyconalgorithm55,2517
+Nextstatetable262,11592
+Outputoutputtable350,13920
+Mapping the Channel Symbolsmapping433,16218
+Adding Noise to theaddnoise439,16612
+Quantizing the Receivedquantizing469,19105
 
-html-src/software.html,438
-Francesco Potort� Software Page9,280
-Software that I wrote for supporting my research activitysimulation36,1400
-MTGmtg41,1484
-Fracasfracas65,2626
-GaliLEOgalileo101,4234
-Leasqrleasqr114,4679
-Free software that I wrote for the GNU project or for my personal or 
workgnu142,6067
-Etagsetags148,6182
-checkiso161,6731
-cgrep178,7549
-debian-bug.eldebian-bug190,7981
-tcpdump205,8566
-Links to interesting softwarelinks216,8893
+html-src/software.html,439
+Francesco Potortì Software Page9,280
+Software that I wrote for supporting my research activitysimulation36,1398
+MTGmtg41,1482
+Fracasfracas65,2624
+GaliLEOgalileo101,4232
+Leasqrleasqr114,4677
+Free software that I wrote for the GNU project or for my personal or 
workgnu142,6065
+Etagsetags148,6180
+checkiso161,6729
+cgrep178,7547
+debian-bug.eldebian-bug190,7979
+tcpdump205,8564
+Links to interesting softwarelinks216,8891
 
 lua-src/allegro.lua,400
 local function get_layer_by_name 7,175
@@ -4299,7 +4259,7 @@ 
Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %
 \global\def={=3306,107486
 \def\normalbackslash{\normalbackslash3320,107868
 
-c-src//c.c,76
+c-src/c.c,76
 T f(1,0
 }T i;2,14
 void bar(5,69
diff --git a/test/etags/ETAGS.good_3 b/test/etags/ETAGS.good_3
index 644ffe4..b3abf5f 100644
--- a/test/etags/ETAGS.good_3
+++ b/test/etags/ETAGS.good_3
@@ -1,46 +1,4 @@
 
-Makefile,683
-ADASRC=1,0
-ASRC=2,91
-CSRC=3,139
-CPSRC=7,410
-ELSRC=10,584
-ERLSRC=11,654
-FORTHSRC=12,699
-FSRC=13,749
-HTMLSRC=14,821
-LUASRC=16,950
-MAKESRC=17,993
-OBJCSRC=18,1035
-OBJCPPSRC=19,1116
-PASSRC=20,1179
-PERLSRC=21,1221
-PHPSRC=22,1291
-PSSRC=23,1363
-PROLSRC=24,1403
-PYTSRC=25,1465
-TEXSRC=26,1506
-YSRC=27,1585
-SRCS=28,1650
-NONSRCS=32,1902
-ETAGS_PROG=34,1976
-CTAGS_PROG=35,2007
-REGEX=37,2039
-xx=38,2085
-RUN=40,2134
-OPTIONS=42,2140
-ARGS=43,2192
-infiles 45,2210
-check:check47,2272
-ediff%:ediff%55,2575
-cdiff:cdiff58,2676
-ETAGS:ETAGS61,2773
-CTAGS:CTAGS64,2843
-srclist:srclist67,2921
-regexfile:regexfile71,3012
-.PRECIOUS:.PRECIOUS77,3189
-FRC:FRC79,3223
-
 ada-src/etags-test-for.ada,1969
    type LL_Task_Procedure_Access LL_Task_Procedure_Access/t1,0
    function Body_RequiredBody_Required/f3,78
@@ -690,18 +648,18 @@ char                      **tab_fill(tab_fill70,1129
 int                    tab_delete_first(91,1638
 int                    tab_count_words(103,1820
 
-c-src/dostorture.c,197
-(*tag1 tag118,451
-#define notag2 26,552
-(*tag2 tag229,629
-(*tag3 tag339,771
-#define notag4 45,860
-(*tag4 tag448,954
-tag5 57,1080
-tag6 66,1207
-int pp1(74,1316
-pp287,1418
-pp3(100,1517
+c-src/dostorture.c,198
+(*tag1 tag118,468
+#define notag2 26,577
+(*tag2 tag229,657
+(*tag3 tag339,809
+#define notag4 45,904
+(*tag4 tag448,1001
+tag5 57,1136
+tag6 66,1272
+int pp1(74,1389
+pp287,1504
+pp3(100,1616
 
 c-src/emacs/src/gmalloc.c,4207
 #define USE_PTHREAD25,1002
@@ -2241,54 +2199,54 @@ class AU 53,1716
 class AU { T x;AU::x53,1716
 class B<B54,1735
 class B<int> { void f(B::f54,1735
-const A::B::T& abt 55,1765
-class A 56,1791
-class A { class B A::B56,1791
-class A 57,1826
-  A operator+(A::operator+59,1860
-is_muldiv_operation(61,1887
-domain foo 68,1955
-     void f(foo::f69,1968
-void A::A(72,1989
-struct A 73,2004
-struct B 74,2022
-void B::B(75,2041
-void BE_Node::BE_Node(76,2056
-class BE_Node 77,2083
-struct foo 79,2102
-  int x;foo::x80,2115
-class test 86,2156
-  int f(test::f87,2169
-  int ff(test::ff89,2231
-  int g(test::g90,2254
-class  AST_Root 92,2278
-AST_ConcreteType::AST_ConcreteType(99,2393
-AST_Array::AST_Array(107,2532
-     void f(::f115,2733
-struct A 117,2753
-A::~A(120,2777
-struct B 122,2789
-    ~B(B::~B123,2800
-enum {dog,::dog126,2817
-enum {dog, cat}::cat126,2817
-enum {dog, cat} animals;126,2817
-struct {int teats;::teats127,2842
-struct {int teats;} cow;127,2842
-class Boo 129,2868
-    enum {dog,Boo::dog130,2880
-    enum {dog, cat}Boo::cat130,2880
-    enum {dog, cat} animals;Boo::animals130,2880
-    struct {int treats;Boo::treats131,2909
-    struct {int treats;} cow;Boo::cow131,2909
-    int i,Boo::i132,2939
-    int i,a,Boo::a132,2939
-    int i,a,b;Boo::b132,2939
-    foo(Boo::foo133,2954
-    Boo(Boo::Boo137,2995
-Boo::Boo(141,3070
-typedef int should_see_this_one_enclosed_in_extern_C;149,3155
-typedef int 
(*should_see_this_function_pointer)should_see_this_function_pointer153,3228
-typedef int should_see_this_array_type[should_see_this_array_type156,3310
+const A::B::T& abt 55,1766
+class A 56,1792
+class A { class B A::B56,1792
+class A 57,1827
+  A operator+(A::operator+59,1861
+is_muldiv_operation(61,1888
+domain foo 68,1956
+     void f(foo::f69,1969
+void A::A(72,1990
+struct A 73,2005
+struct B 74,2023
+void B::B(75,2042
+void BE_Node::BE_Node(76,2057
+class BE_Node 77,2084
+struct foo 79,2103
+  int x;foo::x80,2116
+class test 86,2157
+  int f(test::f87,2170
+  int ff(test::ff89,2232
+  int g(test::g90,2255
+class  AST_Root 92,2279
+AST_ConcreteType::AST_ConcreteType(99,2394
+AST_Array::AST_Array(107,2533
+     void f(::f115,2734
+struct A 117,2754
+A::~A(120,2778
+struct B 122,2790
+    ~B(B::~B123,2801
+enum {dog,::dog126,2818
+enum {dog, cat}::cat126,2818
+enum {dog, cat} animals;126,2818
+struct {int teats;::teats127,2843
+struct {int teats;} cow;127,2843
+class Boo 129,2869
+    enum {dog,Boo::dog130,2881
+    enum {dog, cat}Boo::cat130,2881
+    enum {dog, cat} animals;Boo::animals130,2881
+    struct {int treats;Boo::treats131,2910
+    struct {int treats;} cow;Boo::cow131,2910
+    int i,Boo::i132,2940
+    int i,a,Boo::a132,2940
+    int i,a,b;Boo::b132,2940
+    foo(Boo::foo133,2955
+    Boo(Boo::Boo137,2996
+Boo::Boo(141,3071
+typedef int should_see_this_one_enclosed_in_extern_C;149,3156
+typedef int 
(*should_see_this_function_pointer)should_see_this_function_pointer153,3229
+typedef int should_see_this_array_type[should_see_this_array_type156,3311
 
 cp-src/burton.cpp,103
 ::dummy::dummy test::dummy1(1,0
@@ -2615,10 +2573,12 @@ f-src/entry.strange_suffix,172
      & intensity1(577,12231
        character*(*) function foo(579,12307
 
-f-src/entry.strange,103
-       ENTRY  MSGSEL 193,4382
-     & intensity1(375,8135
-       character*(*) function foo(377,8211
+f-src/entry.strange,171
+      LOGICAL FUNCTION PRTPKG 2,2
+       ENTRY  SETPRT 193,3793
+       ENTRY  MSGSEL 394,8405
+     & intensity1(576,12158
+       character*(*) function foo(578,12234
 
 forth-src/test-forth.fth,408
 : a-forth-word 20,301
@@ -2634,44 +2594,44 @@ constant (a-forth-constant(a-forth-constant38,628
 code assemby-code-word 43,685
 : a-forth-word 50,870
 
-html-src/softwarelibero.html,198
-Cos'� il software libero?4,38
-Licenze d'uso di un programmalicenze65,2474
-Sfatiamo alcuni miti138,6064
-Il movimento open sourceoss191,7968
-Impatto pratico del software liberoimpatto231,9986
+html-src/softwarelibero.html,200
+Cos'è il software libero?4,38
+Licenze d'uso di un programmalicenze65,2500
+Sfatiamo alcuni miti138,6118
+Il movimento open sourceoss191,8037
+Impatto pratico del software liberoimpatto231,10066
 
 html-src/index.shtml,104
 &nbsp;8,281
-In evidenza15,446
-Comunicati e iniziative32,974
-Ultime notizie dall'associazione63,2027
+In evidenza15,447
+Comunicati e iniziative32,976
+Ultime notizie dall'associazione63,2030
 
 html-src/algrthms.html,467
-Tutorial on Convolutional Coding with Viterbi Decoding--Description of the 
Data Generation, Convolutional Encoding, Channel Mapping and AWGN, and 
Quantizing Algorithms7,276
-Descriptionalgorithms10,477
-Generating the Datagenalgorithm48,1953
-Convolutionallyconalgorithm55,2463
-Nextstatetable262,11331
-Outputoutputtable350,13571
-Mapping the Channel Symbolsmapping433,15786
-Adding Noise to theaddnoise439,16174
-Quantizing the Receivedquantizing469,18637
+Tutorial on Convolutional Coding with Viterbi Decoding--Description of the 
Data Generation, Convolutional Encoding, Channel Mapping and AWGN, and 
Quantizing Algorithms7,282
+Descriptionalgorithms10,486
+Generating the Datagenalgorithm48,2000
+Convolutionallyconalgorithm55,2517
+Nextstatetable262,11592
+Outputoutputtable350,13920
+Mapping the Channel Symbolsmapping433,16218
+Adding Noise to theaddnoise439,16612
+Quantizing the Receivedquantizing469,19105
 
-html-src/software.html,438
-Francesco Potort� Software Page9,280
-Software that I wrote for supporting my research activitysimulation36,1400
-MTGmtg41,1484
-Fracasfracas65,2626
-GaliLEOgalileo101,4234
-Leasqrleasqr114,4679
-Free software that I wrote for the GNU project or for my personal or 
workgnu142,6067
-Etagsetags148,6182
-checkiso161,6731
-cgrep178,7549
-debian-bug.eldebian-bug190,7981
-tcpdump205,8566
-Links to interesting softwarelinks216,8893
+html-src/software.html,439
+Francesco Potortì Software Page9,280
+Software that I wrote for supporting my research activitysimulation36,1398
+MTGmtg41,1482
+Fracasfracas65,2624
+GaliLEOgalileo101,4232
+Leasqrleasqr114,4677
+Free software that I wrote for the GNU project or for my personal or 
workgnu142,6065
+Etagsetags148,6180
+checkiso161,6729
+cgrep178,7547
+debian-bug.eldebian-bug190,7979
+tcpdump205,8564
+Links to interesting softwarelinks216,8891
 
 lua-src/allegro.lua,400
 local function get_layer_by_name 7,175
@@ -4074,7 +4034,7 @@ 
Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %
 \global\def={=3306,107486
 \def\normalbackslash{\normalbackslash3320,107868
 
-c-src//c.c,76
+c-src/c.c,76
 T f(1,0
 }T i;2,14
 void bar(5,69
diff --git a/test/etags/ETAGS.good_4 b/test/etags/ETAGS.good_4
index 5d31c36..438e8b5 100644
--- a/test/etags/ETAGS.good_4
+++ b/test/etags/ETAGS.good_4
@@ -1,46 +1,4 @@
 
-Makefile,683
-ADASRC=1,0
-ASRC=2,91
-CSRC=3,139
-CPSRC=7,410
-ELSRC=10,584
-ERLSRC=11,654
-FORTHSRC=12,699
-FSRC=13,749
-HTMLSRC=14,821
-LUASRC=16,950
-MAKESRC=17,993
-OBJCSRC=18,1035
-OBJCPPSRC=19,1116
-PASSRC=20,1179
-PERLSRC=21,1221
-PHPSRC=22,1291
-PSSRC=23,1363
-PROLSRC=24,1403
-PYTSRC=25,1465
-TEXSRC=26,1506
-YSRC=27,1585
-SRCS=28,1650
-NONSRCS=32,1902
-ETAGS_PROG=34,1976
-CTAGS_PROG=35,2007
-REGEX=37,2039
-xx=38,2085
-RUN=40,2134
-OPTIONS=42,2140
-ARGS=43,2192
-infiles 45,2210
-check:check47,2272
-ediff%:ediff%55,2575
-cdiff:cdiff58,2676
-ETAGS:ETAGS61,2773
-CTAGS:CTAGS64,2843
-srclist:srclist67,2921
-regexfile:regexfile71,3012
-.PRECIOUS:.PRECIOUS77,3189
-FRC:FRC79,3223
-
 ada-src/etags-test-for.ada,1969
    type LL_Task_Procedure_Access LL_Task_Procedure_Access/t1,0
    function Body_RequiredBody_Required/f3,78
@@ -645,18 +603,18 @@ char                      **tab_fill(tab_fill70,1129
 int                    tab_delete_first(91,1638
 int                    tab_count_words(103,1820
 
-c-src/dostorture.c,197
-(*tag1 tag118,451
-#define notag2 26,552
-(*tag2 tag229,629
-(*tag3 tag339,771
-#define notag4 45,860
-(*tag4 tag448,954
-tag5 57,1080
-tag6 66,1207
-int pp1(74,1316
-pp287,1418
-pp3(100,1517
+c-src/dostorture.c,198
+(*tag1 tag118,468
+#define notag2 26,577
+(*tag2 tag229,657
+(*tag3 tag339,809
+#define notag4 45,904
+(*tag4 tag448,1001
+tag5 57,1136
+tag6 66,1272
+int pp1(74,1389
+pp287,1504
+pp3(100,1616
 
 c-src/emacs/src/gmalloc.c,3539
 #define USE_PTHREAD25,1002
@@ -2115,46 +2073,46 @@ template <class C, int n> class AT 52,1668
 class AU 53,1716
 class B<B54,1735
 class B<int> { void f(B::f54,1735
-const A::B::T& abt 55,1765
-class A 56,1791
-class A { class B A::B56,1791
-class A 57,1826
-  A operator+(A::operator+59,1860
-is_muldiv_operation(61,1887
-domain foo 68,1955
-     void f(foo::f69,1968
-void A::A(72,1989
-struct A 73,2004
-struct B 74,2022
-void B::B(75,2041
-void BE_Node::BE_Node(76,2056
-class BE_Node 77,2083
-struct foo 79,2102
-class test 86,2156
-  int f(test::f87,2169
-  int ff(test::ff89,2231
-  int g(test::g90,2254
-class  AST_Root 92,2278
-AST_ConcreteType::AST_ConcreteType(99,2393
-AST_Array::AST_Array(107,2532
-     void f(::f115,2733
-struct A 117,2753
-A::~A(120,2777
-struct B 122,2789
-    ~B(B::~B123,2800
-enum {dog,::dog126,2817
-enum {dog, cat}::cat126,2817
-enum {dog, cat} animals;126,2817
-struct {int teats;} cow;127,2842
-class Boo 129,2868
-    enum {dog,Boo::dog130,2880
-    enum {dog, cat}Boo::cat130,2880
-    foo(Boo::foo133,2954
-    Boo(Boo::Boo137,2995
-Boo::Boo(141,3070
-typedef int should_see_this_one_enclosed_in_extern_C;149,3155
-typedef int 
(*should_see_this_function_pointer)should_see_this_function_pointer153,3228
-typedef int should_see_this_array_type[should_see_this_array_type156,3310
+const A::B::T& abt 55,1766
+class A 56,1792
+class A { class B A::B56,1792
+class A 57,1827
+  A operator+(A::operator+59,1861
+is_muldiv_operation(61,1888
+domain foo 68,1956
+     void f(foo::f69,1969
+void A::A(72,1990
+struct A 73,2005
+struct B 74,2023
+void B::B(75,2042
+void BE_Node::BE_Node(76,2057
+class BE_Node 77,2084
+struct foo 79,2103
+class test 86,2157
+  int f(test::f87,2170
+  int ff(test::ff89,2232
+  int g(test::g90,2255
+class  AST_Root 92,2279
+AST_ConcreteType::AST_ConcreteType(99,2394
+AST_Array::AST_Array(107,2533
+     void f(::f115,2734
+struct A 117,2754
+A::~A(120,2778
+struct B 122,2790
+    ~B(B::~B123,2801
+enum {dog,::dog126,2818
+enum {dog, cat}::cat126,2818
+enum {dog, cat} animals;126,2818
+struct {int teats;} cow;127,2843
+class Boo 129,2869
+    enum {dog,Boo::dog130,2881
+    enum {dog, cat}Boo::cat130,2881
+    foo(Boo::foo133,2955
+    Boo(Boo::Boo137,2996
+Boo::Boo(141,3071
+typedef int should_see_this_one_enclosed_in_extern_C;149,3156
+typedef int 
(*should_see_this_function_pointer)should_see_this_function_pointer153,3229
+typedef int should_see_this_array_type[should_see_this_array_type156,3311
 
 cp-src/burton.cpp,103
 ::dummy::dummy test::dummy1(1,0
@@ -2462,10 +2420,12 @@ f-src/entry.strange_suffix,172
      & intensity1(577,12231
        character*(*) function foo(579,12307
 
-f-src/entry.strange,103
-       ENTRY  MSGSEL 193,4382
-     & intensity1(375,8135
-       character*(*) function foo(377,8211
+f-src/entry.strange,171
+      LOGICAL FUNCTION PRTPKG 2,2
+       ENTRY  SETPRT 193,3793
+       ENTRY  MSGSEL 394,8405
+     & intensity1(576,12158
+       character*(*) function foo(578,12234
 
 forth-src/test-forth.fth,408
 : a-forth-word 20,301
@@ -2481,44 +2441,44 @@ constant (a-forth-constant(a-forth-constant38,628
 code assemby-code-word 43,685
 : a-forth-word 50,870
 
-html-src/softwarelibero.html,198
-Cos'� il software libero?4,38
-Licenze d'uso di un programmalicenze65,2474
-Sfatiamo alcuni miti138,6064
-Il movimento open sourceoss191,7968
-Impatto pratico del software liberoimpatto231,9986
+html-src/softwarelibero.html,200
+Cos'è il software libero?4,38
+Licenze d'uso di un programmalicenze65,2500
+Sfatiamo alcuni miti138,6118
+Il movimento open sourceoss191,8037
+Impatto pratico del software liberoimpatto231,10066
 
 html-src/index.shtml,104
 &nbsp;8,281
-In evidenza15,446
-Comunicati e iniziative32,974
-Ultime notizie dall'associazione63,2027
+In evidenza15,447
+Comunicati e iniziative32,976
+Ultime notizie dall'associazione63,2030
 
 html-src/algrthms.html,467
-Tutorial on Convolutional Coding with Viterbi Decoding--Description of the 
Data Generation, Convolutional Encoding, Channel Mapping and AWGN, and 
Quantizing Algorithms7,276
-Descriptionalgorithms10,477
-Generating the Datagenalgorithm48,1953
-Convolutionallyconalgorithm55,2463
-Nextstatetable262,11331
-Outputoutputtable350,13571
-Mapping the Channel Symbolsmapping433,15786
-Adding Noise to theaddnoise439,16174
-Quantizing the Receivedquantizing469,18637
+Tutorial on Convolutional Coding with Viterbi Decoding--Description of the 
Data Generation, Convolutional Encoding, Channel Mapping and AWGN, and 
Quantizing Algorithms7,282
+Descriptionalgorithms10,486
+Generating the Datagenalgorithm48,2000
+Convolutionallyconalgorithm55,2517
+Nextstatetable262,11592
+Outputoutputtable350,13920
+Mapping the Channel Symbolsmapping433,16218
+Adding Noise to theaddnoise439,16612
+Quantizing the Receivedquantizing469,19105
 
-html-src/software.html,438
-Francesco Potort� Software Page9,280
-Software that I wrote for supporting my research activitysimulation36,1400
-MTGmtg41,1484
-Fracasfracas65,2626
-GaliLEOgalileo101,4234
-Leasqrleasqr114,4679
-Free software that I wrote for the GNU project or for my personal or 
workgnu142,6067
-Etagsetags148,6182
-checkiso161,6731
-cgrep178,7549
-debian-bug.eldebian-bug190,7981
-tcpdump205,8566
-Links to interesting softwarelinks216,8893
+html-src/software.html,439
+Francesco Potortì Software Page9,280
+Software that I wrote for supporting my research activitysimulation36,1398
+MTGmtg41,1482
+Fracasfracas65,2624
+GaliLEOgalileo101,4232
+Leasqrleasqr114,4677
+Free software that I wrote for the GNU project or for my personal or 
workgnu142,6065
+Etagsetags148,6180
+checkiso161,6729
+cgrep178,7547
+debian-bug.eldebian-bug190,7979
+tcpdump205,8564
+Links to interesting softwarelinks216,8891
 
 lua-src/allegro.lua,400
 local function get_layer_by_name 7,175
@@ -3894,7 +3854,7 @@ 
Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %
 \global\def={=3306,107486
 \def\normalbackslash{\normalbackslash3320,107868
 
-c-src//c.c,76
+c-src/c.c,76
 T f(1,0
 }T i;2,14
 void bar(5,69
diff --git a/test/etags/ETAGS.good_5 b/test/etags/ETAGS.good_5
index c7357d0..b4b2750 100644
--- a/test/etags/ETAGS.good_5
+++ b/test/etags/ETAGS.good_5
@@ -1,46 +1,4 @@
 
-Makefile,683
-ADASRC=1,0
-ASRC=2,91
-CSRC=3,139
-CPSRC=7,410
-ELSRC=10,584
-ERLSRC=11,654
-FORTHSRC=12,699
-FSRC=13,749
-HTMLSRC=14,821
-LUASRC=16,950
-MAKESRC=17,993
-OBJCSRC=18,1035
-OBJCPPSRC=19,1116
-PASSRC=20,1179
-PERLSRC=21,1221
-PHPSRC=22,1291
-PSSRC=23,1363
-PROLSRC=24,1403
-PYTSRC=25,1465
-TEXSRC=26,1506
-YSRC=27,1585
-SRCS=28,1650
-NONSRCS=32,1902
-ETAGS_PROG=34,1976
-CTAGS_PROG=35,2007
-REGEX=37,2039
-xx=38,2085
-RUN=40,2134
-OPTIONS=42,2140
-ARGS=43,2192
-infiles 45,2210
-check:check47,2272
-ediff%:ediff%55,2575
-cdiff:cdiff58,2676
-ETAGS:ETAGS61,2773
-CTAGS:CTAGS64,2843
-srclist:srclist67,2921
-regexfile:regexfile71,3012
-.PRECIOUS:.PRECIOUS77,3189
-FRC:FRC79,3223
-
 ada-src/etags-test-for.ada,1969
    type LL_Task_Procedure_Access LL_Task_Procedure_Access/t1,0
    function Body_RequiredBody_Required/f3,78
@@ -781,18 +739,18 @@ char                      **tab_fill(tab_fill70,1129
 int                    tab_delete_first(91,1638
 int                    tab_count_words(103,1820
 
-c-src/dostorture.c,197
-(*tag1 tag118,451
-#define notag2 26,552
-(*tag2 tag229,629
-(*tag3 tag339,771
-#define notag4 45,860
-(*tag4 tag448,954
-tag5 57,1080
-tag6 66,1207
-int pp1(74,1316
-pp287,1418
-pp3(100,1517
+c-src/dostorture.c,198
+(*tag1 tag118,468
+#define notag2 26,577
+(*tag2 tag229,657
+(*tag3 tag339,809
+#define notag4 45,904
+(*tag4 tag448,1001
+tag5 57,1136
+tag6 66,1272
+int pp1(74,1389
+pp287,1504
+pp3(100,1616
 
 c-src/emacs/src/gmalloc.c,7311
 #define USE_PTHREAD25,1002
@@ -2911,61 +2869,61 @@ class AU 53,1716
 class AU { T x;AU::x53,1716
 class B<B54,1735
 class B<int> { void f(B::f54,1735
-const A::B::T& abt 55,1765
-class A 56,1791
-class A { class B A::B56,1791
-class A { class B { int f(A::B::f56,1791
-class A 57,1826
-  int get_data(A::get_data58,1836
-  A operator+(A::operator+59,1860
-is_muldiv_operation(61,1887
-domain foo 68,1955
-     void f(foo::f69,1968
-void A::A(72,1989
-struct A 73,2004
-struct A { A(A::A73,2004
-struct B 74,2022
-struct B { B(B::B74,2022
-void B::B(75,2041
-void BE_Node::BE_Node(76,2056
-class BE_Node 77,2083
-struct foo 79,2102
-  int x;foo::x80,2115
-class test 86,2156
-  int f(test::f87,2169
-  int ff(test::ff89,2231
-  int g(test::g90,2254
-class  AST_Root 92,2278
-class  AST_Root;96,2327
-AST_ConcreteType::AST_ConcreteType(99,2393
-AST_Array::AST_Array(107,2532
-     void f(::f115,2733
-struct A 117,2753
-    ~A(A::~A118,2764
-A::~A(120,2777
-struct B 122,2789
-    ~B(B::~B123,2800
-enum {dog,::dog126,2817
-enum {dog, cat}::cat126,2817
-enum {dog, cat} animals;126,2817
-struct {int teats;::teats127,2842
-struct {int teats;} cow;127,2842
-class Boo 129,2868
-    enum {dog,Boo::dog130,2880
-    enum {dog, cat}Boo::cat130,2880
-    enum {dog, cat} animals;Boo::animals130,2880
-    struct {int treats;Boo::treats131,2909
-    struct {int treats;} cow;Boo::cow131,2909
-    int i,Boo::i132,2939
-    int i,a,Boo::a132,2939
-    int i,a,b;Boo::b132,2939
-    foo(Boo::foo133,2954
-    Boo(Boo::Boo137,2995
-    Boo(Boo::Boo138,3052
-Boo::Boo(141,3070
-typedef int should_see_this_one_enclosed_in_extern_C;149,3155
-typedef int 
(*should_see_this_function_pointer)should_see_this_function_pointer153,3228
-typedef int should_see_this_array_type[should_see_this_array_type156,3310
+const A::B::T& abt 55,1766
+class A 56,1792
+class A { class B A::B56,1792
+class A { class B { int f(A::B::f56,1792
+class A 57,1827
+  int get_data(A::get_data58,1837
+  A operator+(A::operator+59,1861
+is_muldiv_operation(61,1888
+domain foo 68,1956
+     void f(foo::f69,1969
+void A::A(72,1990
+struct A 73,2005
+struct A { A(A::A73,2005
+struct B 74,2023
+struct B { B(B::B74,2023
+void B::B(75,2042
+void BE_Node::BE_Node(76,2057
+class BE_Node 77,2084
+struct foo 79,2103
+  int x;foo::x80,2116
+class test 86,2157
+  int f(test::f87,2170
+  int ff(test::ff89,2232
+  int g(test::g90,2255
+class  AST_Root 92,2279
+class  AST_Root;96,2328
+AST_ConcreteType::AST_ConcreteType(99,2394
+AST_Array::AST_Array(107,2533
+     void f(::f115,2734
+struct A 117,2754
+    ~A(A::~A118,2765
+A::~A(120,2778
+struct B 122,2790
+    ~B(B::~B123,2801
+enum {dog,::dog126,2818
+enum {dog, cat}::cat126,2818
+enum {dog, cat} animals;126,2818
+struct {int teats;::teats127,2843
+struct {int teats;} cow;127,2843
+class Boo 129,2869
+    enum {dog,Boo::dog130,2881
+    enum {dog, cat}Boo::cat130,2881
+    enum {dog, cat} animals;Boo::animals130,2881
+    struct {int treats;Boo::treats131,2910
+    struct {int treats;} cow;Boo::cow131,2910
+    int i,Boo::i132,2940
+    int i,a,Boo::a132,2940
+    int i,a,b;Boo::b132,2940
+    foo(Boo::foo133,2955
+    Boo(Boo::Boo137,2996
+    Boo(Boo::Boo138,3053
+Boo::Boo(141,3071
+typedef int should_see_this_one_enclosed_in_extern_C;149,3156
+typedef int 
(*should_see_this_function_pointer)should_see_this_function_pointer153,3229
+typedef int should_see_this_array_type[should_see_this_array_type156,3311
 
 cp-src/burton.cpp,103
 ::dummy::dummy test::dummy1(1,0
@@ -3346,10 +3304,12 @@ f-src/entry.strange_suffix,172
      & intensity1(577,12231
        character*(*) function foo(579,12307
 
-f-src/entry.strange,103
-       ENTRY  MSGSEL 193,4382
-     & intensity1(375,8135
-       character*(*) function foo(377,8211
+f-src/entry.strange,171
+      LOGICAL FUNCTION PRTPKG 2,2
+       ENTRY  SETPRT 193,3793
+       ENTRY  MSGSEL 394,8405
+     & intensity1(576,12158
+       character*(*) function foo(578,12234
 
 forth-src/test-forth.fth,408
 : a-forth-word 20,301
@@ -3365,44 +3325,44 @@ constant (a-forth-constant(a-forth-constant38,628
 code assemby-code-word 43,685
 : a-forth-word 50,870
 
-html-src/softwarelibero.html,198
-Cos'� il software libero?4,38
-Licenze d'uso di un programmalicenze65,2474
-Sfatiamo alcuni miti138,6064
-Il movimento open sourceoss191,7968
-Impatto pratico del software liberoimpatto231,9986
+html-src/softwarelibero.html,200
+Cos'è il software libero?4,38
+Licenze d'uso di un programmalicenze65,2500
+Sfatiamo alcuni miti138,6118
+Il movimento open sourceoss191,8037
+Impatto pratico del software liberoimpatto231,10066
 
 html-src/index.shtml,104
 &nbsp;8,281
-In evidenza15,446
-Comunicati e iniziative32,974
-Ultime notizie dall'associazione63,2027
+In evidenza15,447
+Comunicati e iniziative32,976
+Ultime notizie dall'associazione63,2030
 
 html-src/algrthms.html,467
-Tutorial on Convolutional Coding with Viterbi Decoding--Description of the 
Data Generation, Convolutional Encoding, Channel Mapping and AWGN, and 
Quantizing Algorithms7,276
-Descriptionalgorithms10,477
-Generating the Datagenalgorithm48,1953
-Convolutionallyconalgorithm55,2463
-Nextstatetable262,11331
-Outputoutputtable350,13571
-Mapping the Channel Symbolsmapping433,15786
-Adding Noise to theaddnoise439,16174
-Quantizing the Receivedquantizing469,18637
+Tutorial on Convolutional Coding with Viterbi Decoding--Description of the 
Data Generation, Convolutional Encoding, Channel Mapping and AWGN, and 
Quantizing Algorithms7,282
+Descriptionalgorithms10,486
+Generating the Datagenalgorithm48,2000
+Convolutionallyconalgorithm55,2517
+Nextstatetable262,11592
+Outputoutputtable350,13920
+Mapping the Channel Symbolsmapping433,16218
+Adding Noise to theaddnoise439,16612
+Quantizing the Receivedquantizing469,19105
 
-html-src/software.html,438
-Francesco Potort� Software Page9,280
-Software that I wrote for supporting my research activitysimulation36,1400
-MTGmtg41,1484
-Fracasfracas65,2626
-GaliLEOgalileo101,4234
-Leasqrleasqr114,4679
-Free software that I wrote for the GNU project or for my personal or 
workgnu142,6067
-Etagsetags148,6182
-checkiso161,6731
-cgrep178,7549
-debian-bug.eldebian-bug190,7981
-tcpdump205,8566
-Links to interesting softwarelinks216,8893
+html-src/software.html,439
+Francesco Potortì Software Page9,280
+Software that I wrote for supporting my research activitysimulation36,1398
+MTGmtg41,1482
+Fracasfracas65,2624
+GaliLEOgalileo101,4232
+Leasqrleasqr114,4677
+Free software that I wrote for the GNU project or for my personal or 
workgnu142,6065
+Etagsetags148,6180
+checkiso161,6729
+cgrep178,7547
+debian-bug.eldebian-bug190,7979
+tcpdump205,8564
+Links to interesting softwarelinks216,8891
 
 lua-src/allegro.lua,400
 local function get_layer_by_name 7,175
@@ -4807,7 +4767,7 @@ 
Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %
 \global\def={=3306,107486
 \def\normalbackslash{\normalbackslash3320,107868
 
-c-src//c.c,76
+c-src/c.c,76
 T f(1,0
 }T i;2,14
 void bar(5,69
diff --git a/test/etags/Makefile b/test/etags/Makefile
index a0914e4..3f4ad7b 100644
--- a/test/etags/Makefile
+++ b/test/etags/Makefile
@@ -25,7 +25,7 @@ PROLSRC=$(addprefix ./prol-src/,ordsets.prolog natded.prolog)
 PYTSRC=$(addprefix ./pyt-src/,server.py)
 TEXSRC=$(addprefix ./tex-src/,testenv.tex gzip.texi texinfo.tex nonewline.tex)
 YSRC=$(addprefix ./y-src/,parse.y parse.c atest.y cccp.c cccp.y)
-SRCS=Makefile ${ADASRC} ${ASRC} ${CSRC} ${CPSRC} ${ELSRC} ${ERLSRC} ${FSRC}\
+SRCS=${ADASRC} ${ASRC} ${CSRC} ${CPSRC} ${ELSRC} ${ERLSRC} ${FSRC}\
      ${FORTHSRC} ${HTMLSRC} ${JAVASRC} ${LUASRC} ${MAKESRC} ${OBJCSRC}\
      ${OBJCPPSRC} ${PASSRC} ${PHPSRC} ${PERLSRC} ${PSSRC} ${PROLSRC} ${PYTSRC}\
      ${TEXSRC} ${YSRC}
@@ -44,13 +44,31 @@ ARGS=- < srclist
 
 infiles = $(filter-out ${NONSRCS},${SRCS}) srclist regexfile
 
+# This test requires a UTF-8 locale.  Use the current locale if it is UTF-8,
+# else $(UTF8_LOCALE) if it works, else skip this test.
+UTF8_LOCALE = en_US.utf8
+UTF8_ENCODING = yes
+ifneq ($(shell locale -k charmap), charmap="UTF-8")
+  ifeq ($(shell LC_ALL=$(UTF8_LOCALE) locale -k charmap), charmap="UTF-8")
+    export LC_ALL = $(UTF8_LOCALE)
+  else
+    UTF8_ENCODING = no
+  endif
+endif
+
+.PHONY: check ediff_1 ediff_2 ediff_3 ediff_4 ediff_5 cdiff ETAGS CTAGS
+
 check:
+  ifeq ($(UTF8_ENCODING), yes)
        @$(MAKE) OPTIONS='--no-members' ediff_1
        @$(MAKE) OPTIONS='--declarations --no-members' ediff_2
        @$(MAKE) OPTIONS='--members' ediff_3
        @$(MAKE) OPTIONS='address@hidden --no-members' ediff_4
        @$(MAKE) OPTIONS='nonexistent --members --declarations address@hidden' 
ediff_5
        @$(MAKE) cdiff
+  else
+       : 'No locale with UTF-8 found; skipping check'
+  endif
 
 ediff%: ETAGS.good% ETAGS ${infiles}
        diff -u --suppress-common-lines --width=80 ETAGS.good$* ETAGS
@@ -58,10 +76,10 @@ ediff%: ETAGS.good% ETAGS ${infiles}
 cdiff: CTAGS.good CTAGS ${infiles}
        diff -u --suppress-common-lines --width=80 CTAGS.good CTAGS
 
-ETAGS: FRC ${infiles}
+ETAGS: ${infiles}
        ${RUN} ${ETAGS_PROG} ${OPTIONS} -o $@ ${ARGS}
 
-CTAGS: FRC ${infiles}
+CTAGS: ${infiles}
        ${RUN} ${CTAGS_PROG} -o $@ address@hidden ${ARGS}
 
 srclist: Makefile
@@ -70,10 +88,6 @@ srclist: Makefile
 
 regexfile: Makefile
        @echo ' -- This is for GNU Emacs source files' > regexfile
-       @echo '${REGEX}' >> regexfile
-       @echo '{c}${REGEX}\\1/m' >> regexfile
+       @printf '%s\n' '${REGEX}' >> regexfile
+       @printf '%s\n' '{c}${REGEX}\\1/m' >> regexfile
        @echo "regexfile remade"
-
-.PRECIOUS: ETAGS.good CTAGS.good
-
-FRC:;
diff --git a/test/etags/html-src/index.shtml b/test/etags/html-src/index.shtml
index 24f269f..6d8cd85 100644
--- a/test/etags/html-src/index.shtml
+++ b/test/etags/html-src/index.shtml
@@ -8,7 +8,7 @@
 <H3>&nbsp;</H3>        <!-- un po' di spazio in cima -->
 
 <!--
-     La rubrica "in evidenza" va commentata se non c'� niente di serio
+     La rubrica "in evidenza" va commentata se non c'è niente di serio
      da mettere in evidenza
  -->
 <H2>
@@ -23,7 +23,7 @@
   sostenere il <a href="/altri/cortiana.shtml">disegno di legge</a> sul
   software libero dal titolo "<i>Norme in materia di pluralismo
   informatico sulla adozione e la diffusione del software libero e sulla
-  portabilit� dei documenti informatici nella Pubblica
+  portabilità dei documenti informatici nella Pubblica
   Amministrazione</i>" (XIV Legislatura Atto Senato n. 1188).<P>
 
 </ul>
@@ -42,7 +42,7 @@
     ottenere l'esenzione dal bollilno SIAE per la distribuzione di
     software libero a titolo oneroso o gratuito.  <A
     HREF="/altri/semenzato-pieroni.shtml">Qui</A> il disegno di legge
-    Semenzato Pieroni sul diritto d'autore.  E non � finita.
+    Semenzato Pieroni sul diritto d'autore.  E non è finita.
 
   <p></p><li>
     <a href="/altri/adeos.shtml">Salutiamo</a> l'arrivo di ADEOS, kernel
diff --git a/test/etags/html-src/software.html 
b/test/etags/html-src/software.html
index 4d174c6..b5de1e6 100644
--- a/test/etags/html-src/software.html
+++ b/test/etags/html-src/software.html
@@ -6,14 +6,14 @@
     P    { text-indent: 0; text-align: justify }
     DD   { text-indent: 0; text-align: justify }
   --></STYLE>
-  <TITLE>Francesco Potort� Software Page</TITLE>
+  <TITLE>Francesco Potortì Software Page</TITLE>
   <LINK  REV="made" HREF="mailto:address@hidden";>
-  <META NAME="description" CONTENT="Home page of Francesco Potort�.">
+  <META NAME="description" CONTENT="Home page of Francesco Potortì.">
   <META NAME="keywords"
-        CONTENT="Potorti Potort� Potorti' Potorti`
+        CONTENT="Potorti Potortì Potorti' Potorti`
                 satellites MTG fracas simulator LEO MEO GEO
                 GNU emacs etags checkiso debian-bug">
-  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
 </HEAD><BODY>
 
 <CENTER>
diff --git a/test/etags/html-src/softwarelibero.html 
b/test/etags/html-src/softwarelibero.html
index 7aa74c5..1594329 100644
--- a/test/etags/html-src/softwarelibero.html
+++ b/test/etags/html-src/softwarelibero.html
@@ -1,27 +1,27 @@
 <DIV LANG="it" ALIGN="justify">
 
 <H2>
-  Cos'� il software libero?
+  Cos'è il software libero?
 </H2>
 
 <P>
   Il concetto di software libero discende naturalmente da quello di
-  libert� di scambio di idee e di informazioni.  Negli ambienti
-  scientifici, quest'ultimo principio � tenuto in alta considerazione
-  per la fecondit� che ha dimostrato; ad esso infatti � generalmente
+  libertà di scambio di idee e di informazioni.  Negli ambienti
+  scientifici, quest'ultimo principio è tenuto in alta considerazione
+  per la fecondità che ha dimostrato; ad esso infatti è generalmente
   attribuita molta parte dell'eccezionale ed imprevedibile crescita del
   sapere negli ultimi tre secoli.
 </P>
 <P>
-  La libert� di scambio di idee non � tuttavia una questione puramente
-  pratica: essa � anche alla base dei concetti di libert� di pensiero e
-  di espressione.  Analogamente alle idee, il software � immateriale, e
-  pu� essere riprodotto e trasmesso facilmente.  In modo simile a quanto
+  La libertà di scambio di idee non è tuttavia una questione puramente
+  pratica: essa è anche alla base dei concetti di libertà di pensiero e
+  di espressione.  Analogamente alle idee, il software è immateriale, e
+  può essere riprodotto e trasmesso facilmente.  In modo simile a quanto
   avviene per le idee, parte essenziale del processo che sostiene la
-  crescita e l'evoluzione del software � la sua libera diffusione.  Ed
-  ogni giorno di pi�, come le idee, il software permea il tessuto
+  crescita e l'evoluzione del software è la sua libera diffusione.  Ed
+  ogni giorno di più, come le idee, il software permea il tessuto
   sociale e lo influenza, produce effetti etici, economici, politici e
-  in un senso pi� generale culturali.
+  in un senso più generale culturali.
 </P>
 <P>
   Fu Richard M. Stallman, nei primi anni Ottanta, a formalizzare per la
@@ -30,34 +30,34 @@
   href="http://www.it.gnu.org/philosophy/free-sw.it.html";>definizione</A>
   di Stallman, che da subito assurse al ruolo di definizione per
   eccellenza di software libero, assume la forma di quattro principi di
-  libert�:
+  libertà:
 </P>
 <P>
 <DL>
-  <DT>Libert� 0, o libert� fondamentale:
-    <DD>La libert� di eseguire il programma per qualunque scopo, senza
+  <DT>Libertà 0, o libertà fondamentale:
+    <DD>La libertà di eseguire il programma per qualunque scopo, senza
     vincoli sul suo utilizzo.
 
-  <DT>Libert� 1:
-    <DD>La libert� di studiare il funzionamento del programma, e
+  <DT>Libertà 1:
+    <DD>La libertà di studiare il funzionamento del programma, e
     di adattarlo alle proprie esigenze.
 
-  <DT>Libert� 2:
-    <DD>La libert� di redistribuire copie del programma.
+  <DT>Libertà 2:
+    <DD>La libertà di redistribuire copie del programma.
 
-  <DT>Libert� 3:
-    <DD>La libert� di migliorare il programma, e di distribuirne
+  <DT>Libertà 3:
+    <DD>La libertà di migliorare il programma, e di distribuirne
     i miglioramenti.
 </DL>
 </P>
 <P>
-  Il software distribuito con una licenza che rispetti questi principi �
+  Il software distribuito con una licenza che rispetti questi principi è
   detto <Q><EM>software libero</EM></Q> (in inglese <Q><EM>free
   software</EM></Q>).  Nel 1984 Richard M. Stallman <A TITLE="storia
   del progetto GNU"
   HREF="http://www.it.gnu.org/gnu/thegnuproject.it.html";>diede vita al
   progetto GNU</A>, con lo scopo di tradurre in pratica il concetto di
-  software libero, e cre� la <Q>Free Software Foundation</Q> per
+  software libero, e creò la <Q>Free Software Foundation</Q> per
   dare supporto logistico, legale ed economico al progetto GNU.
 </P>
 
@@ -66,19 +66,19 @@
 </A></H3>
 
 <P>
-  La <EM>licenza d'uso</EM> � un documento legale generalmente
+  La <EM>licenza d'uso</EM> è un documento legale generalmente
   distribuito assieme a ogni programma. Essa, appoggiandosi alle norme
   sul diritto d'autore, specifica diritti e doveri di chi riceve tale
   programma.
 </P>
 <P>
   Gran parte delle licenze comunemente usate sono <EM>proprietarie</EM>,
-  cio� non libere, in quanto non garantiscono le quattro libert�. Quasi
+  cioè non libere, in quanto non garantiscono le quattro libertà. Quasi
   sempre tali licenze non consentono infatti la libera copia del
-  programma, n� la sua modifica.  Spesso, se il programma � installato
+  programma, né la sua modifica.  Spesso, se il programma è installato
   sul computer di casa, la licenza impedisce persino di installarlo sul
   proprio portatile (per utilizzare il programma fuori casa); se il
-  programma � utilizzato in uno studio professionale, non consente di
+  programma è utilizzato in uno studio professionale, non consente di
   tenerlo installato su un computer di riserva, nel caso che quello
   principale si guasti.
 </P>
@@ -87,50 +87,50 @@
   TITLE="traduzione della licenza GNU GPL"
   HREF="http://softwarelibero.it/gnudoc/gpl.it.txt";>GNU GPL</A>)</EM>,
   al contrario, concede all'utente del programma tutte e quattro le
-  libert� suddette.  Inoltre si occupa anche di proteggerle: chi
+  libertà suddette.  Inoltre si occupa anche di proteggerle: chi
   modifichi un programma protetto da GPL e lo distribuisca con tali
-  modifiche, deve distribuirlo sotto licenza GPL.  � grazie a questo
-  tipo di protezione che la GPL � attualmente la licenza pi� usata per
+  modifiche, deve distribuirlo sotto licenza GPL.  È grazie a questo
+  tipo di protezione che la GPL è attualmente la licenza più usata per
   il software libero.
 </P>
 <P>
   Con un gioco di parole, il nome dato a questo tipo di protezione
-  � <EM>permesso d'autore</EM> (in inglese <A TITLE="definizione di
+  è <EM>permesso d'autore</EM> (in inglese <A TITLE="definizione di
   copyleft (inglese)" LANG="en"
   HREF="http://www.it.gnu.org/copyleft/copyleft.html";><EM>copyleft</EM></A>):
-  � il criterio che prevede che le modifiche ad un programma possano
+  è il criterio che prevede che le modifiche ad un programma possano
   essere distribuite solo con la stessa licenza del programma originale.
   Le licenze proprietarie usano le norme sul diritto d'autore (copyright
-  in inglese) per togliere libert� agli utenti di un programma; il
-  permesso d'autore usa le stesse norme per garantire quelle libert� e
+  in inglese) per togliere libertà agli utenti di un programma; il
+  permesso d'autore usa le stesse norme per garantire quelle libertà e
   per proteggerle.
 </P>
 <P>
-  La GNU GPL non � unica nel suo genere.  Diverse <A TITLE="lista di
+  La GNU GPL non è unica nel suo genere.  Diverse <A TITLE="lista di
   licenze libere e non"
   HREF="http://www.it.gnu.org/licenses/license-list.it.html";>altre
-  licenze</A> garantiscono le quattro libert� e si possono pertanto
+  licenze</A> garantiscono le quattro libertà e si possono pertanto
   qualificare come licenze per il software libero.  Fra queste, merita
   una speciale menzione per la sua diffusione la <A TITLE="la licenza
   BSD (in inglese)" LANG="en"
   HREF="http://www.freebsd.org/copyright/license.html";>licenza BSD</A>,
-  la cui principale differenza dalla GPL � che, non essendo basata sul
+  la cui principale differenza dalla GPL è che, non essendo basata sul
   permesso d'autore, non ha fra i propri obiettivi quello di proteggere
-  la libert� del software cui � applicata.  Chi infatti modifichi un
-  programma protetto da BSD, pu� distribuirlo con le modifiche usando
+  la libertà del software cui è applicata.  Chi infatti modifichi un
+  programma protetto da BSD, può distribuirlo con le modifiche usando
   qualunque licenza.
 </P>
 <P>
   Sia BSD che GPL hanno pro e contro.  La licenza GPL riflette l'idea
-  della cooperazione: se io concedo ad altri la libert� di modificare e
+  della cooperazione: se io concedo ad altri la libertà di modificare e
   redistribuire il mio programma, costoro sono tenuti a concedere le
-  stesse libert� sulle loro modifiche.  Il problema � che alcuni vedono
+  stesse libertà sulle loro modifiche.  Il problema è che alcuni vedono
   questo vincolo come un'imposizione ingenerosa, se non addirittura una
   restrizione insopportabile.  La licenza BSD riflette l'idea del dono
-  liberale: chiunque pu� fare ci� che meglio crede del mio programma.
-  Il problema � che questo significa che chiunque pu� redistribuire
+  liberale: chiunque può fare ciò che meglio crede del mio programma.
+  Il problema è che questo significa che chiunque può redistribuire
   anche in forma chiusa con una licenza proprietaria un programma BSD
-  modificato, impedendo cos� ai propri acquirenti di modificarlo e
+  modificato, impedendo così ai propri acquirenti di modificarlo e
   redistribuirlo a loro volta.
 </P>
 
@@ -141,24 +141,24 @@
 <P>
 <DL>
 
-  <DT>Il software libero � gratuito
+  <DT>Il software libero è gratuito
 
-    <DD>� falso: la libert� del software non ha nulla a che vedere con
-    il suo prezzo.  Bench� gran parte del software libero pi� diffuso
+    <DD>È falso: la libertà del software non ha nulla a che vedere con
+    il suo prezzo.  Benché gran parte del software libero più diffuso
     sia distribuito gratuitamente, ci sono programmatori che vivono
     della vendita e della manutenzione dei programmi liberi da loro
     creati.
 
-  <DT>Il software gratuito � libero
+  <DT>Il software gratuito è libero
 
-    <DD>� falso.  Molti programmi proprietari vengono distribuiti
+    <DD>È falso.  Molti programmi proprietari vengono distribuiti
     gratuitamente.
 
-  <DT>Il software libero � privo di copyright
+  <DT>Il software libero è privo di copyright
 
-    <DD>� falso.  Bench� si possa rinunciare al copyright su un proprio
-    programma e renderlo cos� di pubblico dominio, la gran parte del
-    software libero � distribuito con una licenza.  Per esempio, sono
+    <DD>È falso.  Benché si possa rinunciare al copyright su un proprio
+    programma e renderlo così di pubblico dominio, la gran parte del
+    software libero è distribuito con una licenza.  Per esempio, sono
     licenze di copyright la licenza BSD e la GNU GPL, anche se per
     qualificare quest'ultima spesso si parla di permesso d'autore
     (copyleft).
@@ -167,17 +167,17 @@
   amministrazione, ma anche nei paesi poveri, ridurrebbe i costi
   relativi al software
 
-    <DD>Potrebbe essere vero, ma una seria valutazione dei costi � molto
+    <DD>Potrebbe essere vero, ma una seria valutazione dei costi è molto
     difficile.  Qualunque tipo di software, se usato in ambito non
     domestico, ha dei costi di manutenzione che sono solitamente
     maggiori del suo prezzo di acquisto.  I motivi per sostenere l'uso
     del software libero, specie in ambiti pubblici, riguardano anzitutto
-    la libert�, non il prezzo.
+    la libertà, non il prezzo.
 
 <!-- Discorso inadatto ad un documento introduttivo
   <DT>Chi scrive un programma libero lo deve pubblicare su Internet
 
-    <DD>� una falsa argomentazione spesso usata per scoraggiare
+    <DD>È una falsa argomentazione spesso usata per scoraggiare
     un'azienda dall'uso di una licenza libera per i suoi programmi.
     Sia gli autori che gli acquirenti di un programma libero hanno il
     diritto di distribuirlo a titolo oneroso o gratuito, ma non hanno
@@ -192,16 +192,16 @@
 </A></H3>
 
 <P>
-  Nel 1998 Bruce Perens, Eric Raymond e altre personalit� nel campo del
-  software libero si convinsero che i principi di libert� associati ad
+  Nel 1998 Bruce Perens, Eric Raymond e altre personalità nel campo del
+  software libero si convinsero che i principi di libertà associati ad
   esso fossero malvisti nel mondo degli affari, a causa della loro
-  carica ideologica.  Decisero perci� di evitare accuratamente ogni
+  carica ideologica.  Decisero perciò di evitare accuratamente ogni
   riferimento a considerazioni politiche o di principio, e di lanciare
   una campagna di promozione del software libero che ne mettesse in luce
   i numerosi <A TITLE="un discorso di Robert Chassell di FSF"
   HREF="http://softwarelibero.it/altri/economia-sl.shtml";>vantaggi
-  pratici</A>, come la facilit� di adattamento, l'affidabilit�, la
-  sicurezza, la conformit� agli standard, l'indipendenza dai singoli
+  pratici</A>, come la facilità di adattamento, l'affidabilità, la
+  sicurezza, la conformità agli standard, l'indipendenza dai singoli
   fornitori.  A tal fine scrissero la <Q><A TITLE="la definizione di
   Open Source (in inglese)" LANG="en"
   HREF="http://www.opensource.org/docs/definition.html";>Open Source
@@ -210,19 +210,19 @@
   HREF="http://opensource.org/";><EM>open source</EM></A>.
 </P>
 <P>
-  Il movimento open source fu un successo, e contribu� a sdoganare il
+  Il movimento open source fu un successo, e contribuì a sdoganare il
   concetto di software libero in campo aziendale, dove era guardato con
-  sospetto o condiscendenza.  Un esempio di questo successo �
+  sospetto o condiscendenza.  Un esempio di questo successo è
   l'atteggiamento dell'IBM, l'azienda che ha fatto di gran lunga i
   maggiori investimenti nel campo del software libero, la quale parla
   esclusivamente di open source, mai di software libero.
 </P>
 <P>
-  La voluta neutralit� del movimento open source verso gli aspetti
-  etici e politici del software libero � la caratteristica sostanziale
+  La voluta neutralità del movimento open source verso gli aspetti
+  etici e politici del software libero è la caratteristica sostanziale
   che lo distingue dalla filosofia del software libero, che al contrario
   pone l'accento sulle motivazioni ideali.  Parlare di software libero
-  piuttosto che di open source � una questione politica piuttosto che
+  piuttosto che di open source è una questione politica piuttosto che
   pratica; i due movimenti concordano infatti sulle licenze considerate
   accettabili, ed hanno obiettivi e mezzi comuni.
 </P>
@@ -235,7 +235,7 @@
   La <A TITLE="usi commerciali del software libero, di Alessandro
   Rubini"
   
HREF="http://www.it.gnu.org/philosophy/software-libre-commercial-viability.it.html";>rilevanza
-  economica</A> del software libero � ancora molto ridotta, ma � in
+  economica</A> del software libero è ancora molto ridotta, ma è in
   fortissima crescita ormai da alcuni anni, e tutto consente di supporre
   che tale crescita <A TITLE="prospettive del software libero, gruppo di
   studio dell'UE"
@@ -246,7 +246,7 @@
   tecnici ed economici</A> del software libero.
 </P>
 <P>
-  Ad oggi, il software libero � ampiamente diffuso in ambito accademico,
+  Ad oggi, il software libero è ampiamente diffuso in ambito accademico,
   industriale e fra gli appassionati di calcolatori, soprattutto grazie
   ai sistemi GNU/Linux.  Questi sistemi liberi sono disponibili a costi
   molto bassi, ben inferiori a quelli di analoghi sistemi proprietari.
@@ -254,40 +254,40 @@
   buona cultura di base nel campo del software.
 </P>
 <P>
-  In ambito accademico viene molto apprezzata la possibilit� di
+  In ambito accademico viene molto apprezzata la possibilità di
   personalizzare ogni parte del sistema, visto che i programmi liberi
-  sono liberamente modificabili (libert� numero uno).  In ambito
-  industriale, si apprezza l'affidabilit� dei sistemi liberi, dovuta al
+  sono liberamente modificabili (libertà numero uno).  In ambito
+  industriale, si apprezza l'affidabilità dei sistemi liberi, dovuta al
   fatto che quando un utente corregge un errore in un programma
-  solitamente rende disponibile la correzione agli altri utenti (libert�
+  solitamente rende disponibile la correzione agli altri utenti (libertà
   numero tre).  Gli appassionati di calcolatori apprezzano lo spirito di
   condivisione esistente fra gli utenti di software libero.
 </P>
 <P>
   Ma le implicazioni dell'uso del software libero non sono soltanto
-  tecniche ed economiche, perch� il software da tempo ormai � avviato ad
-  occupare un ruolo di primo piano nella nostra vita quotidiana, ed �
-  destinato a cambiare in maniera profonda la societ�.
+  tecniche ed economiche, perché il software da tempo ormai è avviato ad
+  occupare un ruolo di primo piano nella nostra vita quotidiana, ed è
+  destinato a cambiare in maniera profonda la società.
 </P>
 <P>
-  � per queste ragioni che la nostra libert� futura dipender� anche
-  dalla capacit� di ognuno di noi di controllare il software.  � per
-  queste ragioni che ai tradizionali principi di libert� sessuale, di
-  culto, di movimento, di espressione deve essere affiancata la libert�
-  del software.  � per queste ragioni che la nostra libert� futura
-  dipender� anche dall'uso di software libero.
+  È per queste ragioni che la nostra libertà futura dipenderà anche
+  dalla capacità di ognuno di noi di controllare il software.  È per
+  queste ragioni che ai tradizionali principi di libertà sessuale, di
+  culto, di movimento, di espressione deve essere affiancata la libertà
+  del software.  È per queste ragioni che la nostra libertà futura
+  dipenderà anche dall'uso di software libero.
 </P>
 
 <P>
   <EM>scritto da <A TITLE="address@hidden"
-  HREF="mailto:address@hidden";>Francesco Potort�</A> per l'<A
+  HREF="mailto:address@hidden";>Francesco Potortì</A> per l'<A
   TITLE="il sito dell'Associazione Software Libero"
   HREF="http://softwarelibero.it/";>Associazione Software
   Libero</A></EM>
 </P>
 <HR NOSHADE>
 <P>
-  Copyright &copy; 2002 Francesco Potort�
+  Copyright &copy; 2002 Francesco Potortì
   <BR>
   Ultima versione ipertestuale disponibile su <A TITLE="versione
   stampabile"
@@ -305,7 +305,7 @@ time-stamp-active: t
 time-stamp-time-zone: "GMT"
 time-stamp-format: "%:y-%02m-%02d"
 time-stamp-line-limit: 30
-time-stamp-start: "ultima\\s-+modifica\\s-+�\\s-+del\\s-+"
+time-stamp-start: "ultima\\s-+modifica\\s-+è\\s-+del\\s-+"
 time-stamp-end: "\\."
 End:
 -->



reply via email to

[Prev in Thread] Current Thread [Next in Thread]