char username[256];
int a;
+ CtdlLogPrintf(CTDL_DEBUG, "cmd_user(%s)\n", cmdbuf);
extract_token(username, cmdbuf, 0, '|', sizeof username);
+ CtdlLogPrintf(CTDL_DEBUG, "username: %s\n", username);
striplt(username);
+ CtdlLogPrintf(CTDL_DEBUG, "username: %s\n", username);
a = CtdlLoginExistingUser(NULL, username);
switch (a) {
int CtdlDecodeBase64(char *dest, const char *source, size_t length);
unsigned int decode_hex(char *Source);
int CtdlDecodeQuotedPrintable(char *decoded, char *encoded, int sourcelen);
-long striplt(char *);
+size_t striplt(char *);
int haschar(const char *st, int ch);
void remove_token(char *source, int parmnum, char separator);
void fmt_date(char *buf, size_t n, time_t thetime, int seconds);
/*
* Strip leading and trailing spaces from a string
*/
-long striplt(char *buf)
-{
- int CountTrail = 0;
- int FromStart = 1;
- char *aptr, *bptr;
+size_t striplt(char *buf) {
+ char *first_nonspace = NULL;
+ char *last_nonspace = NULL;
+ char *ptr;
+ size_t new_len = 0;
- if ((buf==NULL) || (IsEmptyStr(buf)))
+ if (!buf) {
return 0;
+ }
- bptr = aptr = buf;
-
- while (!IsEmptyStr(aptr)) {
- if (isspace(*aptr)) {
- if (FromStart)
- aptr ++;
- else {
- CountTrail ++;
- *bptr = *aptr;
- aptr++; bptr++;
+ for (ptr=buf; *ptr!=0; ++ptr) {
+ if (!isspace(*ptr)) {
+ if (!first_nonspace) {
+ first_nonspace = ptr;
}
- }
- else {
- CountTrail = 0;
- *bptr = *aptr;
- aptr++; bptr++;
+ last_nonspace = ptr;
}
}
- if (CountTrail > 0) {
- bptr -= CountTrail;
+ if ((!first_nonspace) || (!last_nonspace)) {
+ buf[0] = 0;
+ return 0;
}
- *bptr = '\0';
- return bptr - buf;
+ new_len = last_nonspace - first_nonspace + 1;
+ memcpy(buf, first_nonspace, new_len);
+ buf[new_len] = 0;
+ return new_len;
}
-
-
-
/**
* \brief check for the presence of a character within a string (returns count)
* \param st the string to examine