mirror of
https://github.com/postgres/postgres.git
synced 2025-05-21 15:54:08 +03:00
Add missing "do { ... } while(0)" in ODBC macros and add find_baddefs
script.
This commit is contained in:
parent
8b4d5c7575
commit
309a04f5b8
@ -796,7 +796,7 @@ static int enlarge_statement(StatementClass *stmt, unsigned int newsize)
|
|||||||
*----------
|
*----------
|
||||||
*/
|
*/
|
||||||
#define CVT_INIT(size) \
|
#define CVT_INIT(size) \
|
||||||
{ \
|
do { \
|
||||||
if (stmt->stmt_with_params) \
|
if (stmt->stmt_with_params) \
|
||||||
free(stmt->stmt_with_params); \
|
free(stmt->stmt_with_params); \
|
||||||
if (stmt->stmt_size_limit > 0) \
|
if (stmt->stmt_size_limit > 0) \
|
||||||
@ -811,7 +811,8 @@ static int enlarge_statement(StatementClass *stmt, unsigned int newsize)
|
|||||||
stmt->stmt_with_params = new_statement; \
|
stmt->stmt_with_params = new_statement; \
|
||||||
npos = 0; \
|
npos = 0; \
|
||||||
new_statement[0] = '\0'; \
|
new_statement[0] = '\0'; \
|
||||||
}
|
} while (0)
|
||||||
|
|
||||||
/*----------
|
/*----------
|
||||||
* Terminate the stmt_with_params string with NULL.
|
* Terminate the stmt_with_params string with NULL.
|
||||||
*----------
|
*----------
|
||||||
@ -823,55 +824,59 @@ static int enlarge_statement(StatementClass *stmt, unsigned int newsize)
|
|||||||
*----------
|
*----------
|
||||||
*/
|
*/
|
||||||
#define CVT_APPEND_DATA(s, len) \
|
#define CVT_APPEND_DATA(s, len) \
|
||||||
{ \
|
do { \
|
||||||
unsigned int newpos = npos + len; \
|
unsigned int newpos = npos + len; \
|
||||||
ENLARGE_NEWSTATEMENT(newpos) \
|
ENLARGE_NEWSTATEMENT(newpos) \
|
||||||
memcpy(&new_statement[npos], s, len); \
|
memcpy(&new_statement[npos], s, len); \
|
||||||
npos = newpos; \
|
npos = newpos; \
|
||||||
new_statement[npos] = '\0'; \
|
new_statement[npos] = '\0'; \
|
||||||
}
|
} while (0)
|
||||||
|
|
||||||
/*----------
|
/*----------
|
||||||
* Append a string.
|
* Append a string.
|
||||||
*----------
|
*----------
|
||||||
*/
|
*/
|
||||||
#define CVT_APPEND_STR(s) \
|
#define CVT_APPEND_STR(s) \
|
||||||
{ \
|
do { \
|
||||||
unsigned int len = strlen(s); \
|
unsigned int len = strlen(s); \
|
||||||
CVT_APPEND_DATA(s, len); \
|
CVT_APPEND_DATA(s, len); \
|
||||||
}
|
} while (0)
|
||||||
|
|
||||||
/*----------
|
/*----------
|
||||||
* Append a char.
|
* Append a char.
|
||||||
*----------
|
*----------
|
||||||
*/
|
*/
|
||||||
#define CVT_APPEND_CHAR(c) \
|
#define CVT_APPEND_CHAR(c) \
|
||||||
{ \
|
do { \
|
||||||
ENLARGE_NEWSTATEMENT(npos + 1); \
|
ENLARGE_NEWSTATEMENT(npos + 1); \
|
||||||
new_statement[npos++] = c; \
|
new_statement[npos++] = c; \
|
||||||
}
|
} while (0)
|
||||||
|
|
||||||
/*----------
|
/*----------
|
||||||
* Append a binary data.
|
* Append a binary data.
|
||||||
* Newly reqeuired size may be overestimated currently.
|
* Newly reqeuired size may be overestimated currently.
|
||||||
*----------
|
*----------
|
||||||
*/
|
*/
|
||||||
#define CVT_APPEND_BINARY(buf, used) \
|
#define CVT_APPEND_BINARY(buf, used) \
|
||||||
{ \
|
do { \
|
||||||
unsigned int newlimit = npos + 5 * used; \
|
unsigned int newlimit = npos + 5 * used; \
|
||||||
ENLARGE_NEWSTATEMENT(newlimit); \
|
ENLARGE_NEWSTATEMENT(newlimit); \
|
||||||
npos += convert_to_pgbinary(buf, &new_statement[npos], used); \
|
npos += convert_to_pgbinary(buf, &new_statement[npos], used); \
|
||||||
}
|
} while (0)
|
||||||
|
|
||||||
/*----------
|
/*----------
|
||||||
*
|
*
|
||||||
*----------
|
*----------
|
||||||
*/
|
*/
|
||||||
#define CVT_SPECIAL_CHARS(buf, used) \
|
#define CVT_SPECIAL_CHARS(buf, used) \
|
||||||
{ \
|
do { \
|
||||||
int cnvlen = convert_special_chars(buf, NULL, used); \
|
int cnvlen = convert_special_chars(buf, NULL, used); \
|
||||||
unsigned int newlimit = npos + cnvlen; \
|
unsigned int newlimit = npos + cnvlen; \
|
||||||
\
|
\
|
||||||
ENLARGE_NEWSTATEMENT(newlimit); \
|
ENLARGE_NEWSTATEMENT(newlimit); \
|
||||||
convert_special_chars(buf, &new_statement[npos], used); \
|
convert_special_chars(buf, &new_statement[npos], used); \
|
||||||
npos += cnvlen; \
|
npos += cnvlen; \
|
||||||
}
|
} while (0)
|
||||||
|
|
||||||
/*----------
|
/*----------
|
||||||
* Check if the statement is
|
* Check if the statement is
|
||||||
|
19
src/tools/find_baddefs
Executable file
19
src/tools/find_baddefs
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# This script attempts to find bad ifdef's, i.e. ifdef's that use braces
|
||||||
|
# but not the do { ... } while (0) syntax
|
||||||
|
#
|
||||||
|
# This is useful for running before pgindent
|
||||||
|
|
||||||
|
for FILE
|
||||||
|
do
|
||||||
|
awk ' BEGIN {was_define = "N"}
|
||||||
|
{ if (was_define == "Y" &&
|
||||||
|
$0 ~ /^{/)
|
||||||
|
printf "%s %d\n", FILENAME, NR
|
||||||
|
if ($0 ~ /^#define/)
|
||||||
|
was_define = "Y"
|
||||||
|
else
|
||||||
|
was_define = "N"
|
||||||
|
}' $FILE
|
||||||
|
done
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user