-CHANGES.txt - 2009-07-14
+CHANGES.txt - 2009-08-07
------------------------
CHANGES IN CUPS V1.4.0
- Localization updates (STR #3223, STR #3246, STR #3248, STR #3250)
- Documentation updates (STR #3225, STR #3230, STR #3242, STR #3260)
+ - The --with-pdftops configure option did not accept a full path to the
+ filter (STR #3278)
+ - The banner filter did not position the back side image correctly
+ (STR #3277)
+ - The dnssd backend could crash (STR #3272)
+ - The 1284 device ID sometimes contained trailing garbage (STR #3266)
- The USB backend returned different URIs for some printers than in
CUPS 1.3 (STR #3259)
- The scheduler did not do local job-hold-until processing for remote
memset(&action, 0, sizeof(action));
sigemptyset(&action.sa_mask);
- action.sa_handler = SIG_IGN;
- sigaction(SIGTERM, &action, sigterm_handler);
+ action.sa_handler = sigterm_handler;
+ sigaction(SIGTERM, &action, NULL);
#else
signal(SIGTERM, sigterm_handler);
#endif /* HAVE_SIGSET */
* and then limit the length to the size of our buffer...
*/
- if (length > (device_id_size - 2))
+ if (length > device_id_size)
length = (((unsigned)device_id[1] & 255) << 8) +
((unsigned)device_id[0] & 255);
- if (length > (device_id_size - 2))
- length = device_id_size - 2;
+ if (length > device_id_size)
+ length = device_id_size;
+
+ /*
+ * The length field counts the number of bytes in the string
+ * including the length field itself (2 bytes).
+ */
+
+ length -= 2;
/*
* Copy the device ID text to the beginning of the buffer and
* and then limit the length to the size of our buffer...
*/
- if (length > (bufsize - 2))
+ if (length > bufsize)
length = (((unsigned)buffer[1] & 255) << 8) +
((unsigned)buffer[0] & 255);
- if (length > (bufsize - 2))
- length = bufsize - 2;
+ if (length > bufsize)
+ length = bufsize;
+
+ length -= 2;
/*
* Copy the device ID text to the beginning of the buffer and
dnl file is missing or damaged, see the license at "http://www.cups.org/".
dnl
-AC_ARG_WITH(pdftops, [ --with-pdftops set pdftops filter (gs,pdftops,none), default=pdftops ])
+AC_ARG_WITH(pdftops, [ --with-pdftops set pdftops filter (gs,/path/to/gs,pdftops,/path/to/pdftops,none), default=pdftops ])
PDFTOPS=""
CUPS_PDFTOPS=""
fi
;;
+ x/*/gs) # Use /path/to/gs without any check:
+ CUPS_GHOSTSCRIPT="$with_pdftops"
+ AC_DEFINE(HAVE_GHOSTSCRIPT)
+ PDFTOPS="pdftops"
+ ;;
+
xpdftops)
AC_PATH_PROG(CUPS_PDFTOPS, pdftops)
if test "x$CUPS_PDFTOPS" != x; then
exit 1
fi
;;
+
+ x/*/pdftops) # Use /path/to/pdftops without any check:
+ CUPS_PDFTOPS="$with_pdftops"
+ AC_DEFINE(HAVE_PDFTOPS)
+ PDFTOPS="pdftops"
+ ;;
+
+ xnone) # Make no pdftops filter if with_pdftops=none:
+ ;;
+
+ *) # Invalid with_pdftops value:
+ AC_MSG_ERROR(Invalid with_pdftops value!)
+ exit 1
+ ;;
esac
AC_DEFINE_UNQUOTED(CUPS_PDFTOPS, "$CUPS_PDFTOPS")
printf("%.1f %.1f translate\n", PageLeft, PageBottom);
else
printf("%.1f %.1f translate\n", PageWidth - PageRight,
- PageLength - PageRight);
+ PageLength - PageTop);
puts("0 setgray");
y = info_top;