PostgreSQL Source Code: src/common/string.c Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18#ifndef FRONTEND

20#else

22#endif

23

25

26

27

28

29

30bool

32{

33 size_t slen = strlen(str);

34 size_t elen = strlen(end);

35

36

37 if (elen > slen)

38 return false;

39

40

41 str += slen - elen;

42 return strcmp(str, end) == 0;

43}

44

45

46

47

48

49int

50strtoint(const char *pg_restrict str, char **pg_restrict endptr, int base)

51{

53

54 val = strtol(str, endptr, base);

56 errno = ERANGE;

57 return (int) val;

58}

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84char *

86{

87 size_t dstlen;

88 char *dst;

89 const char *p;

90 size_t i = 0;

91

92

93 dstlen = strlen(str) * 4 + 1;

94

95#ifdef FRONTEND

97#else

99#endif

100

101 if (!dst)

102 return NULL;

103

104 for (p = str; *p != '\0'; p++)

105 {

106

107

108 if (*p < 32 || *p > 126)

109 {

110 Assert(i < (dstlen - 3));

111 snprintf(&dst[i], dstlen - i, "\\x%02x", (unsigned char) *p);

112 i += 4;

113 }

114 else

115 {

117 dst[i] = *p;

118 i++;

119 }

120 }

121

123 dst[i] = '\0';

124 return dst;

125}

126

127

128

129

130

131bool

133{

134 while (*str)

135 {

137 return false;

139 }

140 return true;

141}

142

143

144

145

146

147

148

149

150

151

152

153int

155{

156 int len = strlen(str);

157

158 while (len > 0 && (str[len - 1] == '\n' ||

159 str[len - 1] == '\r'))

161

162 return len;

163}

#define IS_HIGHBIT_SET(ch)

Assert(PointerIsAligned(start, uint64))

void * palloc_extended(Size size, int flags)

char * pg_clean_ascii(const char *str, int alloc_flags)

int pg_strip_crlf(char *str)

bool pg_is_ascii(const char *str)

int strtoint(const char *pg_restrict str, char **pg_restrict endptr, int base)

bool pg_str_endswith(const char *str, const char *end)