CodeCompass

Форк
0
/
util.cpp 
78 строк · 1.5 Кб
1
#include <iostream>
2
#include <ctime>
3
#include <sstream>
4
#include <util/util.h>
5

6
namespace cc
7
{
8
namespace util
9
{
10

11
std::string getCurrentDate()
12
{
13
  std::time_t rawtime;
14
  struct tm* timeinfo;
15

16
  std::time(&rawtime);
17
  timeinfo = std::localtime(&rawtime);
18

19
  char output[42];
20
  std::strftime(output, 42, "%c", timeinfo);
21

22
  return {output};
23
}
24

25
std::string textRange(
26
  const std::string& text_,
27
  std::size_t startLine_, std::size_t startCol_,
28
  std::size_t endLine_, std::size_t endCol_)
29
{
30
  std::string res;
31

32
  if (startLine_ == static_cast<std::size_t>(-1) ||
33
      startCol_  == static_cast<std::size_t>(-1) ||
34
      endLine_   == static_cast<std::size_t>(-1) ||
35
      endCol_    == static_cast<std::size_t>(-1))
36
    return res;
37

38
  std::istringstream iss(text_);
39
  std::string lineStr;
40

41
  for (std::size_t i = 1; i <= endLine_; ++i)
42
  {
43
    std::getline(iss, lineStr);
44

45
    if (startLine_ < endLine_)
46
    {
47
      if (startLine_ == i)
48
        res += lineStr.substr(startCol_ - 1) + '\n';
49
      else if (endLine_ == i)
50
        res += lineStr.substr(0, endCol_ - 1);
51
      else if (startLine_ < i && i < endLine_)
52
        res += lineStr + '\n';
53
    }
54
    else if (startLine_ == i)
55
      res = lineStr.substr(startCol_ - 1, endCol_ - startCol_);
56
  }
57

58
  return res;
59
}
60

61
std::string escapeHtml(const std::string& str_)
62
{
63
  std::string ret;
64

65
  for (char c : str_)
66
    switch (c)
67
    {
68
      case '<': ret += "&lt;";  break;
69
      case '>': ret += "&gt;";  break;
70
      case '&': ret += "&amp;"; break;
71
      default : ret += c;       break;
72
    }
73

74
  return ret;
75
}
76

77
}
78
}
79

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

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

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

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