| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -105,8 +105,8 @@ int _mi_vsnprintf(char* buf, size_t bufsize, const char* fmt, va_list ar | |||
| 105 | 105 | int _mi_snprintf(char* buf, size_t buflen, const char* fmt, ...); | |
| 106 | 106 | char _mi_toupper(char c); | |
| 107 | 107 | int _mi_strnicmp(const char* s, const char* t, size_t n); | |
| 108 | - void _mi_strlcpy(char* dest, const char* src, size_t dest_size); | ||
| 109 | - void _mi_strlcat(char* dest, const char* src, size_t dest_size); | ||
| 108 | + bool _mi_strlcpy(char* dest, const char* src, size_t dest_size); // returns true if the full string was copied | ||
| 109 | + bool _mi_strlcat(char* dest, const char* src, size_t dest_size); // returns true if the full string was catenated | ||
| 110 | 110 | size_t _mi_strlen(const char* s); | |
| 111 | 111 | size_t _mi_strnlen(const char* s, size_t max_len); | |
| 112 | 112 | bool _mi_streq(const char* s, const char* t); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -39,26 +39,27 @@ bool _mi_streq(const char* s, const char* t) { | |||
| 39 | 39 | return (*s == *t); | |
| 40 | 40 | } | |
| 41 | 41 | ||
| 42 | - void _mi_strlcpy(char* dest, const char* src, size_t dest_size) { | ||
| 43 | - if (dest==NULL || src==NULL || dest_size == 0) return; | ||
| 42 | + bool _mi_strlcpy(char* dest, const char* src, size_t dest_size) { | ||
| 43 | + if (dest==NULL || src==NULL || dest_size == 0) return (src==NULL || *src==0); | ||
| 44 | 44 | // copy until end of src, or when dest is (almost) full | |
| 45 | 45 | while (*src != 0 && dest_size > 1) { | |
| 46 | 46 | *dest++ = *src++; | |
| 47 | 47 | dest_size--; | |
| 48 | 48 | } | |
| 49 | 49 | // always zero terminate | |
| 50 | 50 | *dest = 0; | |
| 51 | + return (*src == 0); | ||
| 51 | 52 | } | |
| 52 | 53 | ||
| 53 | - void _mi_strlcat(char* dest, const char* src, size_t dest_size) { | ||
| 54 | - if (dest==NULL || src==NULL || dest_size == 0) return; | ||
| 54 | + bool _mi_strlcat(char* dest, const char* src, size_t dest_size) { | ||
| 55 | + if (dest==NULL || src==NULL || dest_size == 0) return (src==NULL || *src==0); | ||
| 55 | 56 | // find end of string in the dest buffer | |
| 56 | 57 | while (*dest != 0 && dest_size > 1) { | |
| 57 | 58 | dest++; | |
| 58 | 59 | dest_size--; | |
| 59 | 60 | } | |
| 60 | 61 | // and catenate | |
| 61 | - _mi_strlcpy(dest, src, dest_size); | ||
| 62 | + return _mi_strlcpy(dest, src, dest_size); | ||
| 62 | 63 | } | |
| 63 | 64 | ||
| 64 | 65 | size_t _mi_strnlen(const char* s, size_t max_len) { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -821,8 +821,8 @@ int _mi_prim_getenv(const char* name, char* result, size_t result_size) { | |||
| 821 | 821 | const char* s = env[i]; | |
| 822 | 822 | if (_mi_strnicmp(name, s, len) == 0 && s[len] == '=') { // case insensitive | |
| 823 | 823 | // found it | |
| 824 | - _mi_strlcpy(result, s + len + 1, result_size); | ||
| 825 | - return 1; // success | ||
| 824 | + if (!_mi_strlcpy(result, s + len + 1, result_size)) return -1; | ||
| 825 | + return 1; // success | ||
| 826 | 826 | } | |
| 827 | 827 | } | |
| 828 | 828 | return 0; // not found | |
@@ -843,9 +843,9 @@ int _mi_prim_getenv(const char* name, char* result, size_t result_size) { | |||
| 843 | 843 | buf[len] = 0; | |
| 844 | 844 | s = getenv(buf); | |
| 845 | 845 | } | |
| 846 | - if (s == NULL || _mi_strnlen(s,result_size) >= result_size) return 0; // not found | ||
| 847 | - _mi_strlcpy(result, s, result_size); | ||
| 848 | - return 1; // success | ||
| 846 | + if (s == NULL || _mi_strnlen(s,result_size) >= result_size) return 0; // not found | ||
| 847 | + if (!_mi_strlcpy(result, s, result_size)) return -1; | ||
| 848 | + return 1; // success | ||
| 849 | 849 | } | |
| 850 | 850 | #endif // !MI_USE_ENVIRON | |
| 851 | 851 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments