llvm-project

Форк
0
/
MakeSupport.cpp 
35 строк · 973.0 Байт
1
//===-- MakeSuport.cpp --------------------------------------------------*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8

9
#include "clang/Basic/MakeSupport.h"
10

11
void clang::quoteMakeTarget(StringRef Target, SmallVectorImpl<char> &Res) {
12
  for (unsigned i = 0, e = Target.size(); i != e; ++i) {
13
    switch (Target[i]) {
14
    case ' ':
15
    case '\t':
16
      // Escape the preceding backslashes
17
      for (int j = i - 1; j >= 0 && Target[j] == '\\'; --j)
18
        Res.push_back('\\');
19

20
      // Escape the space/tab
21
      Res.push_back('\\');
22
      break;
23
    case '$':
24
      Res.push_back('$');
25
      break;
26
    case '#':
27
      Res.push_back('\\');
28
      break;
29
    default:
30
      break;
31
    }
32

33
    Res.push_back(Target[i]);
34
  }
35
}
36

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.