diff options
author | Gerald Combs <gerald@wireshark.org> | 2015-10-27 16:24:01 -0700 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2015-10-28 02:40:47 +0000 |
commit | a25c4841d24b5da184afc8ff542a731a94aab2cb (patch) | |
tree | 9373f9e26e83d47670cf1f0079f650d9b9baf23b /epan/uat.c | |
parent | c7e42be2e5baf0a5f351b126cdac5c3d6d9241a0 (diff) |
Get rid of a couple of UAT macros.
Declare and fill in some functions normally instead of using macros.
Change-Id: I06323ecf53e0fe8ce7299168984838c87209acc5
Reviewed-on: https://code.wireshark.org/review/11336
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/uat.c')
-rw-r--r-- | epan/uat.c | 75 |
1 files changed, 70 insertions, 5 deletions
diff --git a/epan/uat.c b/epan/uat.c index 73659d57bf..327b8a29bd 100644 --- a/epan/uat.c +++ b/epan/uat.c @@ -747,11 +747,76 @@ char* uat_esc(const char* buf, guint len) { } -CHK_STR_IS_DEF(isprint) -CHK_STR_IS_DEF(isalpha) -CHK_STR_IS_DEF(isalnum) -CHK_STR_IS_DEF(isdigit) -CHK_STR_IS_DEF(isxdigit) +gboolean uat_fld_chk_str_isprint(void* u1 _U_, const char* strptr, guint len, const void* u2 _U_, const void* u3 _U_, char** err) { + guint i; + + for (i = 0; i < len; i++) { + char c = strptr[i]; + if (! g_ascii_isprint(c)) { + *err = g_strdup_printf("invalid char pos=%d value=%.2x",i,c); + return FALSE; + } + } + *err = NULL; + return TRUE; +} + +gboolean uat_fld_chk_str_isalpha(void* u1 _U_, const char* strptr, guint len, const void* u2 _U_, const void* u3 _U_, char** err) { + guint i; + + for (i = 0; i < len; i++) { + char c = strptr[i]; + if (! g_ascii_isalpha(c)) { + *err = g_strdup_printf("invalid char pos=%d value=%.2x",i,c); + return FALSE; + } + } + *err = NULL; + return TRUE; +} + +gboolean uat_fld_chk_str_isalnum(void* u1 _U_, const char* strptr, guint len, const void* u2 _U_, const void* u3 _U_, char** err) { + guint i; + + for (i = 0; i < len; i++) { + char c = strptr[i]; + if (! g_ascii_isalnum(c)) { + *err = g_strdup_printf("invalid char pos=%d value=%.2x",i,c); + return FALSE; + } + } + *err = NULL; + return TRUE; +} + +gboolean uat_fld_chk_str_isdigit(void* u1 _U_, const char* strptr, guint len, const void* u2 _U_, const void* u3 _U_, char** err) { + guint i; + + for (i = 0; i < len; i++) { + char c = strptr[i]; + if (! g_ascii_isdigit(c)) { + *err = g_strdup_printf("invalid char pos=%d value=%.2x",i,c); + return FALSE; + } + } + *err = NULL; + return TRUE; +} + +gboolean uat_fld_chk_str_isxdigit(void* u1 _U_, const char* strptr, guint len, const void* u2 _U_, const void* u3 _U_, char** err) { + guint i; + + for (i = 0; i < len; i++) { + char c = strptr[i]; + if (! g_ascii_isxdigit(c)) { + *err = g_strdup_printf("invalid char pos=%d value=%.2x",i,c); + return FALSE; + } + } + *err = NULL; + return TRUE; +} + /* * Editor modelines |