comparison src/util.c @ 9940:77a9f7e5516c

[gaim-migrate @ 10832] datallah thinks we should prevent this possible trouble with long logfile names committer: Tailor Script <tailor@pidgin.im>
author Ethan Blanton <elb@pidgin.im>
date Thu, 02 Sep 2004 19:45:15 +0000
parents 31fddde685dd
children a9521c791afe
comparison
equal deleted inserted replaced
9939:acbbc0d73600 9940:77a9f7e5516c
2881 static char buf[BUF_LEN]; 2881 static char buf[BUF_LEN];
2882 guint i, j = 0; 2882 guint i, j = 0;
2883 2883
2884 g_return_val_if_fail(str != NULL, NULL); 2884 g_return_val_if_fail(str != NULL, NULL);
2885 2885
2886 for (i = 0; i < strlen(str); i++) { 2886 for (i = 0; i < strlen(str) && j < (BUF_LEN - 1); i++) {
2887 if (isalnum(str[i])) 2887 if (isalnum(str[i]))
2888 buf[j++] = str[i]; 2888 buf[j++] = str[i];
2889 else { 2889 else {
2890 if (j > (BUF_LEN - 4))
2891 break;
2890 sprintf(buf + j, "%%%02x", (unsigned char)str[i]); 2892 sprintf(buf + j, "%%%02x", (unsigned char)str[i]);
2891 j += 3; 2893 j += 3;
2892 } 2894 }
2893 } 2895 }
2894 2896
3217 static char buf[BUF_LEN]; 3219 static char buf[BUF_LEN];
3218 guint i, j = 0; 3220 guint i, j = 0;
3219 3221
3220 g_return_val_if_fail(str != NULL, NULL); 3222 g_return_val_if_fail(str != NULL, NULL);
3221 3223
3222 for (i = 0; i < strlen(str); i++) { 3224 for (i = 0; i < strlen(str) && j < (BUF_LEN - 1); i++) {
3223 if (isalnum(str[i]) || str[i] == '@' || str[i] == '-' || 3225 if (isalnum(str[i]) || str[i] == '@' || str[i] == '-' ||
3224 str[i] == '_' || str[i] == '.' || str[i] == '#') 3226 str[i] == '_' || str[i] == '.' || str[i] == '#')
3225 buf[j++] = str[i]; 3227 buf[j++] = str[i];
3226 else { 3228 else {
3229 if (j > (BUF_LEN - 4))
3230 break;
3227 sprintf(buf + j, "%%%02x", (unsigned char)str[i]); 3231 sprintf(buf + j, "%%%02x", (unsigned char)str[i]);
3228 j += 3; 3232 j += 3;
3229 } 3233 }
3230 } 3234 }
3231 3235