/*
- * "$Id: backend.c 7810 2008-07-29 01:11:15Z mike $"
+ * Backend functions for CUPS.
*
- * Backend functions for CUPS.
+ * Copyright 2007-2015 by Apple Inc.
+ * Copyright 2006 by Easy Software Products.
*
- * Copyright 2007-2010 by Apple Inc.
- * Copyright 2006 by Easy Software Products.
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law. Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file. If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
*
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- * cupsBackendDeviceURI() - Get the device URI for a backend.
- * cupsBackendReport() - Write a device line from a backend.
- * quote_string() - Write a quoted string to stdout, escaping \ and ".
+ * This file is subject to the Apple OS-Developed Software exception.
*/
/*
#include "cups-private.h"
#include "backend.h"
+#include "ppd.h"
/*
* variable or the device URI passed in argv[0], whichever is found
* first.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
const char * /* O - Device URI or @code NULL@ */
*auth_info_required; /* AUTH_INFO_REQUIRED env var */
_cups_globals_t *cg = _cupsGlobals(); /* Global info */
int options; /* Resolve options */
+ ppd_file_t *ppd; /* PPD file */
+ ppd_attr_t *ppdattr; /* PPD attribute */
if ((device_uri = getenv("DEVICE_URI")) == NULL)
!strcmp(auth_info_required, "negotiate"))
options |= _HTTP_RESOLVE_FQDN;
+ if ((ppd = ppdOpenFile(getenv("PPD"))) != NULL)
+ {
+ if ((ppdattr = ppdFindAttr(ppd, "cupsIPPFaxOut", NULL)) != NULL &&
+ !_cups_strcasecmp(ppdattr->value, "true"))
+ options |= _HTTP_RESOLVE_FAXOUT;
+
+ ppdClose(ppd);
+ }
+
return (_httpResolveURI(device_uri, cg->resolved_uri,
sizeof(cg->resolved_uri), options, NULL, NULL));
}
* It handles quoting of special characters in the device-make-and-model,
* device-info, device-id, and device-location strings.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
void
if (*s == '\\' || *s == '\"')
putchar('\\');
- putchar(*s);
+ if (((*s & 255) < ' ' && *s != '\t') || *s == 0x7f)
+ putchar(' ');
+ else
+ putchar(*s);
s ++;
}
putchar('\"');
}
-
-
-/*
- * End of "$Id: backend.c 7810 2008-07-29 01:11:15Z mike $".
- */