| 33 | // Like strncpy but always zero terminate, issue error if can't. |
| 34 | |
| 35 | void strncpy_( |
| 36 | char* dest, // out |
| 37 | const char* src, // in |
| 38 | int n) // in: sizeof(dest) |
| 39 | { |
| 40 | const char* const start = src; // used only for possible error message |
| 41 | while ((*dest++ = *src++)) // assignment is intentional |
| 42 | if (--n <= 0) |
| 43 | Err("Error in strncpy_ %-80s", start); |
| 44 | } |
| 45 | |
| 46 | void ToLowerCase( |
| 47 | char* s) // io: convert to lower case |