diff options
Diffstat (limited to 'debian/patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch')
-rw-r--r-- | debian/patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/debian/patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch b/debian/patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch new file mode 100644 index 0000000000..c06839fe7d --- /dev/null +++ b/debian/patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch @@ -0,0 +1,79 @@ +From: Mike Hommey <glandium@debian.org> +Date: Sat, 21 Jun 2008 02:48:46 +0200 +Subject: Allow .js preference files to set locked prefs with lockPref() + +--- + modules/libpref/parser/src/lib.rs | 20 +++++++++++++------- + 1 file changed, 13 insertions(+), 7 deletions(-) + +diff --git a/modules/libpref/parser/src/lib.rs b/modules/libpref/parser/src/lib.rs +index bce98c0..da33195 100644 +--- a/modules/libpref/parser/src/lib.rs ++++ b/modules/libpref/parser/src/lib.rs +@@ -11,8 +11,9 @@ + //! ```text + //! <pref-file> = <pref>* + //! <pref> = <pref-spec> "(" <pref-name> "," <pref-value> <pref-attrs> ")" ";" +-//! <pref-spec> = "user_pref" | "pref" | "sticky_pref" // in default pref files ++//! <pref-spec> = "user_pref" | "pref" | "sticky_pref" | "lockPref" // in default pref files + //! <pref-spec> = "user_pref" // in user pref files ++//! <pref-spec> = "user_pref" | "pref" | "sticky_pref | lockPref" + //! <pref-name> = <string-literal> + //! <pref-value> = <string-literal> | "true" | "false" | <int-value> + //! <int-value> = <sign>? <int-literal> +@@ -171,6 +172,7 @@ enum Token { + // Keywords + Pref, // pref + StickyPref, // sticky_pref ++ LockPref, // lockPref + UserPref, // user_pref + True, // true + False, // false +@@ -293,7 +295,7 @@ struct KeywordInfo { + token: Token, + } + +-const KEYWORD_INFOS: [KeywordInfo; 7] = [ ++const KEYWORD_INFOS: [KeywordInfo; 8] = [ + // These are ordered by frequency. + KeywordInfo { + string: b"pref", +@@ -323,6 +325,10 @@ const KEYWORD_INFOS: [KeywordInfo; 7] = [ + string: b"sticky_pref", + token: Token::StickyPref, + }, ++ KeywordInfo { ++ string: b"lockPref", ++ token: Token::LockPref, ++ }, + ]; + + struct Parser<'t> { +@@ -375,14 +381,15 @@ impl<'t> Parser<'t> { + // this will be either the first token of a new pref, or EOF. + loop { + // <pref-spec> +- let (pref_value_kind, mut is_sticky) = match token { ++ let (pref_value_kind, mut is_sticky, mut is_locked) = match token { + Token::Pref if self.kind == PrefValueKind::Default => { +- (PrefValueKind::Default, false) ++ (PrefValueKind::Default, false, false) + } + Token::StickyPref if self.kind == PrefValueKind::Default => { +- (PrefValueKind::Default, true) ++ (PrefValueKind::Default, true, false) + } +- Token::UserPref => (PrefValueKind::User, false), ++ Token::LockPref => (PrefValueKind::Default, false, true), ++ Token::UserPref => (PrefValueKind::User, false, false), + Token::SingleChar(EOF) => return !self.has_errors, + _ => { + token = self.error_and_recover( +@@ -492,7 +499,6 @@ impl<'t> Parser<'t> { + }; + + // ("," <pref-attr>)* // default pref files only +- let mut is_locked = false; + let mut has_attrs = false; + if self.kind == PrefValueKind::Default { + let ok = loop { |