In addition to Windows patches, there's also tweaks for the manuals.

convert.pl

  Strip @begin_verbatim & @end_verbatim from the c converter
  - remove from global's help message.

  Escape an initial '.' in the man converter
  - I've added an ellipsis (...) to the global nearness table.

  Remove leading white space in info examples
  - the nearness table was indented too much.

*/manual.in

  Wrapped lines to keep the help messages to 80 columns.
  Fixed typos.

gtags-cscope

  Finally fixed Ctrl+C (and properly restore the screen on exit, via a
  PDCurses patch).

gtags.conf.in

  The language is "CoffeeScript" for Universal Ctags.  It might be better
  to create a separate section for Exuberant Ctags, to avoid its unknown
  language warning.

htags-server

  Change "access to" to "access at".  This just seems like a duplicate of
  the "Serving..." line - easier to copy?  It also seems out of place,
  perhaps it might be better on the server line (e.g. "Python2 http/cgi
  server at http://...";) or after it instead of before.

libutil/makepath.c

  Implement "~/" for Windows ("~user/" won't work).

libutil/nearsort.c

  Include "path.h" to get the prototype of realpath.

plugin-factor/exuberant-ctags.c

  String concatenation doesn't work with commas getting in the way. :)

-- 
Jason.
diff -urp global-6.5.2/convert.pl global-6.5-2/convert.pl
--- global-6.5.2/convert.pl     2015-12-16 15:02:48 +1000
+++ global-6.5-2/convert.pl     2015-12-29 16:44:51 +1000
@@ -170,6 +170,9 @@ sub convert {
        while (s/\@xref\{($arg),($arg)\}/$1($2)/) {
                ;
        }
+       while (s/\@(begin|end)_verbatim//) {
+               ;
+       }
 }
 sub gen {
        local($help_const) = 0;
@@ -266,6 +269,7 @@ sub convert {
        s/\@{/{/g;
        s/\@}/}/g;
        s/\@br$/\n.br/;
+       s/^\./\\&./;
 }
 sub gen {
        local($arg) = '[^,]+';
@@ -391,6 +395,7 @@ sub gen {
                                } elsif ($verbatim) {
                                        s/\{/@\{/g;
                                        s/\}/@\}/g;
+                                       s/^\s+//;
                                        print;
                                        next;
                                } elsif (/^\@/) {
diff -urp global-6.5.2/global/manual.in global-6.5-2/global/manual.in
--- global-6.5.2/global/manual.in       2015-12-16 15:02:48 +1000
+++ global-6.5-2/global/manual.in       2015-12-29 15:56:22 +1000
@@ -100,7 +100,7 @@
                Use color to highlight the pattern within the line; @arg{when} 
may be one of:
                @arg{never}, @arg{always} or @arg{auto} (default).
                The default color is bold red text on current background; the 
environment
-               variable @var{GREP_COLORS}(only @var{mt} and @var{ms} are 
effective at present)
+               variable @var{GREP_COLORS} (only @var{mt} and @var{ms} are 
effective at present)
                or @var{GREP_COLOR} defines it.
                This option is effective to the following commands:
                <no command>, -f, -g, -I, -P.
@@ -116,8 +116,8 @@
                two-digit hexadecimal representation of the character.
                A blank will be converted to @samp{%20}.
        @item{@option{-F}, @option{--first-match}}
-               End the search without go through all the tag files listed in 
@var{GTAGSLIBPATH}
-               when tags are found in a tag file. This is the default.
+               End the search without going through all the tag files listed in
+               @var{GTAGSLIBPATH} when tags are found in a tag file. This is 
the default.
        @item{@option{--from-here} @arg{context}}
                Decide tag type by @arg{context}, which must be 
@samp{lineno:path}.
                If this option is specified then @option{-s} and @option{-r} 
are ignored.
@@ -157,14 +157,14 @@
                This option is effective for the tag search command, 
@option{-P} command
                and @option{-g} command. As an exception, @option{-g} command 
ignores this
                option when files are specified by arguments.
-               The nearness is defined by how many parent directories to go up 
to rearch
-               the target. The result of nearness sort is concatenation of the 
followings
+               The nearness is defined by how many parent directories to go up 
to reach
+               the target. The result of nearness sort is concatenation of the 
following
                ([1]-[n]) in this order. The default of @arg{start} is the 
current directory.
                @begin_verbatim
                [1] Output of local search in the start directory.
                [2] Output of local search in the parent directory except for 
[1].
                [3] Output of local search in the grandparent directory except 
for [1]-[2].
-               (repeat until the project root directory)
+               ... (repeat until the project root directory)
                [n] Output of local search in the project root directory except 
for [1]-[n-1].
                @end_verbatim
                In each directory, they are sorted by alphabetical order.
@@ -235,9 +235,9 @@
        main              10 src/main.c  main (argc, argv) {
        $ global -f src/main.c
        main              10 src/main.c  main (argc, argv) {
-       func1             55 src/main.c  func1() {                
-       func2             72 src/main.c  func2() {                
-       func3            120 src/main.c  func3() {                
+       func1             55 src/main.c  func1() {
+       func2             72 src/main.c  func2() {
+       func3            120 src/main.c  func3() {
        $ global -x '^[sg]et'
        set_num           20 lib/util.c  set_num(values) {
        get_num           30 lib/util.c  get_num() {
diff -urp global-6.5.2/gtags/manual.in global-6.5-2/gtags/manual.in
--- global-6.5.2/gtags/manual.in        2015-12-16 15:02:48 +1000
+++ global-6.5-2/gtags/manual.in        2015-12-29 12:56:05 +1000
@@ -54,12 +54,11 @@
                Print the value of config variable @arg{name}.
                If @arg{name} is not specified then print all names and values.
                In addition to the variables listed in the ENVIRONMENT section,
-               you can refer install directories by read only variables:
-               @var{bindir}, @var{libdir}, @var{datadir}, @var{localstatedir}
-               and @var{sysconfdir}.
+               you can refer to install directories by read only variables:
+               @var{bindir}, @var{libdir}, @var{datadir}, @var{localstatedir} 
and @var{sysconfdir}.
        @item{@option{-d}, @option{--dump} @arg{tag-file}}
-               Dump a tag file as text to the standard output. Output format 
is 'key<tab>data'.
-               This is for debugging.
+               Dump a tag file as text to the standard output. Output format is
+               'key<tab>data'. This is for debugging.
        @item{@option{--explain}}
                Explain handling files.
        @item{@option{-f}, @option{--file} @arg{file}}
diff -urp global-6.5.2/gtags-cscope/input.c global-6.5-2/gtags-cscope/input.c
--- global-6.5.2/gtags-cscope/input.c   2015-12-16 15:02:48 +1000
+++ global-6.5-2/gtags-cscope/input.c   2016-01-01 16:00:49 +1000
@@ -48,6 +48,11 @@
 #if HAVE_SYS_TERMIOS_H
 #include <sys/termios.h>
 #endif
+#if defined(_WIN32) && !defined(__CYGWIN__)
+#define WIN32_LEAN_AND_MEAN
+#define __OBJC__       /* work around BOOL redefinition */
+#include <windows.h>
+#endif
 
 static jmp_buf env;            /**< setjmp/longjmp buffer */
 static int     prevchar;       /**< previous, ungotten character */
@@ -78,12 +83,21 @@ myungetch(int c)
 int
 mygetch(void)
 {
+#if !defined(_WIN32) || !defined(__CYGWIN__)
+    /* longjmp won't work, it's in a different thread */
     sighandler_t savesig; /* old value of signal */
+#endif
     int c;
 
     /* change an interrupt signal to a break key character */
     if (setjmp(env) == 0) {
+#if defined(_WIN32) && !defined(__CYGWIN__)
+       /* turn off Ctrl+C handling (PDCurses does this, but it gets turned on
+          again by CMD during system) */
+       SetConsoleMode( GetStdHandle( STD_INPUT_HANDLE ), 0 );
+#else
        savesig = signal(SIGINT, catchint);
+#endif
        refresh();      /* update the display */
        mousereinit();  /* curses can change the menu number */
        if(prevchar) {
@@ -101,7 +115,9 @@ mygetch(void)
     } else {   /* longjmp to here from signal handler */
        c = KEY_BREAK;
     }
+#if !defined(_WIN32) || !defined(__CYGWIN__)
     signal(SIGINT, savesig);
+#endif
     return(c);
 }
 
diff -urp global-6.5.2/gtags.conf.in global-6.5-2/gtags.conf.in
--- global-6.5.2/gtags.conf.in  2015-12-16 15:02:48 +1000
+++ global-6.5-2/gtags.conf.in  2016-01-01 18:33:25 +1000
@@ -120,7 +120,7 @@ universal-ctags|exuberant-ctags|plugin-e
        :langmap=WindRes\:.rc:\
        :langmap=YACC\:.y:\
        :langmap=Zephir\:.zep:\
-       :langmap=coffee\:.coffee:\
+       :langmap=CoffeeScript\:.coffee:\
        :langmap=ctags\:.ctags:\
        :langmap=gdbinit\:.gdb.gdbinit:\
        :langmap=m4\:.m4.spt:\
@@ -182,7 +182,7 @@ universal-ctags|exuberant-ctags|plugin-e
        :gtags_parser=WindRes\:$ctagslib:\
        :gtags_parser=YACC\:$ctagslib:\
        :gtags_parser=Zephir\:$ctagslib:\
-       :gtags_parser=coffee\:$ctagslib:\
+       :gtags_parser=CoffeeScript\:$ctagslib:\
        :gtags_parser=ctags\:$ctagslib:\
        :gtags_parser=gdbinit\:$ctagslib:\
        :gtags_parser=m4\:$ctagslib:
diff -urp global-6.5.2/htags/manual.in global-6.5-2/htags/manual.in
--- global-6.5.2/htags/manual.in        2015-12-16 15:02:48 +1000
+++ global-6.5-2/htags/manual.in        2015-12-29 12:58:25 +1000
@@ -112,7 +112,8 @@
                You can choose the position using @arg{position},
                which allows one of @val{before}, @val{right} or @val{after} 
(default).
        @item{@option{--html-header} @arg{file}}
-               Insert a header record derived from @arg{file} into the HTML 
header of each file.
+               Insert a header record derived from @arg{file}
+               into the HTML header of each file.
        @item{@option{-I}, @option{--icon}}
                Use icons instead of text for some links.
        @item{@option{--insert-footer} @arg{file}}
@@ -141,8 +142,8 @@
                Make anchors not only for definitions and references
                but also other symbols.
        @item{@option{--show-position}}
-               Print the position string per function definition. The string 
can be interpreted
-               by general editors in UNIX. The default is false.
+               Print the position string per function definition. The string 
can be
+               interpreted by general editors in UNIX. The default is false.
        @item{@option{--statistics}}
                Print statistics information.
        @item{@option{--suggest}}
diff -urp global-6.5.2/htags-server/htags-server 
global-6.5-2/htags-server/htags-server
--- global-6.5.2/htags-server/htags-server      2015-12-16 15:02:48 +1000
+++ global-6.5-2/htags-server/htags-server      2015-12-29 10:42:29 +1000
@@ -25,7 +25,7 @@ name=htags-server
 # HTTP/CGI servers
 #
 python2_server() {
-       echo "Please access to 'http://$2:$3'"
+       echo "Please access at 'http://$2:$3'"
        echo "Python2 http/cgi server"
        echo "Serving HTTP on $2 port $3 ..."
        "$1" <<-!
@@ -36,12 +36,12 @@ python2_server() {
        !
 }
 python3_server() {
-       echo "Please access to 'http://$2:$3'"
+       echo "Please access at 'http://$2:$3'"
        echo "Python3 http/cgi server"
        "$1" -m http.server --cgi --bind $2 $3
 }
 ruby_server() {
-       echo "Please access to 'http://$2:$3'"
+       echo "Please access at 'http://$2:$3'"
        echo "Ruby WEBrick http/cgi server"
        echo "Serving HTTP on $2 port $3 ..."
        "$1" <<-!
diff -urp global-6.5.2/libutil/makepath.c global-6.5-2/libutil/makepath.c
--- global-6.5.2/libutil/makepath.c     2015-12-16 15:02:48 +1000
+++ global-6.5-2/libutil/makepath.c     2015-12-29 12:15:13 +1000
@@ -95,6 +95,7 @@ makepath(const char *dir, const char *fi
                die("path name too long. '%s'\n", strbuf_value(sb));
        return strbuf_value(sb);
 }
+#if !defined(_WIN32) || defined(__CYGWIN__)
 #include <sys/types.h>
 #include <pwd.h>
 #include <limits.h>
@@ -157,6 +158,29 @@ makepath_with_tilde(const char *file)
        case '/':
                return file;
        default:
+#if defined(_WIN32) || defined(__DJGPP__)
+               if (isabspath(file))
+                       return file;
+#endif
                return NULL;    /* cannot accept */
        }
 }
+#else /* Win32 */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+const char *
+makepath_with_tilde(const char *file)
+{
+       if (isabspath(file))
+               return file;
+
+       if (*file == '~' && (file[1] == '/' || file[1] == '\\')) {
+               char home[MAX_PATH];
+               if (GetEnvironmentVariable("HOME", home, sizeof(home)) ||
+                   GetEnvironmentVariable("USERPROFILE", home, sizeof(home)))
+                       return makepath(home, file + 2, NULL);
+       }
+
+       return NULL;    /* cannot accept */
+}
+#endif
diff -urp global-6.5.2/libutil/nearsort.c global-6.5-2/libutil/nearsort.c
--- global-6.5.2/libutil/nearsort.c     2015-12-16 15:02:48 +1000
+++ global-6.5-2/libutil/nearsort.c     2015-12-29 12:20:29 +1000
@@ -32,6 +32,7 @@
 
 #include "getdbpath.h"
 #include "gparam.h"
+#include "path.h"
 #include "locatestring.h"
 #include "nearsort.h"
 
diff -urp global-6.5.2/plugin-factory/exuberant-ctags.c 
global-6.5-2/plugin-factory/exuberant-ctags.c
--- global-6.5.2/plugin-factory/exuberant-ctags.c       2015-12-16 15:02:48 
+1000
+++ global-6.5-2/plugin-factory/exuberant-ctags.c       2015-12-31 17:39:33 
+1000
@@ -84,15 +84,15 @@ copy_langmap_converting_cpp(char *dst, c
 static HANDLE pid;
 static char argv[] = "ctags "
 #if defined(USE_EXTRA_FIELDS)
-       "--_xformat=%R %-16N %4n %-16F %C",
-       "--extra=+r",
-       "--fields=+r",
+       "\"--_xformat=%R %-16N %4n %-16F %C\" "
+       "--extra=+r "
+       "--fields=+r "
 #else
-       "--format=1",
+       "--format=1 "
 #endif
-       "-xu",
-       "--filter",
-       "--filter-terminator=" TERMINATOR "\n",
+       "-xu "
+       "--filter "
+       "\"--filter-terminator=" TERMINATOR "\n\" "
        LANGMAP_OPTION;
 static void
 start_ctags(const struct parser_param *param)
_______________________________________________
Bug-global mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-global

Reply via email to