Skip to content

Commit c32a84b

Browse files
committed
Extra quoting around -cargs:ada
to avoid splitting in ito pair `-cargs:` and `ada` on Windows in VSCode 1.96. Fixes #1571
1 parent 1b326aa commit c32a84b

File tree

4 files changed

+14
-14
lines changed

4 files changed

+14
-14
lines changed

integration/vscode/ada/src/gnatTaskProvider.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ export async function computeProject(): Promise<string> {
330330
} // Call commonArgs on args and append `-gnatef` to generate full file names in errors/warnings
331331

332332
export const getDiagnosticArgs = (): string[] => {
333-
const p_gnatef = ['-cargs:ada', '-gnatef'];
333+
const p_gnatef = ["'-cargs:ada'", '-gnatef'];
334334
return p_gnatef;
335335
};
336336
export function getScenarioArgs() {

integration/vscode/ada/src/gnattest.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -706,7 +706,7 @@ async function buildTestDriver(run: vscode.TestRun) {
706706
*/
707707
const driverPrjPath = await getGnatTestDriverProjectPath();
708708
run.appendOutput(`Building the test harness project\r\n`);
709-
const gprbuild = logAndRun(run, ['gprbuild', '-P', driverPrjPath, '-cargs:ada', '-gnatef']);
709+
const gprbuild = logAndRun(run, ['gprbuild', '-P', driverPrjPath, "'-cargs:ada'", '-gnatef']);
710710

711711
prepareAndAppendOutput(run, gprbuild.stdout.toLocaleString());
712712
prepareAndAppendOutput(run, gprbuild.stderr.toLocaleString());

integration/vscode/ada/src/taskProviders.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ const TASK_BUILD_PROJECT: PredefinedTask = {
6767
taskDef: {
6868
type: TASK_TYPE_ADA,
6969
command: 'gprbuild',
70-
args: ['${command:ada.gprProjectArgs}', '-cargs:ada', '-gnatef'],
70+
args: ['${command:ada.gprProjectArgs}', "'-cargs:ada'", '-gnatef'],
7171
},
7272
problemMatchers: DEFAULT_PROBLEM_MATCHER,
7373
taskGroup: vscode.TaskGroup.Build,
@@ -115,7 +115,7 @@ const predefinedTasks: PredefinedTask[] = [
115115
'-gnatc',
116116
'${command:ada.gprProjectArgs}',
117117
'${fileBasename}',
118-
'-cargs:ada',
118+
"'-cargs:ada'",
119119
'-gnatef',
120120
],
121121
},
@@ -133,7 +133,7 @@ const predefinedTasks: PredefinedTask[] = [
133133
'-u',
134134
'${command:ada.gprProjectArgs}',
135135
'${fileBasename}',
136-
'-cargs:ada',
136+
"'-cargs:ada'",
137137
'-gnatef',
138138
],
139139
},
@@ -411,7 +411,7 @@ export class SimpleTaskProvider implements vscode.TaskProvider {
411411
args: [
412412
`\${command:${CMD_GPR_PROJECT_ARGS}}`,
413413
main.mainRelPath(),
414-
'-cargs:ada',
414+
"'-cargs:ada'",
415415
'-gnatef',
416416
],
417417
},
@@ -1115,7 +1115,7 @@ function updateToAlire(taskDef: SimpleTaskDef): SimpleTaskDef {
11151115
* scenario args because they are managed by ALIRE.
11161116
*
11171117
*/
1118-
args.splice(0, args.length, 'build', '--', '-cargs:ada', '-gnatef');
1118+
args.splice(0, args.length, 'build', '--', "'-cargs:ada'", '-gnatef');
11191119
} else if (taskDef == TASK_CLEAN_PROJECT.taskDef) {
11201120
/**
11211121
* Replace the entire command with `alr clean`. Ignore project and

integration/vscode/ada/test/general/tasks.test.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,13 @@ ada: Build and run main - src/test.adb
6767
test('Ada task command lines', async function () {
6868
const expectedCmdLines = `
6969
ada: Clean current project - gprclean -P ${projectPath}
70-
ada: Build current project - gprbuild -P ${projectPath} -cargs:ada -gnatef
71-
ada: Check current file - gprbuild -q -f -c -u -gnatc -P ${projectPath} \${fileBasename} -cargs:ada -gnatef
72-
ada: Compile current file - gprbuild -q -f -c -u -P ${projectPath} \${fileBasename} -cargs:ada -gnatef
70+
ada: Build current project - gprbuild -P ${projectPath} '-cargs:ada' -gnatef
71+
ada: Check current file - gprbuild -q -f -c -u -gnatc -P ${projectPath} \${fileBasename} '-cargs:ada' -gnatef
72+
ada: Compile current file - gprbuild -q -f -c -u -P ${projectPath} \${fileBasename} '-cargs:ada' -gnatef
7373
ada: Generate documentation from the project - gnatdoc -P ${projectPath}
74-
ada: Build main - src/main1.adb - gprbuild -P ${projectPath} src/main1.adb -cargs:ada -gnatef
74+
ada: Build main - src/main1.adb - gprbuild -P ${projectPath} src/main1.adb '-cargs:ada' -gnatef
7575
ada: Run main - src/main1.adb - .${path.sep}obj${path.sep}main1exec${exe}
76-
ada: Build main - src/test.adb - gprbuild -P ${projectPath} src/test.adb -cargs:ada -gnatef
76+
ada: Build main - src/test.adb - gprbuild -P ${projectPath} src/test.adb '-cargs:ada' -gnatef
7777
ada: Run main - src/test.adb - .${path.sep}obj${path.sep}test${exe}
7878
`.trim();
7979

@@ -167,7 +167,7 @@ ada: Run main - src/test.adb - .${path.sep}obj${path.sep}test${exe}
167167
args: [
168168
'${command:ada.gprProjectArgs}',
169169
'--no-object-check',
170-
'-cargs:ada',
170+
"'-cargs:ada'",
171171
'-gnatef',
172172
],
173173
label: 'ada: Build current project',
@@ -195,7 +195,7 @@ ada: Run main - src/test.adb - .${path.sep}obj${path.sep}test${exe}
195195
// The '--no-object-check' switch has been added to the 'ada: Build current project'
196196
// predefined task in the workspace's tasks.json file: check that it's indeed present
197197
// in the returned task's command line.
198-
const expectedCmd = `gprbuild -P ${projectPath} --no-object-check -cargs:ada -gnatef`;
198+
const expectedCmd = `gprbuild -P ${projectPath} --no-object-check '-cargs:ada' -gnatef`;
199199

200200
assert.strictEqual(actualCmd, expectedCmd);
201201
} finally {

0 commit comments

Comments
 (0)