Blame view

node_modules/node-sass/src/libsass/src/backtrace.cpp 1.06 KB
909d7e57   liuqimichale   build
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
  #include "backtrace.hpp"
  
  namespace Sass {
  
    const std::string traces_to_string(Backtraces traces, std::string indent) {
  
      std::stringstream ss;
      std::string cwd(File::get_cwd());
  
      bool first = true;
      size_t i_beg = traces.size() - 1;
      size_t i_end = std::string::npos;
      for (size_t i = i_beg; i != i_end; i --) {
  
        const Backtrace& trace = traces[i];
  
        // make path relative to the current directory
        std::string rel_path(File::abs2rel(trace.pstate.path, cwd, cwd));
  
        // skip functions on error cases (unsure why ruby sass does this)
        // if (trace.caller.substr(0, 6) == ", in f") continue;
  
        if (first) {
          ss << indent;
          ss << "on line ";
          ss << trace.pstate.line + 1;
          ss << " of " << rel_path;
          // ss << trace.caller;
          first = false;
        } else {
          ss << trace.caller;
          ss << std::endl;
          ss << indent;
          ss << "from line ";
          ss << trace.pstate.line + 1;
          ss << " of " << rel_path;
        }
  
      }
  
      ss << std::endl;
      return ss.str();
  
    }
  
  };