~ubuntu-branches/ubuntu/utopic/cups/utopic

« back to all changes in this revision

Viewing changes to scheduler/printers.c

  • Committer: Package Import Robot
  • Author(s): Didier Raboud, Till Kamppeter, Steve Langasek, Didier Raboud
  • Date: 2014-01-03 18:42:39 UTC
  • mfrom: (99.2.3 sid)
  • Revision ID: package-import@ubuntu.com-20140103184239-85wju2l7weie4dgo
Tags: 1.7.0-1
* New 1.7.0 upstream release

[ Till Kamppeter ]
* Refresh most patches with quilt
* Removed usb-backend-do-not-crash-if-usb-disabled-in-bios and
  cupsd-no-crash-on-avahi-threaded-poll-shutdown patches as they got
  applied upstream
* Removed drop-arch-specifics-from-doc patch as it is not needed
  anymore
* Updated drop_unnecessary_dependencies, manpage-hyphen-minus,
  manpage-translations and ppd-poll-with-client-conf patches manually
  to apply to the new CUPS version
* Added error counting exception from
  usb-backend-do-not-crash-if-usb-disabled-in-bios to
  tests-ignore-warnings
* Install the newly added ippfind utility and its manpage in
  cups-client
* Added pwg.h to libcups2-dev package
* Call dh_auto_clean only if the file Makedefs is present, to avoid a
  FTBFS
* Added color management extensions from Joe Simon's GSoC 2013
  project.
* Patch cups-files.conf to activate CUPS daemon syncing of files when
  closing, so that config files (like printers.conf) do not
  mysteriously disappear (LP: #1157972)
* In the AppArmor profile, allow execution of programs in
  /etc/cups/interfaces/, needed to make CUPS working with queues based
  on System V interface scripts, especially PPD-less queues
  auto-generated by cups-browsed from cups-filters 1.0.41 on.
* Silenced AppArmor noise from udev.conf in syslog (LP: #1229766)

[ Steve Langasek ]
* Add cups-filters (>= 1.0.42) as alternative to foomatic-filters
  (which is deprecated) in package relationships

[ Didier Raboud ]
* Remove Roger Leigh from uploaders on his request with thanks for his
  past work!
* Switch avahi LSB Should-Start dependency to be avahi-daemon; also
  bump package relationship to >= 0.6.31-3~ (Closes: #731608)
* Refresh the manpage translation files
* Move the USB backend quirk rules file to cups-server-common
* Add 38 new 1.7.0 libcups2 symbols
* Mark one C++ libcupsppdc1 symbol as optional as it isn't exported in
  1.7.0 anymore
* Import Fedora patches:
  - to avoid sign-extending CRCs in gz decompression
  - to build with full read-only relocations
  - to fix job history logging (upstream patch)
  - to set the internal default for SyncOnClose to Yes, instead of
    only configuring it to Yes
  - to fix a stringpool corruption issue
  - to prevent USB timeouts causing incorrect print output
* Import Fedora patch updates:
  - to dont-use-dbus-from-two-threads patch so it removes a call to
    avahi_threaded_poll_stop()
  - to avoid_stale_lockfile_in_dbus_notifier patch to call _exit when
    handling SIGTERM
* Move manpage-translations patch at the very end of the patch series
  to have it include all our patches

Show diffs side-by-side

added added

removed removed

Lines of Context:
1901
1901
cupsdSetPrinterAttr(
1902
1902
    cupsd_printer_t *p,                 /* I - Printer */
1903
1903
    const char      *name,              /* I - Attribute name */
1904
 
    char            *value)             /* I - Attribute value string */
 
1904
    const char      *value)             /* I - Attribute value string */
1905
1905
{
1906
1906
  ipp_attribute_t       *attr;          /* Attribute */
1907
1907
  int                   i,              /* Looping var */
1908
1908
                        count;          /* Number of values */
1909
 
  char                  *ptr,           /* Pointer into value */
 
1909
  char                  *temp,          /* Temporary copy of value string */
 
1910
                        *ptr,           /* Pointer into value */
1910
1911
                        *start,         /* Start of value */
1911
1912
                        quote;          /* Quote character */
1912
1913
  ipp_tag_t             value_tag;      /* Value tag for this attribute */
1923
1924
  }
1924
1925
 
1925
1926
 /*
 
1927
  * Copy the value string so we can do what we want with it...
 
1928
  */
 
1929
 
 
1930
  if ((temp = strdup(value)) == NULL)
 
1931
  {
 
1932
    cupsdLogMessage(CUPSD_LOG_ERROR,
 
1933
                    "Unable to duplicate value for \"%s\" attribute.", name);
 
1934
    return;
 
1935
  }
 
1936
 
 
1937
 /*
1926
1938
  * Count the number of values...
1927
1939
  */
1928
1940
 
1929
 
  for (count = 1, quote = '\0', ptr = value;
 
1941
  for (count = 1, quote = '\0', ptr = temp;
1930
1942
       *ptr;
1931
1943
       ptr ++)
1932
1944
  {
1974
1986
      return;
1975
1987
    }
1976
1988
 
1977
 
    for (i = 0; i < count; i ++)
 
1989
    for (i = 0, start = temp; i < count; i ++)
1978
1990
    {
1979
 
      if ((ptr = strchr(value, ',')) != NULL)
 
1991
      if ((ptr = strchr(start, ',')) != NULL)
1980
1992
        *ptr++ = '\0';
1981
1993
 
1982
 
      attr->values[i].integer = strtol(value, NULL, 10);
 
1994
      attr->values[i].integer = strtol(start, NULL, 10);
1983
1995
 
1984
1996
      if (ptr)
1985
 
        value = ptr;
 
1997
        start = ptr;
1986
1998
    }
1987
1999
  }
1988
2000
  else
2024
2036
      return;
2025
2037
    }
2026
2038
 
2027
 
    for (i = 0, quote = '\0', ptr = value; i < count; i ++)
 
2039
    for (i = 0, quote = '\0', ptr = temp; i < count; i ++)
2028
2040
    {
2029
2041
      for (start = ptr; *ptr; ptr ++)
2030
2042
      {
2053
2065
      attr->values[i].string.text = _cupsStrAlloc(start);
2054
2066
    }
2055
2067
  }
 
2068
 
 
2069
  free(temp);
2056
2070
}
2057
2071
 
2058
2072