diff -c ctags/CHANGES ctags-2.0.1/CHANGES *** ctags/CHANGES Wed Feb 18 00:25:27 1998 --- ctags-2.0.1/CHANGES Thu Feb 19 23:07:46 1998 *************** *** 1,8 **** Exuberant Ctags =============== ! 2.0 (98-Feb 18): ! ---------------- Added support for C++. Added ability to include tags for each source file to allow jumping to a --- 1,8 ---- Exuberant Ctags =============== ! 2.0.1 (98-Feb-19): ! ------------------ Added support for C++. Added ability to include tags for each source file to allow jumping to a diff -c ctags/COPYING ctags-2.0.1/COPYING *** ctags/COPYING Wed Feb 18 08:55:06 1998 --- ctags-2.0.1/COPYING Fri Feb 20 00:17:43 1998 *************** *** 11,16 **** GNU General Public License for more details. You can obtain a copy of the GNU General Public License from ! http://fly.hiwaay.net/~darren/ctags/gpl.html, or by writing to the ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, ! MA 02111-1307 USA --- 11,17 ---- GNU General Public License for more details. You can obtain a copy of the GNU General Public License from ! the GNU web site at http://www.gnu.org/copyleft/gpl.html, or from the ! Exuberant Ctags web site at http://home.hiwaay.net/~darren/ctags/gpl.html, ! or by writing to the Free Software Foundation, Inc., 59 Temple Place, ! Suite 330, Boston, MA 02111-1307 USA diff -c ctags/MANIFEST ctags-2.0.1/MANIFEST *** ctags/MANIFEST Mon Oct 13 23:45:03 1997 --- ctags-2.0.1/MANIFEST Thu Feb 19 23:04:06 1998 *************** *** 1,9 **** All packages include these files: - ANNOUNCE A public announcement for Exuberant Ctags CHANGES Package change history COPYING Terms of distribution (GNU GPL) ! MANIFEST This file, itself. INSTALL Installation instructions INSTALL.DOS Installation instructions for MSDOS, Windows, OS/2 and Amiga QUOTES A collection of enthusiastic user feedback for Exuberant Ctags --- 1,9 ---- All packages include these files: CHANGES Package change history COPYING Terms of distribution (GNU GPL) ! FAQ Frequently Asked Questions ! MANIFEST This file, itself INSTALL Installation instructions INSTALL.DOS Installation instructions for MSDOS, Windows, OS/2 and Amiga QUOTES A collection of enthusiastic user feedback for Exuberant Ctags *************** *** 35,41 **** mkinstalldirs A Bourne shell script for creating installation directories strstr.c For old UNIX hosts which do not support this library function ! The packages distributed with pre-compiled executables (e.g. MS-DOS, MS-WIN, OS/2) also include these files: ctags.exe The platform-dependant executable --- 35,41 ---- mkinstalldirs A Bourne shell script for creating installation directories strstr.c For old UNIX hosts which do not support this library function ! The packages distributed with pre-compiled executables (e.g. MS-DOS, Win95/NT, OS/2) also include these files: ctags.exe The platform-dependant executable diff -c ctags/ctags.h ctags-2.0.1/ctags.h *** ctags/ctags.h Tue Feb 17 23:40:41 1998 --- ctags-2.0.1/ctags.h Thu Feb 19 23:09:12 1998 *************** *** 51,57 **** = General defines ============================================================================*/ #ifndef PROGRAM_VERSION ! # define PROGRAM_VERSION "2.0" #endif #define PROGRAM_NAME "Exuberant Ctags" #define PROGRAM_URL "http://home.hiwaay.net/~darren/ctags" --- 51,57 ---- = General defines ============================================================================*/ #ifndef PROGRAM_VERSION ! # define PROGRAM_VERSION "2.0.1" #endif #define PROGRAM_NAME "Exuberant Ctags" #define PROGRAM_URL "http://home.hiwaay.net/~darren/ctags" diff -c ctags/ctags.lsm ctags-2.0.1/ctags.lsm *** ctags/ctags.lsm Wed Feb 18 00:36:46 1998 --- ctags-2.0.1/ctags.lsm Thu Feb 19 23:06:06 1998 *************** *** 1,7 **** Begin3 Title: Exuberant Ctags ! Version: 2.0 ! Entered-date: 18FEB98 Description: A better ctags which generates tags for all possible tag types: macro definitions, enumerated values (values inside enum{...}), function and method definitions, enum/struct/union --- 1,7 ---- Begin3 Title: Exuberant Ctags ! Version: 2.0.1 ! Entered-date: 19FEB98 Description: A better ctags which generates tags for all possible tag types: macro definitions, enumerated values (values inside enum{...}), function and method definitions, enum/struct/union *************** *** 14,24 **** Keywords: ctags etags tags Exuberant C C++ tool utility source index Author: darren@hiebert.com (Darren Hiebert) Primary-site: sunsite.unc.edu /pub/Linux/devel/lang/c ! 83kB ctags-2.0.tar.gz Alternate-site: ftp://ftp.hmi.com/pub/ctags ! 83kB ctags-2.0.tar.gz Original-site: http://home.hiwaay.net/~darren/ctags ! 83kB archives/ctags-2.0.tar.gz Platforms: UNIX, MSDOS, QNX, Windows 95/NT, OS/2, Amiga Copying-policy: GNU General Public License End --- 14,24 ---- Keywords: ctags etags tags Exuberant C C++ tool utility source index Author: darren@hiebert.com (Darren Hiebert) Primary-site: sunsite.unc.edu /pub/Linux/devel/lang/c ! 83kB ctags-2.0.1.tar.gz Alternate-site: ftp://ftp.hmi.com/pub/ctags ! 83kB ctags-2.0.1.tar.gz Original-site: http://home.hiwaay.net/~darren/ctags ! 83kB archives/ctags-2.0.1.tar.gz Platforms: UNIX, MSDOS, QNX, Windows 95/NT, OS/2, Amiga Copying-policy: GNU General Public License End diff -c ctags/entry.c ctags-2.0.1/entry.c *** ctags/entry.c Sat Feb 7 00:34:03 1998 --- ctags-2.0.1/entry.c Wed Feb 18 21:47:20 1998 *************** *** 57,62 **** --- 57,63 ---- static boolean includeTag __ARGS((const tagScope scope, const tagType type)); static void makeTagEntry __ARGS((const tagInfo *const tag, const memberInfo *const pMember, const tagScope scope, const tagType type, const boolean useLineNumber)); static void writePseudoTag __ARGS((const char *const tagName, const char *const fileName, const char *const pattern)); + static void updateSortedFlag __ARGS((const char *const line, FILE *const fp, const boolean startOfLine)); /*============================================================================ = Function definitions *************** *** 472,477 **** --- 473,500 ---- } } + static void updateSortedFlag( line, fp, startOfLine ) + const char *const line; + FILE *const fp; + const boolean startOfLine; + { + const char *const tab = strchr(line, '\t'); + + if (tab != NULL) + { + const size_t boolOffset = tab - line + 1; /* where it should be */ + + if (line[boolOffset] == '0' || line[boolOffset] == '1') + { + const long nextLine = ftell(fp); + + fseek(fp, startOfLine + boolOffset, SEEK_SET); + fputc(Option.sorted ? '1' : '0', fp); + fseek(fp, nextLine, SEEK_SET); + } + } + } + /* Look through all line beginning with "!_TAG_FILE", and update those which * require it. */ *************** *** 491,527 **** rewind(fp); line = readLine(&TagFile.line, fp); while (line != NULL && line[0] == class[0]) if (strncmp(line, class, classLength) == 0) { char tab, classType[16]; - ++linesRead; if (sscanf(line + classLength, "%15s%c", classType, &tab) == 2 && tab == '\t') { if (strcmp(classType, "_SORTED") == 0) ! { ! const size_t boolOffset = ! (const char *)strchr(line, '\t') - line + 1; ! ! if (line[boolOffset] == '0' || line[boolOffset] == '1') ! { ! const long nextLine = ftell(fp); ! ! fseek(fp, startOfLine + boolOffset, SEEK_SET); ! fputc(Option.sorted ? '1' : '0', fp); ! fseek(fp, nextLine, SEEK_SET); ! } ! } ! #if 0 /* not yet necessary */ ! else if (strcmp(classType, "_FORMAT") == 0) ! { ! } ! #endif } startOfLine = ftell(fp); - line = readLine(&TagFile.line, fp); } while (line != NULL) /* skip to end of file */ { ++linesRead; --- 514,535 ---- rewind(fp); line = readLine(&TagFile.line, fp); while (line != NULL && line[0] == class[0]) + { + ++linesRead; if (strncmp(line, class, classLength) == 0) { char tab, classType[16]; if (sscanf(line + classLength, "%15s%c", classType, &tab) == 2 && tab == '\t') { if (strcmp(classType, "_SORTED") == 0) ! updateSortedFlag(line, fp, startOfLine); } startOfLine = ftell(fp); } + line = readLine(&TagFile.line, fp); + } while (line != NULL) /* skip to end of file */ { ++linesRead; .