]> granicus.if.org Git - postgresql/blob - src/backend/utils/adt/char.c
Clean up #include in /include directory. Add scripts for checking includes.
[postgresql] / src / backend / utils / adt / char.c
1 /*-------------------------------------------------------------------------
2  *
3  * char.c
4  *        Functions for the built-in type "char".
5  *        Functions for the built-in type "cid".
6  *
7  * Copyright (c) 1994, Regents of the University of California
8  *
9  *
10  * IDENTIFICATION
11  *        $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.24 1999/07/15 15:20:12 momjian Exp $
12  *
13  *-------------------------------------------------------------------------
14  */
15 #include <stdio.h>                              /* for sprintf() */
16 #include <string.h>
17 #include "postgres.h"
18 #include "utils/builtins.h"             /* where the declarations go */
19
20 /*****************************************************************************
21  *       USER I/O ROUTINES                                                                                                               *
22  *****************************************************************************/
23
24 /*
25  *              charin                  - converts "x" to 'x'
26  */
27 int32
28 charin(char *ch)
29 {
30         if (ch == NULL)
31                 return (int32) '\0';
32         return (int32) *ch;
33 }
34
35 /*
36  *              charout                 - converts 'x' to "x"
37  */
38 char *
39 charout(int32 ch)
40 {
41         char       *result = (char *) palloc(2);
42
43         result[0] = (char) ch;
44         result[1] = '\0';
45         return result;
46 }
47
48 /*
49  *              cidin   - converts "..." to internal representation.
50  *
51  *              NOTE: we must not use 'charin' because cid might be a non
52  *              printable character...
53  */
54 int32
55 cidin(char *s)
56 {
57         CommandId       c;
58
59         if (s == NULL)
60                 c = 0;
61         else
62                 c = atoi(s);
63
64         return (int32) c;
65 }
66
67 /*
68  *              cidout  - converts a cid to "..."
69  *
70  *              NOTE: we must no use 'charout' because cid might be a non
71  *              printable character...
72  */
73 char *
74 cidout(int32 c)
75 {
76         char       *result;
77         CommandId       c2;
78
79         result = palloc(12);
80         c2 = (CommandId) c;
81         sprintf(result, "%u", (unsigned) (c2));
82         return result;
83 }
84
85
86 /*****************************************************************************
87  *       PUBLIC ROUTINES                                                                                                                 *
88  *****************************************************************************/
89
90 bool
91 chareq(int8 arg1, int8 arg2)
92 {
93         return arg1 == arg2;
94 }
95
96 bool
97 charne(int8 arg1, int8 arg2)
98 {
99         return arg1 != arg2;
100 }
101
102 bool
103 charlt(int8 arg1, int8 arg2)
104 {
105         return (uint8) arg1 < (uint8) arg2;
106 }
107
108 bool
109 charle(int8 arg1, int8 arg2)
110 {
111         return (uint8) arg1 <= (uint8) arg2;
112 }
113
114 bool
115 chargt(int8 arg1, int8 arg2)
116 {
117         return (uint8) arg1 > (uint8) arg2;
118 }
119
120 bool
121 charge(int8 arg1, int8 arg2)
122 {
123         return (uint8) arg1 >= (uint8) arg2;
124 }
125
126 int8
127 charpl(int8 arg1, int8 arg2)
128 {
129         return arg1 + arg2;
130 }
131
132 int8
133 charmi(int8 arg1, int8 arg2)
134 {
135         return arg1 - arg2;
136 }
137
138 int8
139 charmul(int8 arg1, int8 arg2)
140 {
141         return arg1 * arg2;
142 }
143
144 int8
145 chardiv(int8 arg1, int8 arg2)
146 {
147         return arg1 / arg2;
148 }
149
150 bool
151 cideq(int8 arg1, int8 arg2)
152 {
153         return arg1 == arg2;
154 }
155
156 int8
157 text_char(text *arg1)
158 {
159         return ((int8) *(VARDATA(arg1)));
160 }
161
162 text *
163 char_text(int8 arg1)
164 {
165         text       *result;
166
167         result = palloc(VARHDRSZ + 1);
168         VARSIZE(result) = VARHDRSZ + 1;
169         *(VARDATA(result)) = arg1;
170
171         return result;
172 }