This patch resolved one problem in the tab-complete.c on MSVC. The VA_ARGS_NARGS macros now work correctly on Windows.

Victor Spirin
Postgres Professional:http://www.postgrespro.com
The Russian Postgres Company

25.10.2019 0:53, Victor Spirin пишет:
Yes, I found, that VA_ARGS_NARGS(__ VA_ARGS__) macros always return 1 on Windows.

Victor Spirin
Postgres Professional:http://www.postgrespro.com
The Russian Postgres Company

25.10.2019 0:48, Tom Lane пишет:
Victor Spirin <v.spi...@postgrespro.ru> writes:
I found some problem with tab-complete in the 12 version.  I checked
this in the Windows.
This change seems to break the case intended by the comment,
ie given the context

    SELECT * FROM tablename WHERE <tab>

we want to offer the columns of "tablename" as completions.

I'd be the first to agree that that's completely lame, as there
are any number of related cases it fails to cover ... but this
patch isn't making it better.

            regards, tom lane




diff --git a/src/include/c.h b/src/include/c.h
index edc7822b0f..ed7099164b 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -238,6 +238,19 @@
  * the call so that that is the appropriate one of the list of constants.
  * This idea is due to Laurent Deniau.
  */
+#ifdef _MSC_VER
+#define EXPAND(args) args
+#define VA_ARGS_NARGS(...) \
+       VA_ARGS_NARGS_ EXPAND((__VA_ARGS__, \
+                                  63,62,61,60,                   \
+                                  59,58,57,56,55,54,53,52,51,50, \
+                                  49,48,47,46,45,44,43,42,41,40, \
+                                  39,38,37,36,35,34,33,32,31,30, \
+                                  29,28,27,26,25,24,23,22,21,20, \
+                                  19,18,17,16,15,14,13,12,11,10, \
+                                  9, 8, 7, 6, 5, 4, 3, 2, 1, 0))
+#else
+
 #define VA_ARGS_NARGS(...) \
        VA_ARGS_NARGS_(__VA_ARGS__, \
                                   63,62,61,60,                   \
@@ -247,6 +260,8 @@
                                   29,28,27,26,25,24,23,22,21,20, \
                                   19,18,17,16,15,14,13,12,11,10, \
                                   9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
+#endif
+
 #define VA_ARGS_NARGS_( \
        _01,_02,_03,_04,_05,_06,_07,_08,_09,_10, \
        _11,_12,_13,_14,_15,_16,_17,_18,_19,_20, \

Reply via email to