ipp-private.h ../cups/ipp.h http.h http-private.h ../cups/language.h \
md5-private.h language-private.h ../cups/transcode.h pwg-private.h \
../cups/cups.h file.h pwg.h ppd-private.h ../cups/ppd.h \
- thread-private.h tls-darwin.c
+ thread-private.h
http-addr.o: http-addr.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h array-private.h ../cups/array.h \
ipp-private.h ../cups/ipp.h http.h http-private.h ../cups/language.h \
md5-private.h language-private.h ../cups/transcode.h pwg-private.h \
../cups/cups.h file.h pwg.h ppd-private.h ../cups/ppd.h \
thread-private.h
+tls.o: tls.c cups-private.h string-private.h ../config.h debug-private.h \
+ ../cups/versioning.h array-private.h ../cups/array.h ipp-private.h \
+ ../cups/ipp.h http.h http-private.h ../cups/language.h md5-private.h \
+ language-private.h ../cups/transcode.h pwg-private.h ../cups/cups.h \
+ file.h pwg.h ppd-private.h ../cups/ppd.h thread-private.h tls-darwin.c
transcode.o: transcode.c cups-private.h string-private.h ../config.h \
debug-private.h ../cups/versioning.h array-private.h ../cups/array.h \
ipp-private.h ../cups/ipp.h http.h http-private.h ../cups/language.h \
array.h language.h pwg.h ppd.h string-private.h ../config.h
testcups.o: testcups.c string-private.h ../config.h cups.h file.h \
versioning.h ipp.h http.h array.h language.h pwg.h ppd.h
+testdest.o: testdest.c cups.h file.h versioning.h ipp.h http.h array.h \
+ language.h pwg.h
testfile.o: testfile.c string-private.h ../config.h debug-private.h \
../cups/versioning.h file.h
testhttp.o: testhttp.c cups-private.h string-private.h ../config.h \
testarray.o \
testconflicts.o \
testcups.o \
+ testdest.o \
testfile.o \
testhttp.o \
testi18n.o \
testcache \
testconflicts \
testcups \
+ testdest \
testfile \
testhttp \
testi18n \
$(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
+#
+# testdest (dependency on static CUPS library is intentional)
+#
+
+testdest: testdest.o $(LIBCUPSSTATIC)
+ echo Linking $@...
+ $(CC) $(LDFLAGS) -o $@ testdest.o $(LIBCUPSSTATIC) \
+ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
+
+
#
# testfile (dependency on static CUPS library is intentional)
#
extern const char *cupsUserAgent(void) _CUPS_API_1_7;
/* New in CUPS 2.0 */
+extern cups_dest_t *cupsGetDestWithURI(const char *name, const char *uri) _CUPS_API_2_0;
+extern const char *cupsLocalizeDestMedia(http_t *http, cups_dest_t *dest, cups_dinfo_t *info, unsigned flags, cups_size_t *size) _CUPS_API_2_0;
extern int cupsMakeServerCredentials(const char *path, const char *common_name, int num_alt_names, const char **alt_names, time_t expiration_date) _CUPS_API_2_0;
extern int cupsSetServerCredentials(const char *path, const char *common_name, int auto_create) _CUPS_API_2_0;
static char *cups_scan_strings(char *buffer);
+/*
+ * 'cupsLocalizeDestMedia()' - Get the localized string for a destination media
+ * size.
+ *
+ * The returned string is stored in the destination information and will become
+ * invalid if the destination information is deleted.
+ *
+ * @since CUPS 2.0@
+ */
+
+const char * /* O - Localized string */
+cupsLocalizeDestMedia(
+ http_t *http, /* I - Connection to destination */
+ cups_dest_t *dest, /* I - Destination */
+ cups_dinfo_t *dinfo, /* I - Destination information */
+ unsigned flags, /* I - Media flags */
+ cups_size_t *size) /* I - Media size */
+{
+ cups_lang_t *lang; /* Standard localizations */
+ _cups_message_t key, /* Search key */
+ *match; /* Matching entry */
+ pwg_media_t *pwg; /* PWG media information */
+ cups_array_t *db; /* Media database */
+ _cups_media_db_t *mdb; /* Media database entry */
+ char name[1024], /* Size name */
+ temp[256]; /* Temporary string */
+ const char *lsize, /* Localized media size */
+ *lsource, /* Localized media source */
+ *ltype; /* Localized media type */
+
+
+ /*
+ * Range check input...
+ */
+
+ if (!http || !dest || !dinfo || !size)
+ {
+ _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0);
+ return (NULL);
+ }
+
+ /*
+ * See if the localization is cached...
+ */
+
+ if (!dinfo->localizations)
+ cups_create_localizations(http, dinfo);
+
+ key.id = size->media;
+ if ((match = (_cups_message_t *)cupsArrayFind(dinfo->localizations, &key)) != NULL)
+ return (match->str);
+
+ /*
+ * If not, get the localized size, source, and type strings...
+ */
+
+ lang = cupsLangDefault();
+ pwg = pwgMediaForSize(size->width, size->length);
+
+ if (pwg->ppd)
+ lsize = _cupsLangString(lang, pwg->ppd);
+ else
+ lsize = NULL;
+
+ if (!lsize)
+ {
+ if ((size->width % 635) == 0 && (size->length % 635) == 0)
+ {
+ /*
+ * Use inches since the size is a multiple of 1/4 inch.
+ */
+
+ snprintf(temp, sizeof(temp), _cupsLangString(lang, _("%g x %g")), size->width / 2540.0, size->length / 2540.0);
+ }
+ else
+ {
+ /*
+ * Use millimeters since the size is not a multiple of 1/4 inch.
+ */
+
+ snprintf(temp, sizeof(temp), _cupsLangString(lang, _("%d x %d mm")), (size->width + 50) / 100, (size->length + 50) / 100);
+ }
+
+ lsize = temp;
+ }
+
+ if (flags & CUPS_MEDIA_FLAGS_READY)
+ db = dinfo->ready_db;
+ else
+ db = dinfo->media_db;
+
+ DEBUG_printf(("1cupsLocalizeDestMedia: size->media=\"%s\"", size->media));
+
+ for (mdb = (_cups_media_db_t *)cupsArrayFirst(db); mdb; mdb = (_cups_media_db_t *)cupsArrayNext(db))
+ {
+ if (mdb->key && !strcmp(mdb->key, size->media))
+ break;
+ else if (mdb->size_name && !strcmp(mdb->size_name, size->media))
+ break;
+ else if (mdb->width == size->width && mdb->length == size->length && mdb->bottom == size->bottom && mdb->left == size->left && mdb->right == size->right && mdb->top == size->top)
+ break;
+ }
+
+ if (mdb)
+ {
+ lsource = cupsLocalizeDestValue(http, dest, dinfo, "media-source", mdb->source);
+ ltype = cupsLocalizeDestValue(http, dest, dinfo, "media-type", mdb->type);
+ }
+ else
+ {
+ lsource = NULL;
+ ltype = NULL;
+ }
+
+ if (!lsource && !ltype)
+ {
+ if (size->bottom || size->left || size->right || size->top)
+ snprintf(name, sizeof(name), _cupsLangString(lang, _("%s (Borderless)")), lsize);
+ else
+ strlcpy(name, lsize, sizeof(name));
+ }
+ else if (!lsource)
+ {
+ if (size->bottom || size->left || size->right || size->top)
+ snprintf(name, sizeof(name), _cupsLangString(lang, _("%s (Borderless, %s)")), lsize, ltype);
+ else
+ snprintf(name, sizeof(name), _cupsLangString(lang, _("%s (%s)")), lsize, ltype);
+ }
+ else if (!ltype)
+ {
+ if (size->bottom || size->left || size->right || size->top)
+ snprintf(name, sizeof(name), _cupsLangString(lang, _("%s (Borderless, %s)")), lsize, lsource);
+ else
+ snprintf(name, sizeof(name), _cupsLangString(lang, _("%s (%s)")), lsize, lsource);
+ }
+ else
+ {
+ if (size->bottom || size->left || size->right || size->top)
+ snprintf(name, sizeof(name), _cupsLangString(lang, _("%s (Borderless, %s, %s)")), lsize, ltype, lsource);
+ else
+ snprintf(name, sizeof(name), _cupsLangString(lang, _("%s (%s, %s)")), lsize, ltype, lsource);
+ }
+
+ if ((match = (_cups_message_t *)calloc(1, sizeof(_cups_message_t))) == NULL)
+ return (NULL);
+
+ match->id = strdup(size->media);
+ match->str = strdup(name);
+
+ cupsArrayAdd(dinfo->localizations, match);
+
+ return (match->str);
+}
+
+
/*
* 'cupsLocalizeDestOption()' - Get the localized string for a destination
* option.
}
+/*
+ * 'cupsGetDestWithURI()' - Get a destination associated with a URI.
+ *
+ * "name" is the desired name for the printer. If @code NULL@, a name will be
+ * created using the URI.
+ *
+ * "uri" is the "ipp" or "ipps" URI for the printer.
+ *
+ * @since CUPS 2.0@
+ */
+
+cups_dest_t * /* O - Destination or @code NULL@ */
+cupsGetDestWithURI(const char *name, /* I - Desired printer name or @code NULL@ */
+ const char *uri) /* I - URI for the printer */
+{
+ cups_dest_t *dest; /* New destination */
+ char temp[1024], /* Temporary string */
+ scheme[256], /* Scheme from URI */
+ userpass[256], /* Username:password from URI */
+ hostname[256], /* Hostname from URI */
+ resource[1024], /* Resource path from URI */
+ *ptr; /* Pointer into string */
+ int port; /* Port number from URI */
+
+
+ /*
+ * Range check input...
+ */
+
+ if (!uri)
+ {
+ _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0);
+ return (NULL);
+ }
+
+ if (httpSeparateURI(HTTP_URI_CODING_ALL, uri, scheme, sizeof(scheme), userpass, sizeof(userpass), hostname, sizeof(hostname), &port, resource, sizeof(resource)) < HTTP_URI_STATUS_OK ||
+ (strncmp(uri, "ipp://", 6) && strncmp(uri, "ipps://", 7)))
+ {
+ _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("Bad printer URI."), 1);
+
+ return (NULL);
+ }
+
+ if (!name)
+ {
+ /*
+ * Create the name from the URI...
+ */
+
+ if (strstr(hostname, "._tcp"))
+ {
+ /*
+ * Use the service instance name...
+ */
+
+ if ((ptr = strchr(hostname, '.')) != NULL)
+ *ptr = '\0';
+
+ name = hostname;
+ }
+ else if (!strncmp(resource, "/classes/", 9))
+ {
+ snprintf(temp, sizeof(temp), "%s @ %s", resource + 9, hostname);
+ name = temp;
+ }
+ else if (!strncmp(resource, "/printers/", 10))
+ {
+ snprintf(temp, sizeof(temp), "%s @ %s", resource + 10, hostname);
+ name = temp;
+ }
+ else
+ {
+ name = hostname;
+ }
+ }
+
+ /*
+ * Create the destination...
+ */
+
+ if ((dest = calloc(1, sizeof(cups_dest_t))) == NULL)
+ {
+ _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(errno), 0);
+ return (NULL);
+ }
+
+ dest->name = _cupsStrAlloc(name);
+ dest->num_options = cupsAddOption("printer-uri-supported", uri, dest->num_options, &(dest->options));
+ dest->num_options = cupsAddOption("printer-info", name, dest->num_options, &(dest->options));
+
+ return (dest);
+}
+
+
/*
* '_cupsGetDests()' - Get destinations from a server.
*
--- /dev/null
+/*
+ * "$Id$"
+ *
+ * CUPS destination API test program for CUPS.
+ *
+ * Copyright 2014 by Apple Inc.
+ *
+ * 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.
+ */
+
+/*
+ * Include necessary headers...
+ */
+
+#include <stdio.h>
+#include "cups.h"
+
+
+/*
+ * Local functions...
+ */
+
+static void localize(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, const char *option, const char *value);
+static void print_file(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, const char *filename, int num_options, cups_option_t *options);
+static void show_conflicts(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, int num_options, cups_option_t *options);
+static void show_default(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, const char *option);
+static void show_media(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, unsigned flags, const char *name);
+static void show_supported(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, const char *option, const char *value);
+static void usage(const char *arg) __attribute__((noreturn));
+
+
+/*
+ * 'main()' - Main entry.
+ */
+
+int /* O - Exit status */
+main(int argc, /* I - Number of command-line arguments */
+ char *argv[]) /* I - Command-line arguments */
+{
+ http_t *http; /* Connection to destination */
+ cups_dest_t *dest = NULL; /* Destination */
+ cups_dinfo_t *dinfo; /* Destination info */
+
+
+ if (argc < 2)
+ usage(NULL);
+
+ if (!strcmp(argv[1], "--enum"))
+ {
+ return (0);
+ }
+ else if (!strncmp(argv[1], "ipp://", 6) || !strncmp(argv[1], "ipps://", 7))
+ dest = cupsGetDestWithURI(NULL, argv[1]);
+ else
+ dest = cupsGetNamedDest(CUPS_HTTP_DEFAULT, argv[1], NULL);
+
+ if (!dest)
+ {
+ printf("testdest: Unable to get destination \"%s\": %s\n", argv[1], cupsLastErrorString());
+ return (1);
+ }
+
+ if ((http = cupsConnectDest(dest, CUPS_DEST_FLAGS_NONE, 30000, NULL, NULL, 0, NULL, NULL)) == NULL)
+ {
+ printf("testdest: Unable to connect to destination \"%s\": %s\n", argv[1], cupsLastErrorString());
+ return (1);
+ }
+
+ if ((dinfo = cupsCopyDestInfo(http, dest)) == NULL)
+ {
+ printf("testdest: Unable to get information for destination \"%s\": %s\n", argv[1], cupsLastErrorString());
+ return (1);
+ }
+
+ if (argc == 2 || (!strcmp(argv[2], "supported") && argc < 6))
+ {
+ if (argc > 3)
+ show_supported(http, dest, dinfo, argv[3], argv[4]);
+ else if (argc > 2)
+ show_supported(http, dest, dinfo, argv[3], NULL);
+ else
+ show_supported(http, dest, dinfo, NULL, NULL);
+ }
+ else if (!strcmp(argv[2], "conflicts") && argc > 3)
+ {
+ int i, /* Looping var */
+ num_options = 0;/* Number of options */
+ cups_option_t *options = NULL;/* Options */
+
+ for (i = 3; i < argc; i ++)
+ num_options = cupsParseOptions(argv[i], num_options, &options);
+
+ show_conflicts(http, dest, dinfo, num_options, options);
+ }
+ else if (!strcmp(argv[2], "default") && argc == 4)
+ {
+ show_default(http, dest, dinfo, argv[3]);
+ }
+ else if (!strcmp(argv[2], "localize") && argc > 3 && argc < 6)
+ {
+ localize(http, dest, dinfo, argv[3], argv[4]);
+ }
+ else if (!strcmp(argv[2], "media"))
+ {
+ int i; /* Looping var */
+ const char *name = NULL; /* Media name, if any */
+ unsigned flags = CUPS_MEDIA_FLAGS_DEFAULT;
+ /* Media selection flags */
+
+ for (i = 3; i < argc; i ++)
+ {
+ if (!strcmp(argv[i], "borderless"))
+ flags = CUPS_MEDIA_FLAGS_BORDERLESS;
+ else if (!strcmp(argv[i], "duplex"))
+ flags = CUPS_MEDIA_FLAGS_DUPLEX;
+ else if (!strcmp(argv[i], "exact"))
+ flags = CUPS_MEDIA_FLAGS_EXACT;
+ else if (!strcmp(argv[i], "ready"))
+ flags = CUPS_MEDIA_FLAGS_READY;
+ else if (name)
+ usage(argv[i]);
+ else
+ name = argv[i];
+ }
+
+ show_media(http, dest, dinfo, flags, name);
+ }
+ else if (!strcmp(argv[2], "print") && argc > 3)
+ {
+ int i, /* Looping var */
+ num_options = 0;/* Number of options */
+ cups_option_t *options = NULL;/* Options */
+
+ for (i = 4; i < argc; i ++)
+ num_options = cupsParseOptions(argv[i], num_options, &options);
+
+ print_file(http, dest, dinfo, argv[3], num_options, options);
+ }
+ else
+ usage(argv[2]);
+
+ return (0);
+}
+
+
+/*
+ * 'localize()' - Localize an option and value.
+ */
+
+static void
+localize(http_t *http, /* I - Connection to destination */
+ cups_dest_t *dest, /* I - Destination */
+ cups_dinfo_t *dinfo, /* I - Destination information */
+ const char *option, /* I - Option */
+ const char *value) /* I - Value, if any */
+{
+ (void)http;
+ (void)dest;
+ (void)dinfo;
+ (void)option;
+ (void)value;
+}
+
+
+/*
+ * 'print_file()' - Print a file.
+ */
+
+static void
+print_file(http_t *http, /* I - Connection to destination */
+ cups_dest_t *dest, /* I - Destination */
+ cups_dinfo_t *dinfo, /* I - Destination information */
+ const char *filename, /* I - File to print */
+ int num_options, /* I - Number of options */
+ cups_option_t *options) /* I - Options */
+{
+ (void)http;
+ (void)dest;
+ (void)dinfo;
+ (void)filename;
+ (void)num_options;
+ (void)options;
+}
+
+
+/*
+ * 'show_conflicts()' - Show conflicts for selected options.
+ */
+
+static void
+show_conflicts(
+ http_t *http, /* I - Connection to destination */
+ cups_dest_t *dest, /* I - Destination */
+ cups_dinfo_t *dinfo, /* I - Destination information */
+ int num_options, /* I - Number of options */
+ cups_option_t *options) /* I - Options */
+{
+ (void)http;
+ (void)dest;
+ (void)dinfo;
+ (void)num_options;
+ (void)options;
+}
+
+
+/*
+ * 'show_default()' - Show default value for option.
+ */
+
+static void
+show_default(http_t *http, /* I - Connection to destination */
+ cups_dest_t *dest, /* I - Destination */
+ cups_dinfo_t *dinfo, /* I - Destination information */
+ const char *option) /* I - Option */
+{
+ (void)http;
+ (void)dest;
+ (void)dinfo;
+ (void)option;
+}
+
+
+/*
+ * 'show_media()' - Show available media.
+ */
+
+static void
+show_media(http_t *http, /* I - Connection to destination */
+ cups_dest_t *dest, /* I - Destination */
+ cups_dinfo_t *dinfo, /* I - Destination information */
+ unsigned flags, /* I - Media flags */
+ const char *name) /* I - Size name */
+{
+ int i, /* Looping var */
+ count; /* Number of sizes */
+ cups_size_t size; /* Media size info */
+
+
+ if (name)
+ {
+ double dw, dl; /* Width and length from name */
+ char units[32]; /* Units */
+ int width, /* Width in 100ths of millimeters */
+ length; /* Length in 100ths of millimeters */
+
+
+ if (sscanf(name, "%lfx%lf%31s", &dw, &dl, units) == 3)
+ {
+ if (!strcmp(units, "in"))
+ {
+ width = (int)(dw * 2540.0);
+ length = (int)(dl * 2540.0);
+ }
+ else if (!strcmp(units, "mm"))
+ {
+ width = (int)(dw * 100.0);
+ length = (int)(dl * 100.0);
+ }
+ else
+ {
+ puts(" bad units in size");
+ return;
+ }
+
+ if (cupsGetDestMediaBySize(http, dest, dinfo, width, length, flags, &size))
+ {
+ printf(" %s (%s) %dx%d B%d L%d R%d T%d\n", size.media, cupsLocalizeDestMedia(http, dest, dinfo, flags, &size), size.width, size.length, size.bottom, size.left, size.right, size.top);
+ }
+ else
+ {
+ puts(" not supported");
+ }
+ }
+ else if (cupsGetDestMediaByName(http, dest, dinfo, name, flags, &size))
+ {
+ printf(" %s (%s) %dx%d B%d L%d R%d T%d\n", size.media, cupsLocalizeDestMedia(http, dest, dinfo, flags, &size), size.width, size.length, size.bottom, size.left, size.right, size.top);
+ }
+ else
+ {
+ puts(" not supported");
+ }
+ }
+ else
+ {
+ count = cupsGetDestMediaCount(http, dest, dinfo, flags);
+ printf("%d size%s:\n", count, count == 1 ? "" : "s");
+
+ for (i = 0; i < count; i ++)
+ {
+ if (cupsGetDestMediaByIndex(http, dest, dinfo, i, flags, &size))
+ printf(" %s (%s) %dx%d B%d L%d R%d T%d\n", size.media, cupsLocalizeDestMedia(http, dest, dinfo, flags, &size), size.width, size.length, size.bottom, size.left, size.right, size.top);
+ else
+ puts(" error");
+ }
+ }
+}
+
+
+/*
+ * 'show_supported()' - Show supported options, values, etc.
+ */
+
+static void
+show_supported(http_t *http, /* I - Connection to destination */
+ cups_dest_t *dest, /* I - Destination */
+ cups_dinfo_t *dinfo, /* I - Destination information */
+ const char *option, /* I - Option, if any */
+ const char *value) /* I - Value, if any */
+{
+ ipp_attribute_t *attr; /* Attribute */
+ int i, /* Looping var */
+ count; /* Number of values */
+
+
+ if (!option)
+ {
+ attr = cupsFindDestSupported(http, dest, dinfo, "job-creation-attributes");
+ if (attr)
+ {
+ count = ippGetCount(attr);
+ for (i = 0; i < count; i ++)
+ show_supported(http, dest, dinfo, ippGetString(attr, i, NULL), NULL);
+ }
+ else
+ {
+ static const char * const options[] =
+ { /* List of standard options */
+ CUPS_COPIES,
+ CUPS_FINISHINGS,
+ CUPS_MEDIA,
+ CUPS_NUMBER_UP,
+ CUPS_ORIENTATION,
+ CUPS_PRINT_COLOR_MODE,
+ CUPS_PRINT_QUALITY,
+ CUPS_SIDES
+ };
+
+ puts("No job-creation-attributes-supported attribute, probing instead.");
+
+ for (i = 0; i < (int)(sizeof(options) / sizeof(options[0])); i ++)
+ if (cupsCheckDestSupported(http, dest, dinfo, options[i], NULL))
+ show_supported(http, dest, dinfo, options[i], NULL);
+ }
+ }
+ else if (!value)
+ {
+ puts(option);
+ if ((attr = cupsFindDestSupported(http, dest, dinfo, option)) != NULL)
+ {
+ count = ippGetCount(attr);
+
+ switch (ippGetValueTag(attr))
+ {
+ case IPP_TAG_INTEGER :
+ for (i = 0; i < count; i ++)
+ printf(" %d\n", ippGetInteger(attr, i));
+ break;
+
+ case IPP_TAG_ENUM :
+ for (i = 0; i < count; i ++)
+ printf(" %s\n", ippEnumString(option, ippGetInteger(attr, i)));
+ break;
+
+ case IPP_TAG_RANGE :
+ for (i = 0; i < count; i ++)
+ {
+ int upper, lower = ippGetRange(attr, i, &upper);
+
+ printf(" %d-%d\n", lower, upper);
+ }
+ break;
+
+ case IPP_TAG_TEXTLANG :
+ case IPP_TAG_NAMELANG :
+ case IPP_TAG_TEXT :
+ case IPP_TAG_NAME :
+ case IPP_TAG_KEYWORD :
+ case IPP_TAG_URI :
+ case IPP_TAG_URISCHEME :
+ case IPP_TAG_CHARSET :
+ case IPP_TAG_LANGUAGE :
+ case IPP_TAG_MIMETYPE :
+ for (i = 0; i < count; i ++)
+ printf(" %s\n", ippGetString(attr, i, NULL));
+ break;
+
+ case IPP_TAG_STRING :
+ for (i = 0; i < count; i ++)
+ {
+ int j, len;
+ unsigned char *data = ippGetOctetString(attr, i, &len);
+
+ fputs(" ", stdout);
+ for (j = 0; j < len; j ++)
+ {
+ if (data[j] < ' ' || data[j] >= 0x7f)
+ printf("<%02X>", data[j]);
+ else
+ putchar(data[j]);
+ }
+ putchar('\n');
+ }
+ break;
+
+ case IPP_TAG_BOOLEAN :
+ break;
+
+ default :
+ printf(" %s\n", ippTagString(ippGetValueTag(attr)));
+ break;
+ }
+ }
+
+ }
+ else if (cupsCheckDestSupported(http, dest, dinfo, option, value))
+ puts("YES");
+ else
+ puts("NO");
+
+}
+
+
+/*
+ * 'usage()' - Show program usage.
+ */
+
+static void
+usage(const char *arg) /* I - Argument for usage message */
+{
+ if (arg)
+ printf("testdest: Unknown option \"%s\".\n", arg);
+
+ puts("Usage:");
+ puts(" ./testdest name [operation ...]");
+ puts(" ./testdest ipp://... [operation ...]");
+ puts(" ./testdest ipps://... [operation ...]");
+ puts(" ./testdest --enum [grayscale] [color] [duplex] [staple] [small]\n"
+ " [medium] [large]");
+ puts("");
+ puts("Operations:");
+ puts(" conflicts options");
+ puts(" default option");
+ puts(" localize option [value]");
+ puts(" media [borderless] [duplex] [exact] [ready] [name or size]");
+ puts(" print filename [options]");
+ puts(" supported [option [value]]");
+
+ exit(arg != NULL);
+}
+
+
+/*
+ * End of "$Id$".
+ */
for (i = 0; i < num_displayed; i ++)
{
if (i)
- putchar(',');
+ fputc(',', outfile);
buffer[0] = '\0';
if (strchr(buffer, ',') != NULL || strchr(buffer, '\"') != NULL ||
strchr(buffer, '\\') != NULL)
{
- putchar('\"');
+ putc('\"', outfile);
for (bufptr = buffer; *bufptr; bufptr ++)
{
if (*bufptr == '\\' || *bufptr == '\"')
- putchar('\\');
- putchar(*bufptr);
+ putc('\\', outfile);
+ putc(*bufptr, outfile);
}
- putchar('\"');
+ putc('\"', outfile);
}
else
- fputs(buffer, stdout);
+ fputs(buffer, outfile);
}
- putchar('\n');
+ putc('\n', outfile);
}
else
{
for (i = 0; i < num_displayed; i ++)
{
if (i)
- putchar(',');
+ putc(',', outfile);
- fputs(displayed[i], stdout);
+ fputs(displayed[i], outfile);
}
- putchar('\n');
+ putc('\n', outfile);
}
free(buffer);
for (i = 0; i < num_displayed; i ++)
{
if (i)
- putchar(' ');
+ putc(' ', outfile);
buffer[0] = '\0';
}
}
- printf("%*s", (int)-widths[i], buffer);
+ fprintf(outfile, "%*s", (int)-widths[i], buffer);
}
- putchar('\n');
+ putc('\n', outfile);
}
else
{
for (i = 0; i < num_displayed; i ++)
{
if (i)
- putchar(' ');
+ putc(' ', outfile);
- printf("%*s", (int)-widths[i], displayed[i]);
+ fprintf(outfile, "%*s", (int)-widths[i], displayed[i]);
}
- putchar('\n');
+ putc('\n', outfile);
for (i = 0; i < num_displayed; i ++)
{
if (i)
- putchar(' ');
+ putc(' ', outfile);
memset(buffer, '-', widths[i]);
buffer[widths[i]] = '\0';
- fputs(buffer, stdout);
+ fputs(buffer, outfile);
}
- putchar('\n');
+ putc('\n', outfile);
}
free(buffer);
);
dependencies = (
726AD704135E8AA1002C930D /* PBXTargetDependency */,
+ 2767FC5419267469000F61D3 /* PBXTargetDependency */,
273BF6DE1333B6370022CAAB /* PBXTargetDependency */,
+ 2767FC5619267469000F61D3 /* PBXTargetDependency */,
278C58D6136B641D00836530 /* PBXTargetDependency */,
270CCDB2135E3CDE00007BE2 /* PBXTargetDependency */,
);
276683FD1337F7B8000D33D0 /* libcups.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220EAE1333047D00FCA411 /* libcups.dylib */; };
2766840F1337FA38000D33D0 /* libcups.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220EAE1333047D00FCA411 /* libcups.dylib */; };
276684111337FA7C000D33D0 /* cupsaddsmb.c in Sources */ = {isa = PBXBuildFile; fileRef = 276684101337FA7C000D33D0 /* cupsaddsmb.c */; };
+ 2767FC5219266A36000F61D3 /* testdest.c in Sources */ = {isa = PBXBuildFile; fileRef = 2767FC5119266A36000F61D3 /* testdest.c */; };
+ 2767FC57192674C4000F61D3 /* libcups_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 72A4332F155844CF002E172D /* libcups_static.a */; };
+ 2767FC58192674E0000F61D3 /* libcups_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 72A4332F155844CF002E172D /* libcups_static.a */; };
+ 2767FC5F1926750C000F61D3 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC591926750C000F61D3 /* CoreFoundation.framework */; };
+ 2767FC601926750C000F61D3 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5A1926750C000F61D3 /* libiconv.dylib */; };
+ 2767FC611926750C000F61D3 /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5B1926750C000F61D3 /* libresolv.dylib */; };
+ 2767FC621926750C000F61D3 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5C1926750C000F61D3 /* libz.dylib */; };
+ 2767FC631926750C000F61D3 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5D1926750C000F61D3 /* Security.framework */; };
+ 2767FC641926750C000F61D3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5E1926750C000F61D3 /* SystemConfiguration.framework */; };
+ 2767FC6519267538000F61D3 /* libcups_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 72A4332F155844CF002E172D /* libcups_static.a */; };
+ 2767FC6619267538000F61D3 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC591926750C000F61D3 /* CoreFoundation.framework */; };
+ 2767FC6719267538000F61D3 /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5B1926750C000F61D3 /* libresolv.dylib */; };
+ 2767FC6819267538000F61D3 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5C1926750C000F61D3 /* libz.dylib */; };
+ 2767FC6919267538000F61D3 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5D1926750C000F61D3 /* Security.framework */; };
+ 2767FC6A19267538000F61D3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5E1926750C000F61D3 /* SystemConfiguration.framework */; };
+ 2767FC6B192685E6000F61D3 /* libcups_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 72A4332F155844CF002E172D /* libcups_static.a */; };
+ 2767FC6C192685E6000F61D3 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC591926750C000F61D3 /* CoreFoundation.framework */; };
+ 2767FC6D192685E6000F61D3 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5A1926750C000F61D3 /* libiconv.dylib */; };
+ 2767FC6E192685E6000F61D3 /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5B1926750C000F61D3 /* libresolv.dylib */; };
+ 2767FC6F192685E6000F61D3 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5C1926750C000F61D3 /* libz.dylib */; };
+ 2767FC70192685E6000F61D3 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5D1926750C000F61D3 /* Security.framework */; };
+ 2767FC71192685E6000F61D3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2767FC5E1926750C000F61D3 /* SystemConfiguration.framework */; };
+ 2767FC7219268F06000F61D3 /* dest-job.c in Sources */ = {isa = PBXBuildFile; fileRef = 72CF95E018A13543000FCAE4 /* dest-job.c */; };
+ 2767FC7319268F09000F61D3 /* dest-localization.c in Sources */ = {isa = PBXBuildFile; fileRef = 72CF95E118A13543000FCAE4 /* dest-localization.c */; };
+ 2767FC7419268F0C000F61D3 /* dest-options.c in Sources */ = {isa = PBXBuildFile; fileRef = 72CF95E218A13543000FCAE4 /* dest-options.c */; };
278C58E3136B647200836530 /* testhttp.c in Sources */ = {isa = PBXBuildFile; fileRef = 278C58E2136B647200836530 /* testhttp.c */; };
278C58E9136B64B000836530 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C58E5136B64AF00836530 /* CoreFoundation.framework */; };
278C58EA136B64B000836530 /* Kerberos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C58E6136B64B000836530 /* Kerberos.framework */; };
remoteGlobalIDString = 276684031337FA1D000D33D0;
remoteInfo = cupsaddsmb;
};
+ 2767FC4819266A0D000F61D3 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 72BF96371333042100B1EAD7 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 274FF6891333B1C400317ECB;
+ remoteInfo = libcups_static;
+ };
+ 2767FC5319267469000F61D3 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 72BF96371333042100B1EAD7 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 276683EF1337F78E000D33D0;
+ remoteInfo = ipptool;
+ };
+ 2767FC5519267469000F61D3 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 72BF96371333042100B1EAD7 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 2767FC4619266A0D000F61D3;
+ remoteInfo = testdest;
+ };
278C58D5136B641D00836530 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 72BF96371333042100B1EAD7 /* Project object */;
);
runOnlyForDeploymentPostprocessing = 1;
};
+ 2767FC4C19266A0D000F61D3 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = /usr/share/man/man1/;
+ dstSubfolderSpec = 0;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ };
278C58C9136B640300836530 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
276683F91337F7A9000D33D0 /* ipptool.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ipptool.c; path = ../test/ipptool.c; sourceTree = "<group>"; };
276684041337FA1D000D33D0 /* cupsaddsmb */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = cupsaddsmb; sourceTree = BUILT_PRODUCTS_DIR; };
276684101337FA7C000D33D0 /* cupsaddsmb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cupsaddsmb.c; path = ../systemv/cupsaddsmb.c; sourceTree = "<group>"; };
+ 2767FC5019266A0D000F61D3 /* testdest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testdest; sourceTree = BUILT_PRODUCTS_DIR; };
+ 2767FC5119266A36000F61D3 /* testdest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testdest.c; path = ../cups/testdest.c; sourceTree = "<group>"; };
+ 2767FC591926750C000F61D3 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
+ 2767FC5A1926750C000F61D3 /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = usr/lib/libiconv.dylib; sourceTree = SDKROOT; };
+ 2767FC5B1926750C000F61D3 /* libresolv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libresolv.dylib; path = usr/lib/libresolv.dylib; sourceTree = SDKROOT; };
+ 2767FC5C1926750C000F61D3 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
+ 2767FC5D1926750C000F61D3 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
+ 2767FC5E1926750C000F61D3 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
+ 2767FC7519269687000F61D3 /* pwg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pwg.h; path = ../cups/pwg.h; sourceTree = "<group>"; };
+ 2767FC76192696A0000F61D3 /* raster-private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "raster-private.h"; path = "../cups/raster-private.h"; sourceTree = "<group>"; };
278C58CB136B640300836530 /* testhttp */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testhttp; sourceTree = BUILT_PRODUCTS_DIR; };
278C58E2136B647200836530 /* testhttp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testhttp.c; path = ../cups/testhttp.c; sourceTree = "<group>"; };
278C58E5136B64AF00836530 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 2767FC57192674C4000F61D3 /* libcups_static.a in Frameworks */,
278C58E9136B64B000836530 /* CoreFoundation.framework in Frameworks */,
278C58EA136B64B000836530 /* Kerberos.framework in Frameworks */,
278C58EB136B64B000836530 /* Security.framework in Frameworks */,
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 2767FC5F1926750C000F61D3 /* CoreFoundation.framework in Frameworks */,
+ 2767FC601926750C000F61D3 /* libiconv.dylib in Frameworks */,
+ 2767FC611926750C000F61D3 /* libresolv.dylib in Frameworks */,
+ 2767FC621926750C000F61D3 /* libz.dylib in Frameworks */,
+ 2767FC631926750C000F61D3 /* Security.framework in Frameworks */,
+ 2767FC641926750C000F61D3 /* SystemConfiguration.framework in Frameworks */,
+ 2767FC58192674E0000F61D3 /* libcups_static.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 2767FC4B19266A0D000F61D3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2767FC6B192685E6000F61D3 /* libcups_static.a in Frameworks */,
+ 2767FC6C192685E6000F61D3 /* CoreFoundation.framework in Frameworks */,
+ 2767FC6D192685E6000F61D3 /* libiconv.dylib in Frameworks */,
+ 2767FC6E192685E6000F61D3 /* libresolv.dylib in Frameworks */,
+ 2767FC6F192685E6000F61D3 /* libz.dylib in Frameworks */,
+ 2767FC70192685E6000F61D3 /* Security.framework in Frameworks */,
+ 2767FC71192685E6000F61D3 /* SystemConfiguration.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
278C58C8136B640300836530 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 2767FC6519267538000F61D3 /* libcups_static.a in Frameworks */,
+ 2767FC6619267538000F61D3 /* CoreFoundation.framework in Frameworks */,
+ 2767FC6719267538000F61D3 /* libresolv.dylib in Frameworks */,
+ 2767FC6819267538000F61D3 /* libz.dylib in Frameworks */,
+ 2767FC6919267538000F61D3 /* Security.framework in Frameworks */,
+ 2767FC6A19267538000F61D3 /* SystemConfiguration.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
273BF6B81333B4A90022CAAB /* tests */ = {
isa = PBXGroup;
children = (
+ 2767FC5119266A36000F61D3 /* testdest.c */,
273BF6C61333B5370022CAAB /* testcups.c */,
278C58E2136B647200836530 /* testhttp.c */,
270CCDBB135E3D3E00007BE2 /* testmime.c */,
278C58CB136B640300836530 /* testhttp */,
72A4332F155844CF002E172D /* libcups_static.a */,
72CF95F118A19134000FCAE4 /* ipptool copy */,
+ 2767FC5019266A0D000F61D3 /* testdest */,
);
name = Products;
sourceTree = "<group>";
72220FB413330BCE00FCA411 /* mime.h */,
72220EF7133305BB00FCA411 /* ppd.h */,
274FF6091333315100317ECB /* ppdc.h */,
+ 2767FC7519269687000F61D3 /* pwg.h */,
72220EFA133305BB00FCA411 /* raster.h */,
72220EFD133305BB00FCA411 /* sidechannel.h */,
72220F07133305BB00FCA411 /* transcode.h */,
7271883C1374AB14001A2036 /* mime-private.h */,
72220EF5133305BB00FCA411 /* ppd-private.h */,
72220EF9133305BB00FCA411 /* pwg-private.h */,
+ 2767FC76192696A0000F61D3 /* raster-private.h */,
72220EFE133305BB00FCA411 /* snmp-private.h */,
72220F01133305BB00FCA411 /* string-private.h */,
72220F04133305BB00FCA411 /* thread-private.h */,
72220FB113330B4A00FCA411 /* Frameworks */ = {
isa = PBXGroup;
children = (
+ 2767FC591926750C000F61D3 /* CoreFoundation.framework */,
+ 2767FC5A1926750C000F61D3 /* libiconv.dylib */,
+ 2767FC5B1926750C000F61D3 /* libresolv.dylib */,
+ 2767FC5C1926750C000F61D3 /* libz.dylib */,
+ 2767FC5D1926750C000F61D3 /* Security.framework */,
+ 2767FC5E1926750C000F61D3 /* SystemConfiguration.framework */,
72D53A3915B492FA003F877F /* libpam.dylib */,
72D53A3315B4925B003F877F /* ApplicationServices.framework */,
72D53A2C15B4913D003F877F /* IOKit.framework */,
productReference = 276684041337FA1D000D33D0 /* cupsaddsmb */;
productType = "com.apple.product-type.tool";
};
+ 2767FC4619266A0D000F61D3 /* testdest */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 2767FC4D19266A0D000F61D3 /* Build configuration list for PBXNativeTarget "testdest" */;
+ buildPhases = (
+ 2767FC4919266A0D000F61D3 /* Sources */,
+ 2767FC4B19266A0D000F61D3 /* Frameworks */,
+ 2767FC4C19266A0D000F61D3 /* CopyFiles */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 2767FC4719266A0D000F61D3 /* PBXTargetDependency */,
+ );
+ name = testdest;
+ productName = testcups;
+ productReference = 2767FC5019266A0D000F61D3 /* testdest */;
+ productType = "com.apple.product-type.tool";
+ };
278C58CA136B640300836530 /* testhttp */ = {
isa = PBXNativeTarget;
buildConfigurationList = 278C58D3136B640300836530 /* Build configuration list for PBXNativeTarget "testhttp" */;
720DD6C11358FD5F0064AA82 /* snmp */,
7243792F1333FB85009631B9 /* socket */,
273BF6BC1333B5000022CAAB /* testcups */,
+ 2767FC4619266A0D000F61D3 /* testdest */,
278C58CA136B640300836530 /* testhttp */,
270CCDA6135E3C9E00007BE2 /* testmime */,
7243795A1333FF1D009631B9 /* usb */,
274FF69E1333B1C400317ECB /* http-addrlist.c in Sources */,
274FF69F1333B1C400317ECB /* http-support.c in Sources */,
274FF6A01333B1C400317ECB /* http.c in Sources */,
+ 2767FC7419268F0C000F61D3 /* dest-options.c in Sources */,
274FF6A11333B1C400317ECB /* ipp-support.c in Sources */,
274FF6A21333B1C400317ECB /* ipp.c in Sources */,
274FF6A31333B1C400317ECB /* langprintf.c in Sources */,
727AD5B819100A58009F6862 /* tls.c in Sources */,
274FF6AB1333B1C400317ECB /* page.c in Sources */,
274FF6AC1333B1C400317ECB /* ppd-cache.c in Sources */,
+ 2767FC7219268F06000F61D3 /* dest-job.c in Sources */,
274FF6AD1333B1C400317ECB /* ppd.c in Sources */,
274FF6AE1333B1C400317ECB /* pwg-media.c in Sources */,
+ 2767FC7319268F09000F61D3 /* dest-localization.c in Sources */,
274FF6AF1333B1C400317ECB /* request.c in Sources */,
274FF6B01333B1C400317ECB /* sidechannel.c in Sources */,
274FF6B11333B1C400317ECB /* snmp.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 2767FC4919266A0D000F61D3 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2767FC5219266A36000F61D3 /* testdest.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
278C58C7136B640300836530 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
target = 276684031337FA1D000D33D0 /* cupsaddsmb */;
targetProxy = 276684121337FA8D000D33D0 /* PBXContainerItemProxy */;
};
+ 2767FC4719266A0D000F61D3 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 274FF6891333B1C400317ECB /* libcups_static */;
+ targetProxy = 2767FC4819266A0D000F61D3 /* PBXContainerItemProxy */;
+ };
+ 2767FC5419267469000F61D3 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 276683EF1337F78E000D33D0 /* ipptool */;
+ targetProxy = 2767FC5319267469000F61D3 /* PBXContainerItemProxy */;
+ };
+ 2767FC5619267469000F61D3 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 2767FC4619266A0D000F61D3 /* testdest */;
+ targetProxy = 2767FC5519267469000F61D3 /* PBXContainerItemProxy */;
+ };
278C58D6136B641D00836530 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 278C58CA136B640300836530 /* testhttp */;
};
name = Release;
};
+ 2767FC4E19266A0D000F61D3 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = testdest;
+ };
+ name = Debug;
+ };
+ 2767FC4F19266A0D000F61D3 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = testdest;
+ };
+ name = Release;
+ };
278C58D1136B640300836530 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ 2767FC4D19266A0D000F61D3 /* Build configuration list for PBXNativeTarget "testdest" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 2767FC4E19266A0D000F61D3 /* Debug */,
+ 2767FC4F19266A0D000F61D3 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
278C58D3136B640300836530 /* Build configuration list for PBXNativeTarget "testhttp" */ = {
isa = XCConfigurationList;
buildConfigurations = (