File: parse_include_list.go

package info (click to toggle)
c2go 0.26.11-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,052 kB
  • sloc: ansic: 6,037; sh: 82; makefile: 5
file content (31 lines) | stat: -rw-r--r-- 820 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package preprocessor

import (
	"strings"
)

// parseIncludeList - parse list of includes
// Example :
// exit.o: exit.c /usr/include/stdlib.h /usr/include/features.h \
//    /usr/include/stdc-predef.h /usr/include/x86_64-linux-gnu/sys/cdefs.h
func parseIncludeList(line string) (lines []string, err error) {
	line = strings.Replace(line, "\n", " ", -1)
	line = strings.Replace(line, "\t", " ", -1)
	line = strings.Replace(line, "\r", " ", -1) // Added for Mac endline symbol
	line = strings.Replace(line, "\\", " ", -1)
	line = strings.Replace(line, "\xFF", " ", -1)
	line = strings.Replace(line, "\u0100", " ", -1)
	parts := strings.Split(line, " ")

	for _, p := range parts {
		p = strings.TrimSpace(p)
		if p == "" {
			continue
		}
		if p[len(p)-1] == ':' {
			continue
		}
		lines = append(lines, p)
	}
	return
}