Index: doc/help/ref-ppdcfile.html =================================================================== --- doc/help/ref-ppdcfile.html (revision 7604) +++ doc/help/ref-ppdcfile.html (working copy) @@ -440,7 +440,11 @@ multiple lines, however no one line may exceed 255 characters.

+

See Also

+

LocAttribute

+ +

Choice

Syntax

@@ -1233,6 +1237,40 @@ in length. If no text is provided, the name is used.

+

LocAttribute

+ +

Syntax

+ +
+LocAttribute name "keyword/text" value
+
+ +

Examples

+ +
+LocAttribute fooProfile "Photo/Photographic Profile" "photopro.icc"
+
+ +

Description

+ +

The LocAttribute directive creates a localized PPD +attribute. The name is any combination of letters, numbers, and the +underscore and can be up to 40 characters in length.

+ +

The selector can be the empty string (""), a keyword +consisting of up to 40 letters, numbers, and the underscore, or +a string composed of a keyword and user text of up to 80 +characters.

+ +

The value is any string or number; the string may contain +multiple lines, however no one line may exceed 255 +characters.

+ +

See Also

+ +

Attribute

+ +

ManualCopies

Syntax

Index: man/ppdcfile.man =================================================================== --- man/ppdcfile.man (revision 7600) +++ man/ppdcfile.man (working copy) @@ -115,6 +115,8 @@ .TP 5 \fBInstallable\fR "name/text" .TP 5 +\fBLocAttribute\fR name "keyword/text" value +.TP 5 \fBManualCopies\fR boolean-value .TP 5 \fBManufacturer\fR "name" Index: CHANGES.txt =================================================================== --- CHANGES.txt (revision 7604) +++ CHANGES.txt (working copy) @@ -3,6 +3,10 @@ CHANGES IN CUPS V1.4b1 + - The PPD compiler now supports localizable attributes + (STR #2738) + - The ppdpo utility now includes cupsIPPReasons values in + the message catalogs it generates (STR #2754) - The PPD compiler now supports conditional directives (STR #2636) - The ppdc utility now supports a "-t" option to test PPD Index: ppdc/ppdc-driver.cxx =================================================================== --- ppdc/ppdc-driver.cxx (revision 7598) +++ ppdc/ppdc-driver.cxx (working copy) @@ -3,7 +3,7 @@ // // PPD file compiler definitions for the CUPS PPD Compiler. // -// Copyright 2007 by Apple Inc. +// Copyright 2007-2008 by Apple Inc. // Copyright 2002-2006 by Easy Software Products. // // These coded instructions, statements, and computer programs are the @@ -437,11 +437,7 @@ cupsFilePrintf(fp, "*Product: \"%s\"%s", a->value->value, lf); } else - { - cupsFilePrintf(fp, "*Product: \"(ESP Ghostscript)\"%s", lf); - cupsFilePrintf(fp, "*Product: \"(GPL Ghostscript)\"%s", lf); - cupsFilePrintf(fp, "*Product: \"(GNU Ghostscript)\"%s", lf); - } + cupsFilePrintf(fp, "*Product: \"(%s)\"%s", model_name->value, lf); cupsFilePrintf(fp, "*Manufacturer: \"%s\"%s", catalog->find_message(manufacturer->value), lf); @@ -495,12 +491,7 @@ cupsFilePrintf(fp, "*PSVersion: \"%s\"%s", a->value->value, lf); } else - { - cupsFilePrintf(fp, "*PSVersion: \"(3010.000) 705\"%s", lf); - cupsFilePrintf(fp, "*PSVersion: \"(3010.000) 707\"%s", lf); - cupsFilePrintf(fp, "*PSVersion: \"(3010.000) 815\"%s", lf); - cupsFilePrintf(fp, "*PSVersion: \"(3010.000) 853\"%s", lf); - } + cupsFilePrintf(fp, "*PSVersion: \"(3010.000) 0\"%s", lf); if ((a = find_attr("LanguageLevel", NULL)) != NULL) cupsFilePrintf(fp, "*LanguageLevel: \"%s\"%s", a->value->value, lf); @@ -1171,10 +1162,12 @@ strncmp(a->name->value, "ParamCustom", 11)) continue; - if (strcmp(a->name->value, "APCustomColorMatchingName") && + if (!a->localizable && + strcmp(a->name->value, "APCustomColorMatchingName") && strcmp(a->name->value, "APPrinterPreset") && strcmp(a->name->value, "cupsICCProfile") && strcmp(a->name->value, "cupsIPPReason") && + strcmp(a->name->value, "cupsMarkerName") && strncmp(a->name->value, "Custom", 6) && strncmp(a->name->value, "ParamCustom", 11)) continue; @@ -1183,7 +1176,8 @@ a->name->value, a->selector->value, locatalog->find_message(a->text && a->text->value ? a->text->value : a->name->value), - !strcmp(a->name->value, "cupsIPPReason") ? + ((a->localizable && a->value->value[0]) || + !strcmp(a->name->value, "cupsIPPReason")) ? locatalog->find_message(a->value->value) : "", lf); } Index: ppdc/ppdc-attr.cxx =================================================================== --- ppdc/ppdc-attr.cxx (revision 7598) +++ ppdc/ppdc-attr.cxx (working copy) @@ -32,13 +32,15 @@ ppdcAttr::ppdcAttr(const char *n, // I - Name const char *s, // I - Spec string const char *t, // I - Human-readable text - const char *v) // I - Value + const char *v, // I - Value + bool loc) // I - Localize this attribute? : ppdcShared() { - name = new ppdcString(n); - selector = new ppdcString(s); - text = new ppdcString(t); - value = new ppdcString(v); + name = new ppdcString(n); + selector = new ppdcString(s); + text = new ppdcString(t); + value = new ppdcString(v); + localizable = loc; } Index: ppdc/libcupsppdc.exp =================================================================== --- ppdc/libcupsppdc.exp (revision 7598) +++ ppdc/libcupsppdc.exp (working copy) @@ -1,158 +0,0 @@ -__ZN10ppdcChoiceC1EPKcS1_S1_ -__ZN10ppdcChoiceC2EPKcS1_S1_ -__ZN10ppdcChoiceD0Ev -__ZN10ppdcChoiceD1Ev -__ZN10ppdcChoiceD2Ev -__ZN10ppdcDriver10find_groupEPKc -__ZN10ppdcDriver11find_optionEPKc -__ZN10ppdcDriver11set_versionEPKc -__ZN10ppdcDriver14set_model_nameEPKc -__ZN10ppdcDriver14write_ppd_fileEP12_cups_file_sP11ppdcCatalogP9ppdcArrayP10ppdcSource14ppdcLineEnding -__ZN10ppdcDriver16set_default_fontEP8ppdcFont -__ZN10ppdcDriver16set_default_sizeEP13ppdcMediaSize -__ZN10ppdcDriver16set_manufacturerEPKc -__ZN10ppdcDriver16set_pc_file_nameEPKc -__ZN10ppdcDriver20set_custom_size_codeEPKc -__ZN10ppdcDriver9find_attrEPKcS1_ -__ZN10ppdcDriverC1EPS_ -__ZN10ppdcDriverC2EPS_ -__ZN10ppdcDriverD0Ev -__ZN10ppdcDriverD1Ev -__ZN10ppdcDriverD2Ev -__ZN10ppdcFilterC1EPKcS1_i -__ZN10ppdcFilterC2EPKcS1_i -__ZN10ppdcFilterD0Ev -__ZN10ppdcFilterD1Ev -__ZN10ppdcFilterD2Ev -__ZN10ppdcOption11find_choiceEPKc -__ZN10ppdcOption13set_defchoiceEP10ppdcChoice -__ZN10ppdcOptionC1E11ppdcOptTypePKcS2_14ppdcOptSectionf -__ZN10ppdcOptionC1EPS_ -__ZN10ppdcOptionC2E11ppdcOptTypePKcS2_14ppdcOptSectionf -__ZN10ppdcOptionC2EPS_ -__ZN10ppdcOptionD0Ev -__ZN10ppdcOptionD1Ev -__ZN10ppdcOptionD2Ev -__ZN10ppdcShared3getEv -__ZN10ppdcShared7releaseEv -__ZN10ppdcSharedC1Ev -__ZN10ppdcSharedC2Ev -__ZN10ppdcSharedD0Ev -__ZN10ppdcSharedD1Ev -__ZN10ppdcSharedD2Ev -__ZN10ppdcSource10get_choiceEP8ppdcFile -__ZN10ppdcSource10get_duplexEP8ppdcFileP10ppdcDriver -__ZN10ppdcSource10get_filterEP8ppdcFile -__ZN10ppdcSource10get_optionEP8ppdcFileP10ppdcDriverP9ppdcGroup -__ZN10ppdcSource10import_ppdEPKc -__ZN10ppdcSource10write_fileEPKc -__ZN10ppdcSource11add_includeEPKc -__ZN10ppdcSource11find_driverEPKc -__ZN10ppdcSource11get_booleanEP8ppdcFile -__ZN10ppdcSource11get_genericEP8ppdcFilePKcS3_S3_ -__ZN10ppdcSource11get_integerEP8ppdcFile -__ZN10ppdcSource11get_integerEPKc -__ZN10ppdcSource12find_includeEPKcS1_Pci -__ZN10ppdcSource12get_variableEP8ppdcFile -__ZN10ppdcSource12set_variableEPKcS1_ -__ZN10ppdcSource13find_variableEPKc -__ZN10ppdcSource14get_constraintEP8ppdcFile -__ZN10ppdcSource14get_resolutionEP8ppdcFile -__ZN10ppdcSource15get_color_modelEP8ppdcFile -__ZN10ppdcSource15get_color_orderEPKc -__ZN10ppdcSource15get_color_spaceEPKc -__ZN10ppdcSource15get_custom_sizeEP8ppdcFile -__ZN10ppdcSource15get_installableEP8ppdcFile -__ZN10ppdcSource15get_measurementEP8ppdcFile -__ZN10ppdcSource17get_color_profileEP8ppdcFile -__ZN10ppdcSource18get_simple_profileEP8ppdcFile -__ZN10ppdcSource6get_poEP8ppdcFile -__ZN10ppdcSource6quotefEP12_cups_file_sPKcz -__ZN10ppdcSource7find_poEPKc -__ZN10ppdcSource8get_attrEP8ppdcFile -__ZN10ppdcSource8get_fontEP8ppdcFile -__ZN10ppdcSource8get_sizeEP8ppdcFile -__ZN10ppdcSource9find_sizeEPKc -__ZN10ppdcSource9get_floatEP8ppdcFile -__ZN10ppdcSource9get_groupEP8ppdcFileP10ppdcDriver -__ZN10ppdcSource9get_tokenEP8ppdcFilePci -__ZN10ppdcSource9read_fileEPKc -__ZN10ppdcSource9scan_fileEP8ppdcFileP10ppdcDriverb -__ZN10ppdcSourceC1EPKc -__ZN10ppdcSourceC2EPKc -__ZN10ppdcSourceD0Ev -__ZN10ppdcSourceD1Ev -__ZN10ppdcSourceD2Ev -__ZN10ppdcStringC1EPKc -__ZN10ppdcStringC2EPKc -__ZN10ppdcStringD0Ev -__ZN10ppdcStringD1Ev -__ZN10ppdcStringD2Ev -__ZN11ppdcCatalog11add_messageEPKc -__ZN11ppdcCatalog12find_messageEPKc -__ZN11ppdcCatalog13load_messagesEPKc -__ZN11ppdcCatalog13save_messagesEPKc -__ZN11ppdcCatalogC1EPKcS1_ -__ZN11ppdcCatalogC2EPKcS1_ -__ZN11ppdcCatalogD0Ev -__ZN11ppdcCatalogD1Ev -__ZN11ppdcCatalogD2Ev -__ZN11ppdcMessageC1EPKcS1_ -__ZN11ppdcMessageC2EPKcS1_ -__ZN11ppdcMessageD0Ev -__ZN11ppdcMessageD1Ev -__ZN11ppdcMessageD2Ev -__ZN11ppdcProfileC1EPKcS1_ffPKf -__ZN11ppdcProfileC2EPKcS1_ffPKf -__ZN11ppdcProfileD0Ev -__ZN11ppdcProfileD1Ev -__ZN11ppdcProfileD2Ev -__ZN12ppdcVariable9set_valueEPKc -__ZN12ppdcVariableC1EPKcS1_ -__ZN12ppdcVariableC2EPKcS1_ -__ZN12ppdcVariableD0Ev -__ZN12ppdcVariableD1Ev -__ZN12ppdcVariableD2Ev -__ZN13ppdcMediaSizeC1EPKcS1_ffffffS1_S1_ -__ZN13ppdcMediaSizeC2EPKcS1_ffffffS1_S1_ -__ZN13ppdcMediaSizeD0Ev -__ZN13ppdcMediaSizeD1Ev -__ZN13ppdcMediaSizeD2Ev -__ZN14ppdcConstraintC1EPKcS1_S1_S1_ -__ZN14ppdcConstraintC2EPKcS1_S1_S1_ -__ZN14ppdcConstraintD0Ev -__ZN14ppdcConstraintD1Ev -__ZN14ppdcConstraintD2Ev -__ZN8ppdcAttrC1EPKcS1_S1_S1_ -__ZN8ppdcAttrC2EPKcS1_S1_S1_ -__ZN8ppdcAttrD0Ev -__ZN8ppdcAttrD1Ev -__ZN8ppdcAttrD2Ev -__ZN8ppdcFile3getEv -__ZN8ppdcFile4peekEv -__ZN8ppdcFileC1EPKc -__ZN8ppdcFileC2EPKc -__ZN8ppdcFileD1Ev -__ZN8ppdcFileD2Ev -__ZN8ppdcFontC1EPKcS1_S1_S1_14ppdcFontStatus -__ZN8ppdcFontC2EPKcS1_S1_S1_14ppdcFontStatus -__ZN8ppdcFontD0Ev -__ZN8ppdcFontD1Ev -__ZN8ppdcFontD2Ev -__ZN9ppdcArray3addEP10ppdcShared -__ZN9ppdcArray4nextEv -__ZN9ppdcArray5firstEv -__ZN9ppdcArray6removeEP10ppdcShared -__ZN9ppdcArrayC1EPS_ -__ZN9ppdcArrayC2EPS_ -__ZN9ppdcArrayD0Ev -__ZN9ppdcArrayD1Ev -__ZN9ppdcArrayD2Ev -__ZN9ppdcGroup11find_optionEPKc -__ZN9ppdcGroupC1EPKcS1_ -__ZN9ppdcGroupC1EPS_ -__ZN9ppdcGroupC2EPKcS1_ -__ZN9ppdcGroupC2EPS_ -__ZN9ppdcGroupD0Ev -__ZN9ppdcGroupD1Ev -__ZN9ppdcGroupD2Ev Index: ppdc/Makefile =================================================================== --- ppdc/Makefile (revision 7598) +++ ppdc/Makefile (working copy) @@ -44,12 +44,8 @@ ppdc-source.o \ ppdc-string.o \ ppdc-variable.o -LIB32OBJS = $(LIBOBJS:.o=.32.o) -LIB64OBJS = $(LIBOBJS:.o=.64.o) OBJS = \ $(LIBOBJS) \ - $(LIB32OBJS) \ - $(LIB64OBJS) \ drv.o \ ppdc.o \ ppdhtml.o \ @@ -58,8 +54,6 @@ ppdpo.o LIBTARGETS = \ $(LIBCUPSPPDC) \ - $(LIB32CUPSPPDC) \ - $(LIB64CUPSPPDC) \ libcupsppdc.a \ ppdc-static TARGETS = \ @@ -97,7 +91,6 @@ $(RM) -r ppd $(RM) test.drv $(RM) libcupsppdc.so libcupsppdc.sl libcupsppdc.dylib - $(RM) -r 32bit 64bit # @@ -105,13 +98,7 @@ # depend: - touch Dependencies.tmp - makedepend -Y -I.. -fDependencies.tmp $(OBJS:.o=.c) >/dev/null 2>&1 - $(RM) Dependencies - cp Dependencies.tmp Dependencies - sed -E -e '1,$$s/^([^.]+)\.o:/\1\.32.o: \1\.c /' Dependencies.tmp >>Dependencies - sed -E -e '1,$$s/^([^.]+)\.o:/\1\.64.o: \1\.c /' Dependencies.tmp >>Dependencies - $(RM) Dependencies.tmp + makedepend -Y -I.. -fDependencies $(OBJS:.o=.cxx) >/dev/null 2>&1 # @@ -191,19 +178,7 @@ $(INSTALL_LIB) libcupsppdc.a $(LIBDIR) $(RANLIB) $(LIBDIR)/libcupsppdc.a -install32bit: - echo Installing libraries in $(LIB32DIR)... - $(INSTALL_DIR) -m 755 $(LIB32DIR) - $(INSTALL_LIB) 32bit/libcupsppdc.so.1 $(LIB32DIR)/libcupsppdc.so.1 - $(LN) libcupsppdc.so.1 $(LIB32DIR)/libcupsppdc.so -install64bit: - echo Installing libraries in $(LIB64DIR)... - $(INSTALL_DIR) -m 755 $(LIB64DIR) - $(INSTALL_LIB) 64bit/libcupsppdc.so.1 $(LIB64DIR)/libcupsppdc.so.1 - $(LN) libcupsppdc.so.1 $(LIB64DIR)/libcupsppdc.so - - # # Uninstall... # @@ -233,17 +208,7 @@ $(RM) $(INCLUDEDIR)/cups/ppdc.h -$(RMDIR) $(INCLUDEDIR)/cups -uninstall32bit: - $(RM) $(LIB32DIR)/libcupsppdc.so - $(RM) $(LIB32DIR)/libcupsppdc.so.1 - -$(RMDIR) $(LIB32DIR) -uninstall64bit: - $(RM) $(LIB64DIR)/libcupsppdc.so - $(RM) $(LIB64DIR)/libcupsppdc.so.1 - -$(RMDIR) $(LIB64DIR) - - # # Automatic API help files... # @@ -339,40 +304,15 @@ # -# 32bit/libcupsppdc.so.1 -# - -32bit/libcupsppdc.so.1: $(LIB32OBJS) - echo Linking 32-bit $@... - -mkdir 32bit - $(DSOXX) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(LIBS) - $(RM) 32bit/libcupsppdc.so - $(LN) libcupsppdc.so.1 32bit/libcupsppdc.so - - -# -# 64bit/libcupsppdc.so.1 -# - -64bit/libcupsppdc.so.1: $(LIB64OBJS) - echo Linking 64-bit $@... - -mkdir 64bit - $(DSOXX) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(LIBS) - $(RM) 64bit/libcupsppdc.so - $(LN) libcupsppdc.so.1 64bit/libcupsppdc.so - - -# # libcupsppdc.1.dylib # -libcupsppdc.1.dylib: $(LIBOBJS) libcupsppdc.exp +libcupsppdc.1.dylib: $(LIBOBJS) echo Linking $@... $(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \ -install_name $(libdir)/$@ \ -current_version 1.0.0 \ -compatibility_version 1.0.0 \ - -exported_symbols_list libcupsppdc.exp \ $(LIBOBJS) $(LIBS) $(RM) libcupsppdc.dylib $(LN) $@ libcupsppdc.dylib Index: ppdc/ppdpo.cxx =================================================================== --- ppdc/ppdpo.cxx (revision 7598) +++ ppdc/ppdpo.cxx (working copy) @@ -3,7 +3,7 @@ // // PPD file message catalog program for the CUPS PPD Compiler. // -// Copyright 2007 by Apple Inc. +// Copyright 2007-2008 by Apple Inc. // Copyright 2002-2005 by Easy Software Products. // // These coded instructions, statements, and computer programs are the @@ -198,13 +198,21 @@ a; a = (ppdcAttr *)d->attrs->next()) if (a->text->value && a->text->value[0] && - (!strncmp(a->name->value, "Custom", 6) || + (a->localizable || + !strncmp(a->name->value, "Custom", 6) || !strncmp(a->name->value, "ParamCustom", 11) || !strcmp(a->name->value, "APCustomColorMatchingName") || !strcmp(a->name->value, "APPrinterPreset") || !strcmp(a->name->value, "cupsICCProfile") || - !strcmp(a->name->value, "cupsIPPReason"))) + !strcmp(a->name->value, "cupsIPPReason") || + !strcmp(a->name->value, "cupsMarkerName"))) + { catalog->add_message(a->text->value); + + if ((a->localizable && a->value->value[0]) || + !strcmp(a->name->value, "cupsIPPReason")) + catalog->add_message(a->value->value); + } else if (!strncmp(a->name->value, "Custom", 6) || !strncmp(a->name->value, "ParamCustom", 11)) catalog->add_message(a->name->value); Index: ppdc/ppdc-source.cxx =================================================================== --- ppdc/ppdc-source.cxx (revision 7604) +++ ppdc/ppdc-source.cxx (working copy) @@ -298,7 +298,8 @@ // ppdcAttr * // O - Attribute -ppdcSource::get_attr(ppdcFile *fp) // I - File to read +ppdcSource::get_attr(ppdcFile *fp, // I - File to read + bool loc) // I - Localize this attribute? { char name[1024], // Name string selector[1024], // Selector string @@ -311,15 +312,16 @@ // Attribute name selector value if (!get_token(fp, name, sizeof(name))) { - fprintf(stderr, "ppdc: Expected name after Attribute on line %d of %s!\n", - fp->line, fp->filename); + fprintf(stderr, "ppdc: Expected name after %sAttribute on line %d of %s!\n", + loc ? "Loc" : "", fp->line, fp->filename); return (0); } if (!get_token(fp, selector, sizeof(selector))) { - fprintf(stderr, "ppdc: Expected selector after Attribute on line %d of %s!\n", - fp->line, fp->filename); + fprintf(stderr, + "ppdc: Expected selector after %sAttribute on line %d of %s!\n", + loc ? "Loc" : "", fp->line, fp->filename); return (0); } @@ -328,14 +330,15 @@ if (!get_token(fp, value, sizeof(value))) { - fprintf(stderr, "ppdc: Expected value after Attribute on line %d of %s!\n", - fp->line, fp->filename); + fprintf(stderr, + "ppdc: Expected value after %sAttribute on line %d of %s!\n", + loc ? "Loc" : "", fp->line, fp->filename); return (0); } // printf("name=\"%s\", selector=\"%s\", value=\"%s\"\n", name, selector, value); - return (new ppdcAttr(name, selector, text, value)); + return (new ppdcAttr(name, selector, text, value, loc)); } @@ -2555,13 +2558,14 @@ po_files->add(cat); } } - else if (!strcasecmp(temp, "Attribute")) + else if (!strcasecmp(temp, "Attribute") || + !strcasecmp(temp, "LocAttribute")) { ppdcAttr *a; // Attribute // Get an attribute... - a = get_attr(fp); + a = get_attr(fp, !strcasecmp(temp, "LocAttribute")); if (a) { if (cond_state) Index: ppdc/Dependencies =================================================================== --- ppdc/Dependencies (revision 7598) +++ ppdc/Dependencies (working copy) @@ -1,3 +1,68 @@ # DO NOT DELETE -# DO NOT DELETE -# DO NOT DELETE + +ppdc-array.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-array.o: ../cups/versioning.h +ppdc-attr.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-attr.o: ../cups/versioning.h +ppdc-catalog.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-catalog.o: ../cups/versioning.h ../cups/globals.h ../cups/string.h +ppdc-catalog.o: ../cups/http-private.h ../cups/http.h ../cups/md5.h +ppdc-catalog.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/cups.h +ppdc-catalog.o: ../cups/ppd.h ../cups/array.h ../cups/file.h +ppdc-catalog.o: ../cups/language.h ../cups/i18n.h ../cups/transcode.h +ppdc-choice.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-choice.o: ../cups/versioning.h +ppdc-constraint.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-constraint.o: ../cups/versioning.h +ppdc-driver.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-driver.o: ../cups/versioning.h ../cups/cups.h ../cups/ipp.h +ppdc-driver.o: ../cups/http.h ../cups/string.h ../cups/ppd.h ../cups/array.h +ppdc-driver.o: ../cups/file.h ../cups/language.h +ppdc-file.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-file.o: ../cups/versioning.h +ppdc-filter.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-filter.o: ../cups/versioning.h +ppdc-font.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-font.o: ../cups/versioning.h +ppdc-group.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-group.o: ../cups/versioning.h +ppdc-import.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-import.o: ../cups/versioning.h ../cups/ppd.h ../cups/array.h +ppdc-import.o: ../cups/file.h +ppdc-mediasize.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-mediasize.o: ../cups/versioning.h +ppdc-message.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-message.o: ../cups/versioning.h +ppdc-option.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-option.o: ../cups/versioning.h +ppdc-profile.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-profile.o: ../cups/versioning.h +ppdc-shared.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-shared.o: ../cups/versioning.h +ppdc-source.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-source.o: ../cups/versioning.h ../cups/globals.h ../cups/string.h +ppdc-source.o: ../cups/http-private.h ../cups/http.h ../cups/md5.h +ppdc-source.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/cups.h +ppdc-source.o: ../cups/ppd.h ../cups/array.h ../cups/file.h +ppdc-source.o: ../cups/language.h ../cups/i18n.h ../cups/transcode.h +ppdc-source.o: ../cups/raster.h ../cups/cups.h ../data/epson.h ../data/escp.h +ppdc-source.o: ../data/hp.h ../data/label.h ../data/pcl.h +ppdc-string.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-string.o: ../cups/versioning.h +ppdc-variable.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc-variable.o: ../cups/versioning.h +drv.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +drv.o: ../cups/versioning.h ../cups/cups.h ../cups/ipp.h ../cups/http.h +drv.o: ../cups/string.h ../cups/ppd.h ../cups/array.h ../cups/file.h +drv.o: ../cups/language.h ../cups/dir.h +ppdc.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdc.o: ../cups/versioning.h +ppdhtml.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdhtml.o: ../cups/versioning.h +ppdi.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdi.o: ../cups/versioning.h +ppdmerge.o: ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/versioning.h +ppdmerge.o: ../cups/string.h ../cups/ppd.h ../cups/array.h ../cups/file.h +ppdmerge.o: ../cups/language.h ../cups/array.h ../cups/string.h ../config.h +ppdpo.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h +ppdpo.o: ../cups/versioning.h Index: ppdc/ppdc.h =================================================================== --- ppdc/ppdc.h (revision 7604) +++ ppdc/ppdc.h (working copy) @@ -180,8 +180,10 @@ *selector, // Selector string *text, // Text string *value; // Value string + bool localizable; // Should this attribute be localized? - ppdcAttr(const char *n, const char *s, const char *t, const char *v); + ppdcAttr(const char *n, const char *s, const char *t, const char *v, + bool loc = false); ~ppdcAttr(); }; @@ -447,7 +449,7 @@ ppdcCatalog *find_po(const char *l); ppdcMediaSize *find_size(const char *s); ppdcVariable *find_variable(const char *n); - ppdcAttr *get_attr(ppdcFile *fp); + ppdcAttr *get_attr(ppdcFile *fp, bool loc = false); int get_boolean(ppdcFile *fp); ppdcChoice *get_choice(ppdcFile *fp); ppdcChoice *get_color_model(ppdcFile *fp);