Hello, everyone!

Problem described in detail in
https://github.com/universal-ctags/ctags/issues/1608.
Can confirm that cornercase patch.diff fixed the issue for me.
--- exuberant-ctags.prev.c	2019-08-09 00:17:19.408405238 +0300
+++ exuberant-ctags.c	2019-08-09 00:42:44.700113001 +0300
@@ -177,7 +177,7 @@
 static pid_t pid;
 static char *argv[] = {
 	"ctags",
-    ""
+    "--options=/home/user/.ctags.d/custom.ctags",
 	NULL,
 #if defined(USE_EXTRA_FIELDS)
 	"--_xformat=%R %-16N %4n %-16F %C",
@@ -202,11 +202,11 @@
 	if (!ctagscom || !strlen(ctagscom) || !strcmp(ctagscom, "no"))
 		param->die(ctagsnotfound);
 	argv[0] = ctagscom;
-	argv[1] = malloc(sizeof(LANGMAP_OPTION) + strlen(param->langmap));
-	if (argv[1] == NULL)
+	argv[2] = malloc(sizeof(LANGMAP_OPTION) + strlen(param->langmap));
+	if (argv[2] == NULL)
 		param->die("short of memory.");
-	memcpy(argv[1], LANGMAP_OPTION, sizeof(LANGMAP_OPTION) - 1);
-	copy_langmap_converting_cpp(argv[1] + sizeof(LANGMAP_OPTION) - 1, param->langmap);
+	memcpy(argv[2], LANGMAP_OPTION, sizeof(LANGMAP_OPTION) - 1);
+	copy_langmap_converting_cpp(argv[2] + sizeof(LANGMAP_OPTION) - 1, param->langmap);
 
 	if (pipe(opipe) < 0 || pipe(ipipe) < 0)
 		param->die("cannot create pipe.");
@@ -227,7 +227,7 @@
 	if (pid < 0)
 		param->die("fork failed.");
 	free(path);
-	free(argv[1]);
+	free(argv[2]);
 	close(opipe[0]);
 	close(ipipe[1]);
 	ip = fdopen(ipipe[0], "r");
_______________________________________________
Bug-global mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-global

Reply via email to