MCPcopy Create free account
hub / github.com/OpenPrinting/cups / process_state_message

Function process_state_message

tools/ippeveprinter.c:7095–7177  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7093 */
7094
7095static void
7096process_state_message(
7097 ippeve_job_t *job, /* I - Job */
7098 char *message) /* I - Message */
7099{
7100 int i; /* Looping var */
7101 ippeve_preason_t state_reasons, /* printer-state-reasons values */
7102 bit; /* Current reason bit */
7103 char *ptr, /* Pointer into message */
7104 *next; /* Next keyword in message */
7105 int remove; /* Non-zero if we are removing keywords */
7106
7107
7108 /*
7109 * Skip leading "STATE:" and any whitespace...
7110 */
7111
7112 for (message += 6; *message; message ++)
7113 if (*message != ' ' && *message != '\t')
7114 break;
7115
7116 /*
7117 * Support the following forms of message:
7118 *
7119 * "keyword[,keyword,...]" to set the printer-state-reasons value(s).
7120 *
7121 * "-keyword[,keyword,...]" to remove keywords.
7122 *
7123 * "+keyword[,keyword,...]" to add keywords.
7124 *
7125 * Keywords may or may not have a suffix (-report, -warning, -error) per
7126 * RFC 8011.
7127 */
7128
7129 if (*message == '-')
7130 {
7131 remove = 1;
7132 state_reasons = job->printer->state_reasons;
7133 message ++;
7134 }
7135 else if (*message == '+')
7136 {
7137 remove = 0;
7138 state_reasons = job->printer->state_reasons;
7139 message ++;
7140 }
7141 else
7142 {
7143 remove = 0;
7144 state_reasons = IPPEVE_PREASON_NONE;
7145 }
7146
7147 while (*message)
7148 {
7149 if ((next = strchr(message, ',')) != NULL)
7150 *next++ = '\0';
7151
7152 if ((ptr = strstr(message, "-error")) != NULL)

Callers 1

process_jobFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected