job->current_file = 0;
- if (!JobHistory || !JobFiles || purge || (job->dtype & CUPS_PRINTER_REMOTE))
+ if (!JobHistory || !JobFiles || purge)
{
for (i = 1; i <= job->num_files; i ++)
{
}
}
- if (JobHistory && !purge && !(job->dtype & CUPS_PRINTER_REMOTE))
+ if (JobHistory && !purge)
{
/*
* Save job state info...
for (job = (cupsd_job_t *)cupsArrayFirst(Jobs);
job;
job = (cupsd_job_t *)cupsArrayNext(Jobs))
+ {
+ if (!job->dest || !job->username)
+ cupsdLoadJob(job);
+
+ if (!job->dest || !job->username)
+ continue;
+
if ((dest == NULL || !strcmp(job->dest, dest)) &&
(username == NULL || !strcmp(job->username, username)))
{
cupsdCancelJob(job, purge, IPP_JOB_CANCELED);
}
+ }
cupsdCheckJobs();
}
title[IPP_MAX_NAME],
/* Job title string */
copies[255], /* # copies string */
- *envp[MAX_ENV + 15],
+ *envp[MAX_ENV + 16],
/* Environment variables */
charset[255], /* CHARSET env variable */
class_name[255],/* CLASS env variable */
final_content_type[1024],
/* FINAL_CONTENT_TYPE env variable */
lang[255], /* LANG env variable */
+#ifdef __APPLE__
+ apple_language[255],
+ /* APPLE_LANGUAGE env variable */
+#endif /* __APPLE__ */
ppd[1024], /* PPD env variable */
printer_name[255],
/* PRINTER env variable */
attr = ippFindAttribute(job->attrs, "attributes-natural-language",
IPP_TAG_LANGUAGE);
+#ifdef __APPLE__
+ strcpy(apple_language, "APPLE_LANGUAGE");
+ _cupsAppleLanguage(attr->values[0].string.text,
+ apple_language + 15, sizeof(apple_language) - 15);
+#endif /* __APPLE__ */
+
switch (strlen(attr->values[0].string.text))
{
default :
envp[envc ++] = charset;
envp[envc ++] = lang;
+#ifdef __APPLE__
+ envp[envc ++] = apple_language;
+#endif /* __APPLE__ */
envp[envc ++] = ppd;
envp[envc ++] = rip_max_cache;
envp[envc ++] = content_type;