Skip to content

Commit 24ac2c1

Browse files
author
Federico Fissore
committed
GCC doesn't like paths with \, because \ is a special char. Escaping.
Signed-off-by: Federico Fissore <[email protected]>
1 parent 03ab957 commit 24ac2c1

12 files changed

+22
-14
lines changed

Diff for: src/arduino.cc/builder/sketch_source_merger.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ package builder
3232
import (
3333
"arduino.cc/builder/constants"
3434
"arduino.cc/builder/types"
35+
"strings"
3536
)
3637

3738
type SketchSourceMerger struct{}
@@ -51,7 +52,7 @@ func (s *SketchSourceMerger) Run(context map[string]interface{}) error {
5152
}
5253

5354
func addPreprocLine(sketch *types.SketchFile) string {
54-
source := "#line 1 \"" + sketch.Name + "\"\n"
55+
source := "#line 1 \"" + strings.Replace(sketch.Name, "\\", "\\\\", -1) + "\"\n"
5556
source += sketch.Source
5657
source += "\n"
5758

Diff for: src/arduino.cc/builder/test/helper.go

+8-1
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,19 @@ import (
3838
"github.com/stretchr/testify/assert"
3939
"io/ioutil"
4040
"path/filepath"
41+
"strings"
4142
"testing"
4243
"text/template"
4344
)
4445

4546
func LoadAndInterpolate(t *testing.T, filename string, context map[string]interface{}) string {
46-
tpl, err := template.ParseFiles(filename)
47+
funcsMap := template.FuncMap{
48+
"EscapeBackSlashes": func(s string) string {
49+
return strings.Replace(s, "\\", "\\\\", -1)
50+
},
51+
}
52+
53+
tpl, err := template.New(filepath.Base(filename)).Funcs(funcsMap).ParseFiles(filename)
4754
NoError(t, err)
4855

4956
var buf bytes.Buffer
+3-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
#line 1 "{{.sketch.MainFile.Name}}"
1+
#line 1 "{{EscapeBackSlashes .sketch.MainFile.Name}}"
22
void setup() {
33

44
}
55

66
void loop() {
77

88
}
9-
#line 1 "{{(index .sketch.OtherSketchFiles 0).Name}}"
9+
#line 1 "{{EscapeBackSlashes (index .sketch.OtherSketchFiles 0).Name}}"
1010

11-
#line 1 "{{(index .sketch.OtherSketchFiles 1).Name}}"
11+
#line 1 "{{EscapeBackSlashes (index .sketch.OtherSketchFiles 1).Name}}"
1212
String hello() {
1313
return "world";
1414
}

Diff for: src/arduino.cc/builder/test/sketch2/SketchWithIfDef.preprocessed.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include <Arduino.h>
22
#line 1
3-
#line 1 "{{.sketch.MainFile.Name}}"
3+
#line 1 "{{EscapeBackSlashes .sketch.MainFile.Name}}"
44
#define DEBUG 1
55
#define DISABLED 0
66

Diff for: src/arduino.cc/builder/test/sketch2/SketchWithIfDef.resolved.directives.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#line 1 "{{.sketch.MainFile.Name}}"
1+
#line 1 "{{EscapeBackSlashes .sketch.MainFile.Name}}"
22
#define DEBUG 1
33
#define DISABLED 0
44

Diff for: src/arduino.cc/builder/test/sketch3/Baladuino.preprocessed.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include <Arduino.h>
22
#line 1
3-
#line 1 "{{.sketch.MainFile.Name}}"
3+
#line 1 "{{EscapeBackSlashes .sketch.MainFile.Name}}"
44
/*
55
* The code is released under the GNU General Public License.
66
* Developed by Kristian Lauszus, TKJ Electronics 2013

Diff for: src/arduino.cc/builder/test/sketch4/CharWithEscapedDoubleQuote.preprocessed.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include <Arduino.h>
22
#line 1
3-
#line 1 "{{.sketch.MainFile.Name}}"
3+
#line 1 "{{EscapeBackSlashes .sketch.MainFile.Name}}"
44
#include <SoftwareSerial.h> // required to send and receive AT commands from the GPRS Shield
55
#include <Wire.h> // required for I2C communication with the RTC
66

Diff for: src/arduino.cc/builder/test/sketch5/IncludeBetweenMultilineComment.preprocessed.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include <Arduino.h>
22
#line 1
3-
#line 1 "{{.sketch.MainFile.Name}}"
3+
#line 1 "{{EscapeBackSlashes .sketch.MainFile.Name}}"
44
#include <CapacitiveSensor.h>
55
/*
66
#include <WiFi.h>

Diff for: src/arduino.cc/builder/test/sketch6/LineContinuations.preprocessed.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include <Arduino.h>
22
#line 1
3-
#line 1 "{{.sketch.MainFile.Name}}"
3+
#line 1 "{{EscapeBackSlashes .sketch.MainFile.Name}}"
44
const char *foo = "\
55
hello \
66
world\n";

Diff for: src/arduino.cc/builder/test/sketch7/StringWithComment.preprocessed.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include <Arduino.h>
22
#line 1
3-
#line 1 "{{.sketch.MainFile.Name}}"
3+
#line 1 "{{EscapeBackSlashes .sketch.MainFile.Name}}"
44
void setup();
55
void loop();
66
#line 1

Diff for: src/arduino.cc/builder/test/sketch8/SketchWithStruct.preprocessed.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include <Arduino.h>
22
#line 1
3-
#line 1 "{{.sketch.MainFile.Name}}"
3+
#line 1 "{{EscapeBackSlashes .sketch.MainFile.Name}}"
44
/* START CODE */
55

66
struct A_NEW_TYPE {

Diff for: src/arduino.cc/builder/test/sketch_with_config/sketch_with_config.preprocessed.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include <Arduino.h>
22
#line 1
3-
#line 1 "{{.sketch.MainFile.Name}}"
3+
#line 1 "{{EscapeBackSlashes .sketch.MainFile.Name}}"
44
#include "config.h"
55

66
#ifdef DEBUG

0 commit comments

Comments
 (0)