- The HP and EPSON sample drivers now correctly catch
signals and eject the current page when a job is
cancelled.
+ - Fixed bug in CGI code - did not ignore control
+ characters (e.g. newlines) in form data. This caused
+ sporatic web interface problems.
CHANGES IN CUPS V1.1.5-2
/*
- * "$Id: serial.c,v 1.27 2001/01/03 17:44:40 mike Exp $"
+ * "$Id: serial.c,v 1.28 2001/01/12 19:29:16 mike Exp $"
*
* Serial port backend for the Common UNIX Printing System (CUPS).
*
*/
for (n = 0; n < 6; n ++)
- printf("serial serial:/dev/ttyd%d?baud=19200 \"Unknown\" \"CDSIO Board %d Serial Port #%d\"\n",
+ printf("serial serial:/dev/ttyd%d?baud=38400 \"Unknown\" \"CDSIO Board %d Serial Port #%d\"\n",
n + 5 + 8 * inv->inv_controller, inv->inv_controller, n + 1);
}
else if (inv->inv_type == INV_EPC_SERIAL)
i = 41 + 4 * (int)inv->inv_controller;
for (n = 0; n < (int)inv->inv_state; n ++)
- printf("serial serial:/dev/ttyd%d?baud=19200 \"Unknown\" \"EPC Serial Port %d, Ebus slot %d\"\n",
+ printf("serial serial:/dev/ttyd%d?baud=38400 \"Unknown\" \"EPC Serial Port %d, Ebus slot %d\"\n",
n + i, n + 1, (int)inv->inv_controller);
}
else if (inv->inv_state > 1)
*/
for (n = 0; n < (int)inv->inv_state; n ++)
- printf("serial serial:/dev/ttyd%d?baud=19200 \"Unknown\" \"Onboard Serial Port %d\"\n",
+ printf("serial serial:/dev/ttyd%d?baud=38400 \"Unknown\" \"Onboard Serial Port %d\"\n",
n + (int)inv->inv_unit + 1, n + (int)inv->inv_unit + 1);
}
else
/*
- * End of "$Id: serial.c,v 1.27 2001/01/03 17:44:40 mike Exp $".
+ * End of "$Id: serial.c,v 1.28 2001/01/12 19:29:16 mike Exp $".
*/
/*
- * "$Id: var.c,v 1.17 2000/12/04 16:10:32 mike Exp $"
+ * "$Id: var.c,v 1.18 2001/01/12 19:29:17 mike Exp $"
*
* CGI form variable and array functions.
*
/*#define DEBUG*/
#include "cgi.h"
+#include <errno.h>
+#include <syslog.h>
/*
for (tbytes = 0; tbytes < length; tbytes += nbytes)
if ((nbytes = read(0, data + tbytes, length - tbytes)) < 0)
- {
- free(data);
- return (0);
- }
+ if (errno != EAGAIN)
+ {
+ free(data);
+ return (0);
+ }
data[length] = '\0';
* Get the variable name...
*/
- for (s = name; *data != '\0'; data ++, s ++)
+ for (s = name; *data != '\0'; data ++)
if (*data == '=')
break;
- else
- *s = *data;
+ else if (*data >= ' ')
+ *s++ = *data;
*s = '\0';
if (*data == '=')
break;
default : /* Other characters come straight through */
- *s = *data;
+ if (*data < ' ')
+ s --;
+ else
+ *s = *data;
break;
}
* Remove trailing whitespace...
*/
- s --;
+ if (s > value)
+ s --;
+
while (s >= value && *s == ' ')
*s-- = '\0';
(int (*)(const void *, const void *))cgi_compare_variables);
#ifdef DEBUG
- puts("New variable list is:");
+ puts("Sorted variable list is:");
for (i = 0; i < form_count; i ++)
- printf("%s = %s\n", form_vars[i].name, form_vars[i].value);
+ printf("%d: %s (%d) = \"%s\" ...\n", i, form_vars[i].name,
+ form_vars[i].nvalues, form_vars[i].values[0]);
#endif /* DEBUG */
}
/*
- * End of "$Id: var.c,v 1.17 2000/12/04 16:10:32 mike Exp $".
+ * End of "$Id: var.c,v 1.18 2001/01/12 19:29:17 mike Exp $".
*/