Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Fixed an off-by-one error in print_person(). The original code extracted the leading '<' of the email address as part of the user name, putting an unmatched '<' into the git dump file, and breaking fast_import. This bug was only triggered by the user's contact information actually containing an email address. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
de1921bad3ce6b0a25d654b993fe3fc7 |
| User & Date: | aku 2014-05-28 03:55:18.472 |
Context
|
2014-05-28
| ||
| 16:06 | Added -R REPO to the timeline docs, per ML request. check-in: dadbf7825a user: stephan tags: trunk | |
| 03:55 | Fixed an off-by-one error in print_person(). The original code extracted the leading '<' of the email address as part of the user name, putting an unmatched '<' into the git dump file, and breaking fast_import. This bug was only triggered by the user's contact information actually containing an email address. check-in: de1921bad3 user: aku tags: trunk | |
| 00:17 | Fix a typo in the SCGI documentation. check-in: 6a4127f3ed user: drh tags: trunk | |
Changes
Changes to src/export.c.
| ︙ | ︙ | |||
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
}
}
zName[j] = 0;
printf(" %s <%s>", zName, zUser);
free(zName);
return;
}
zContact = db_column_text(&q, 0);
for(i=0; zContact[i] && zContact[i]!='>' && zContact[i]!='<'; i++){}
if( zContact[i]==0 ){
printf(" %s <%s>", zContact[0] ? zContact : zUser, zUser);
db_reset(&q);
return;
}
if( zContact[i]=='<' ){
zEmail = mprintf("%s", &zContact[i]);
for(i=0; zEmail[i] && zEmail[i]!='>'; i++){}
if( zEmail[i]=='>' ) zEmail[i+1] = 0;
}else{
zEmail = mprintf("<%s>", zUser);
}
| > > > > > > > > > > > > > > > > | | 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
}
}
zName[j] = 0;
printf(" %s <%s>", zName, zUser);
free(zName);
return;
}
/*
** We have contact information.
** It may or may not contain an email address.
*/
zContact = db_column_text(&q, 0);
for(i=0; zContact[i] && zContact[i]!='>' && zContact[i]!='<'; i++){}
if( zContact[i]==0 ){
/* No email address found. Take as user info if not empty */
printf(" %s <%s>", zContact[0] ? zContact : zUser, zUser);
db_reset(&q);
return;
}
if( zContact[i]=='<' ){
/*
** Found beginning of email address. Look for the end and extract
** the part.
*/
zEmail = mprintf("%s", &zContact[i]);
for(i=0; zEmail[i] && zEmail[i]!='>'; i++){}
if( zEmail[i]=='>' ) zEmail[i+1] = 0;
}else{
/*
** Found an end marker for email, but nothing else.
*/
zEmail = mprintf("<%s>", zUser);
}
/*
** Here zContact[i] either '<' or '>'. Extract the string _before_
** either as user name.
*/
zName = mprintf("%.*s", i-1, zContact);
for(i=j=0; zName[i]; i++){
if( zName[i]!='"' ) zName[j++] = zName[i];
}
zName[j] = 0;
printf(" %s %s", zName, zEmail);
free(zName);
free(zEmail);
|
| ︙ | ︙ |