equal
deleted
inserted
replaced
57 |
57 |
58 /* theory files */ |
58 /* theory files */ |
59 |
59 |
60 def loaded_files(syntax: Outer_Syntax, name: Document.Node.Name): () => List[Path] = |
60 def loaded_files(syntax: Outer_Syntax, name: Document.Node.Name): () => List[Path] = |
61 { |
61 { |
62 val raw_text = with_thy_reader(name, reader => reader.source.toString) |
62 val (is_utf8, raw_text) = |
|
63 with_thy_reader(name, reader => (Scan.reader_is_utf8(reader), reader.source.toString)) |
63 () => { |
64 () => { |
64 if (syntax.load_commands_in(raw_text)) { |
65 if (syntax.load_commands_in(raw_text)) { |
65 val text = Symbol.decode(raw_text) |
66 val text = Symbol.decode(Scan.reader_decode_utf8(is_utf8, raw_text)) |
66 val spans = syntax.parse_spans(text) |
67 val spans = syntax.parse_spans(text) |
67 val dir = Path.explode(name.master_dir) |
68 val dir = Path.explode(name.master_dir) |
68 spans.iterator.map(Command.span_files(syntax, _)._1).flatten. |
69 spans.iterator.map(Command.span_files(syntax, _)._1).flatten. |
69 map(a => (dir + Path.explode(a)).expand).toList |
70 map(a => (dir + Path.explode(a)).expand).toList |
70 } |
71 } |