]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - cups/ipp-support.c
Merge changes from CUPS 1.4svn-r7851.
[thirdparty/cups.git] / cups / ipp-support.c
index 47194d133272d97eb0cb84aae73998a5f6670a94..6ab14b16e3c88d41d300a333ed758313c0bf3c15 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: ipp-support.c 7460 2008-04-16 02:19:54Z mike $"
+ * "$Id: ipp-support.c 7847 2008-08-19 04:22:14Z mike $"
  *
  *   Internet Printing Protocol support functions for the Common UNIX
  *   Printing System (CUPS).
@@ -154,6 +154,90 @@ static char        * const ipp_std_ops[] =
                * const ipp_cups_ops2[] =
                {
                  "CUPS-Get-Document"
+               },
+               * const ipp_tag_names[] =
+               {                       /* Value/group tag names */
+                 "zero",               /* 0x00 */
+                 "operation-attributes-tag",
+                                       /* 0x01 */
+                 "job-attributes-tag", /* 0x02 */
+                 "end-of-attributes-tag",
+                                       /* 0x03 */
+                 "printer-attributes-tag",
+                                       /* 0x04 */
+                 "unsupported-attributes-tag",
+                                       /* 0x05 */
+                 "subscription-attributes-tag",
+                                       /* 0x06 */
+                 "event-notification-attributes-tag",
+                                       /* 0x07 */
+                 "unknown-08",         /* 0x08 */
+                 "unknown-09",         /* 0x09 */
+                 "unknown-0a",         /* 0x0a */
+                 "unknown-0b",         /* 0x0b */
+                 "unknown-0c",         /* 0x0c */
+                 "unknown-0d",         /* 0x0d */
+                 "unknown-0e",         /* 0x0e */
+                 "unknown-0f",         /* 0x0f */
+                 "unsupported",        /* 0x10 */
+                 "default",            /* 0x11 */
+                 "unknown",            /* 0x12 */
+                 "no-value",           /* 0x13 */
+                 "unknown-14",         /* 0x14 */
+                 "not-settable",       /* 0x15 */
+                 "delete-attribute",   /* 0x16 */
+                 "admin-define",       /* 0x17 */
+                 "unknown-18",         /* 0x18 */
+                 "unknown-19",         /* 0x19 */
+                 "unknown-1a",         /* 0x1a */
+                 "unknown-1b",         /* 0x1b */
+                 "unknown-1c",         /* 0x1c */
+                 "unknown-1d",         /* 0x1d */
+                 "unknown-1e",         /* 0x1e */
+                 "unknown-1f",         /* 0x1f */
+                 "unknown-20",         /* 0x20 */
+                 "integer",            /* 0x21 */
+                 "boolean",            /* 0x22 */
+                 "enum",               /* 0x23 */
+                 "unknown-24",         /* 0x24 */
+                 "unknown-25",         /* 0x25 */
+                 "unknown-26",         /* 0x26 */
+                 "unknown-27",         /* 0x27 */
+                 "unknown-28",         /* 0x28 */
+                 "unknown-29",         /* 0x29 */
+                 "unknown-2a",         /* 0x2a */
+                 "unknown-2b",         /* 0x2b */
+                 "unknown-2c",         /* 0x2c */
+                 "unknown-2d",         /* 0x2d */
+                 "unknown-2e",         /* 0x2e */
+                 "unknown-2f",         /* 0x2f */
+                 "octetString",        /* 0x30 */
+                 "dateTime",           /* 0x31 */
+                 "resolution",         /* 0x32 */
+                 "rangeOfInteger",     /* 0x33 */
+                 "begCollection",      /* 0x34 */
+                 "textWithLanguage",   /* 0x35 */
+                 "nameWithLanguage",   /* 0x36 */
+                 "endCollection",      /* 0x37 */
+                 "unknown-38",         /* 0x38 */
+                 "unknown-39",         /* 0x39 */
+                 "unknown-3a",         /* 0x3a */
+                 "unknown-3b",         /* 0x3b */
+                 "unknown-3c",         /* 0x3c */
+                 "unknown-3d",         /* 0x3d */
+                 "unknown-3e",         /* 0x3e */
+                 "unknown-3f",         /* 0x3f */
+                 "unknown-40",         /* 0x40 */
+                 "textWithoutLanguage",/* 0x41 */
+                 "nameWithoutLanguage",/* 0x42 */
+                 "unknown-43",         /* 0x43 */
+                 "keyword",            /* 0x44 */
+                 "uri",                /* 0x45 */
+                 "uriScheme",          /* 0x46 */
+                 "charset",            /* 0x47 */
+                 "naturalLanguage",    /* 0x48 */
+                 "mimeMediaType",      /* 0x49 */
+                 "memberAttrName"      /* 0x4a */
                };
 
 
@@ -371,5 +455,62 @@ ippSetPort(int p)                  /* I - Port number to use */
 
 
 /*
- * End of "$Id: ipp-support.c 7460 2008-04-16 02:19:54Z mike $".
+ * 'ippTagString()' - Return the tag name corresponding to a tag value.
+ *
+ * The returned names are defined in RFC 2911 and 3382.
+ *
+ * @since CUPS 1.4@
+ */
+
+const char *                           /* O - Tag name */
+ippTagString(ipp_tag_t tag)            /* I - Tag value */
+{
+  if (tag < (ipp_tag_t)(sizeof(ipp_tag_names) / sizeof(ipp_tag_names[0])))
+    return (ipp_tag_names[tag]);
+  else
+    return ("UNKNOWN");
+}
+
+
+/*
+ * 'ippTagValue()' - Return the tag value corresponding to a tag name.
+ *
+ * The tag names are defined in RFC 2911 and 3382.
+ *
+ * @since CUPS 1.4@
+ */
+
+ipp_tag_t                              /* O - Tag value */
+ippTagValue(const char *name)          /* I - Tag name */
+{
+  int  i;                              /* Looping var */
+
+
+  for (i = 0; i < (sizeof(ipp_tag_names) / sizeof(ipp_tag_names[0])); i ++)
+    if (!strcasecmp(name, ipp_tag_names[i]))
+      return ((ipp_tag_t)i);
+
+  if (!strcasecmp(name, "operation"))
+    return (IPP_TAG_OPERATION);
+  else if (!strcasecmp(name, "job"))
+    return (IPP_TAG_JOB);
+  else if (!strcasecmp(name, "printer"))
+    return (IPP_TAG_PRINTER);
+  else if (!strcasecmp(name, "subscription"))
+    return (IPP_TAG_SUBSCRIPTION);
+  else if (!strcasecmp(name, "language"))
+    return (IPP_TAG_LANGUAGE);
+  else if (!strcasecmp(name, "mimetype"))
+    return (IPP_TAG_MIMETYPE);
+  else if (!strcasecmp(name, "name"))
+    return (IPP_TAG_NAME);
+  else if (!strcasecmp(name, "text"))
+    return (IPP_TAG_TEXT);
+  else
+    return (IPP_TAG_ZERO);
+}
+
+
+/*
+ * End of "$Id: ipp-support.c 7847 2008-08-19 04:22:14Z mike $".
  */