*** mailmsg.c.org Mon Feb 1 19:06:59 1999 --- mailmsg.c Thu Jun 3 20:32:01 1999 *************** *** 426,433 **** get_target(char *ret, const char *target, char **headder) { char str[MAXHEADDERLEN]; ! char field_name[MAXBUFLEN], *field, *filed2; ! int flag, len, lp, ln = 0; while (ln < HeadderLine) { /* 1行得る */ --- 426,433 ---- get_target(char *ret, const char *target, char **headder) { char str[MAXHEADDERLEN]; ! char field_name[MAXBUFLEN], *field, field2[MAXHEADDERLEN]; ! int flag, len, lp, ln = 0, lp2 = 0; while (ln < HeadderLine) { /* 1行得る */ *************** *** 448,461 **** field++; /* filedの値を ':'以降とする */ len = strlen(field); ! /* TAB、改行をSpaceに置き換える */ for (lp = 0; lp < len; lp++) { if (field[lp] == '\t' || field[lp] == '\r' || field[lp] == '\n') { ! field[lp] = ' '; ! } } /* ヘッダ項目の認識 */ strncpy(field_name, str, field - str); --- 448,473 ---- field++; /* filedの値を ':'以降とする */ len = strlen(field); ! /* ヘッダが複数行の場合、不要なTAB、改行、Spaceを削除する */ ! flag = 0; ! lp2 = 0; for (lp = 0; lp < len; lp++) { if (field[lp] == '\t' || field[lp] == '\r' || field[lp] == '\n') { ! flag = 1; ! continue; ! }else ! { ! if (field[lp] == ' ' && flag == 1){ ! continue; ! }else{ ! field2[lp2] = field[lp]; ! lp2++; ! flag = 0; ! }} } + field2[lp2] = '\0'; /* ヘッダ項目の認識 */ strncpy(field_name, str, field - str); *************** *** 463,469 **** /* ヘッダ項目がtargetと等しければその項目の内容を返す */ if (strcmp(field_name, target) == 0) { ! if (strcpy(ret, field) == NULL) { strcpy(ret, "Unknown because strcpy error"); } break; --- 475,481 ---- /* ヘッダ項目がtargetと等しければその項目の内容を返す */ if (strcmp(field_name, target) == 0) { ! if (strcpy(ret, field2) == NULL) { strcpy(ret, "Unknown because strcpy error"); } break;