APR. Shuld consider adding apr_file_getline() to APR. Should also consider
changing apr_file_getc() to return characters rather than apr_status.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89331
13f79535-47bb-0310-9956-
ffa450edef68
Changes with Apache 2.0.19-dev
+ *) Fix htdigest. It would go into a loop in getline when adding
+ a second user. [Bill Stoddard]
+
*) Win32 platforms now fully support mod_userdir options. [Will Rowe]
*) Automatically generate httpd.exp for AIX.
{
register int i = 0;
char ch;
+ apr_status_t rv;
- while (1) {
- apr_file_getc(&ch, f);
- s[i] = ch;
+ while (i < (n - 1) &&
+ ((rv = apr_file_getc(&ch, f)) == APR_SUCCESS) && (ch != '\n')) {
+ s[i++] = ch;
+ }
+ if (ch == '\n')
+ s[i++] = ch;
+ s[i] = '\0';
- if (s[i] == CR)
- apr_file_getc(&ch, f);
- s[i] = ch;
+ if (rv != APR_SUCCESS)
+ return 1;
- if ((s[i] == 0x4) || (s[i] == LF) || (i == (n - 1))) {
- s[i] = '\0';
- if (apr_file_eof(f) == APR_EOF) {
- return 1;
- }
- return 0;
- }
- ++i;
- }
+ return 0;
}
static void putline(apr_file_t *f, char *l)
for (x = 0; l[x]; x++)
apr_file_putc(l[x], f);
- apr_file_putc('\n', f);
}