Hello community, here is the log from the commit of package mozilla-xulrunner20 for openSUSE:Factory checked in at Fri Feb 25 14:26:45 CET 2011. -------- --- mozilla-xulrunner20/mozilla-xulrunner20.changes 2011-02-17 20:13:51.000000000 +0100 +++ /mounts/work_src_done/STABLE/mozilla-xulrunner20/mozilla-xulrunner20.changes 2011-02-23 10:07:39.000000000 +0100 @@ -1,0 +2,6 @@ +Wed Feb 23 07:51:12 UTC 2011 - wr@rosenauer.org + +- update to 2.0b12 +- update supported locale provides + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- l10n-2.0b11.tar.bz2 xulrunner-source-2.0b11.tar.bz2 New: ---- l10n-2.0b12.tar.bz2 xulrunner-source-2.0b12.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mozilla-xulrunner20.spec ++++++ --- /var/tmp/diff_new_pack.JK6dTi/_old 2011-02-25 14:22:30.000000000 +0100 +++ /var/tmp/diff_new_pack.JK6dTi/_new 2011-02-25 14:22:30.000000000 +0100 @@ -30,10 +30,10 @@ BuildRequires: wireless-tools %endif License: GPLv2+ ; LGPLv2.1+ ; MPLv1.1+ -Version: 2.0b11 -Release: 6 -%define releasedate 2011020300 -%define version_internal 2.0b11 +Version: 2.0b12 +Release: 1 +%define releasedate 2011022200 +%define version_internal 2.0b12 %define apiversion 2.0 %define uaweight 199900 Summary: Mozilla Runtime Environment 2.0 @@ -163,7 +163,7 @@ Summary: Extra translations for XULRunner 2.0 Group: System/Localization Requires: %{name} = %{version} -Provides: locale(%{name}:af;as;be;bg;bn_BD;bn_IN;cy;el;eo;es_MX;et;eu;fa;fy_NL;ga_IE;gl;gu_IN;he;hi_IN;hr;id;is;ka;kk;kn;ku;lt;lv;mk;ml;mr;nn_NO;oc;or;pa_IN;rm;ro;si;sk;sl;sq;sr;ta;ta_LK;te;th;tr;uk;vi) +Provides: locale(%{name}:af;ak;ast;be;bg;bn_BD;br;bs;cy;el;en_ZA;eo;es_MX;et;eu;fy_NL;ga_IE;gd;gl;gu_IN;he;hi_IN;hr;hy_AM;id;is;kk;kn;ku;lg;lt;lv;mai;mk;ml;mr;nn_NO;nso;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;ta_LK;te;th;tr;uk;zu) Obsoletes: %{name}-translations < %{version}-%{release} %description translations-other @@ -358,7 +358,7 @@ touch %{_tmppath}/translations.{common,other} for locale in $(awk '{ print $1; }' ../mozilla/browser/locales/shipped-locales); do case $locale in - ja-JP-mac|en-US) + ja-JP-mac|en-US|bn-IN) ;; *) pushd $RPM_BUILD_DIR/compare-locales ++++++ compare-locales.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compare-locales/lib/Mozilla/Checks.py new/compare-locales/lib/Mozilla/Checks.py --- old/compare-locales/lib/Mozilla/Checks.py 2011-02-04 10:10:07.000000000 +0100 +++ new/compare-locales/lib/Mozilla/Checks.py 2011-02-23 09:14:08.000000000 +0100 @@ -37,6 +37,7 @@ import re import itertools +import codecs from difflib import SequenceMatcher from xml import sax try: @@ -52,7 +53,7 @@ pattern = None def use(self, file): - return self.pattern.match(file) + return self.pattern.match(file.file) def check(self, refEnt, l10nEnt): '''Given the reference and localized Entities, performs checks. @@ -187,30 +188,40 @@ class DTDChecker(Checker): - '''Tests to run on DTD files. + """Tests to run on DTD files. Uses xml.sax for the heavy lifting of xml parsing. The code tries to parse until it doesn't find any unresolved entities anymore. If it finds one, it tries to grab the key, and adds an empty <!ENTITY key ""> definition to the header. - ''' + """ pattern = re.compile('.*\.dtd$') eref = re.compile('&(%s);' % DTDParser.Name) tmpl = '''<!DOCTYPE elem [%s]> -<elem> -%s -</elem> +<elem>%s</elem> ''' xmllist = set(('amp', 'lt', 'gt', 'apos', 'quot')) + # Setup for XML parser, with default and text-only content handler + parser = sax.make_parser() + class TextContent(sax.handler.ContentHandler): + textcontent = '' + def characters(self, content): + self.textcontent += content + + defaulthandler = sax.handler.ContentHandler() + texthandler = TextContent() + + processContent = None + def check(self, refEnt, l10nEnt): - '''Try to parse the refvalue inside a dummy element, and keep + """Try to parse the refvalue inside a dummy element, and keep track of entities that we need to define to make that work. Return a checker that offers just those entities. - ''' + """ refValue, l10nValue = refEnt.val, l10nEnt.val # find entities the refValue references, # reusing markup from DTDParser. @@ -218,9 +229,13 @@ for m in self.eref.finditer(refValue)) \ - self.xmllist entities = ''.join('<!ENTITY %s "">' % s for s in sorted(reflist)) - parser = sax.make_parser() + if self.processContent is None: + self.parser.setContentHandler(self.defaulthandler) + else: + self.texthandler.textcontent = '' + self.parser.setContentHandler(self.texthandler) try: - parser.parse(StringIO(self.tmpl % (entities, refValue.encode('utf-8')))) + self.parser.parse(StringIO(self.tmpl % (entities, refValue.encode('utf-8')))) except sax.SAXParseException, e: yield ('warning', (0,0), @@ -237,29 +252,106 @@ if reflist: warntmpl += ' (%s known)' % ', '.join(sorted(reflist)) try: - parser.parse(StringIO(self.tmpl % (_entities, l10nValue.encode('utf-8')))) + if self.processContent is not None: + self.texthandler.textcontent = '' + self.parser.parse(StringIO(self.tmpl % (_entities, l10nValue.encode('utf-8')))) except sax.SAXParseException, e: # xml parse error, yield error # sometimes, the error is reported on our fake closing # element, make that the end of the last line - lnr = e.getLineNumber() - 2 + lnr = e.getLineNumber() - 1 lines = l10nValue.splitlines() if lnr > len(lines): lnr = len(lines) col = len(lines[lnr-1]) else: col = e.getColumnNumber() + if lnr == 1: + col -= len("<elem>") # first line starts with <elem>, substract yield ('error', (lnr, col), ' '.join(e.args)) for key in missing: yield ('warning', (0,0), warntmpl % key) + if self.processContent is not None: + for t in self.processContent(self.texthandler.textcontent): + yield t -__checks = [DTDChecker(), PropertiesChecker()] + +class PrincessAndroid(DTDChecker): + """Checker for the string values that Android puts into an XML container. + + http://developer.android.com/guide/topics/resources/string-resource.html#For... + has more info. Check for unescaped apostrophes and bad unicode escapes. + """ + quoted = re.compile("(?P<q>[\"']).*(?P=q)$") + def unicode_escape(self, str): + """Helper method to try to decode all unicode escapes in a string. + + This code uses the standard python decode for unicode-escape, but that's + somewhat tricky, as its input needs to be ascii. To get to ascii, the + unicode string gets converted to ascii with backslashreplace, i.e., + all non-ascii unicode chars get unicode escaped. And then we try to roll + all of that back. + Now, when that hits an error, that's from the original string, and we need + to search for the actual error position in the original string, as the + backslashreplace code changes string positions quite badly. See also the + last check in TestAndroid.test_android_dtd, with a lengthy chinese string. + """ + val = str.encode('ascii', 'backslashreplace') + try: + val.decode('unicode-escape') + except UnicodeDecodeError, e: + args = list(e.args) + badstring = args[1][args[2]:args[3]] + i = str.rindex(badstring, 0, args[3]) + args[2] = i + args[3] = i + len(badstring) + raise UnicodeDecodeError(*args) + def use(self, file): + """Use this Checker only for DTD files in embedding/android.""" + return (file.module == "embedding/android") and DTDChecker.pattern.match(file.file) + def processContent(self, val): + """Actual check code. + Check for unicode escapes and unescaped quotes and apostrophes, if string's not quoted. + """ + # first, try to decode unicode escapes + try: + self.unicode_escape(val) + except UnicodeDecodeError, e: + yield ('error', e.args[2], e.args[4]) + # check for unescaped single or double quotes. + # first, see if the complete string is single or double quoted, that changes the rules + m = self.quoted.match(val) + if m: + q = m.group('q') + offset = 0 + val = val[1:-1] # strip quotes + else: + q = "[\"']" + offset = -1 + stray_quot = re.compile(r"[\\\\]*(%s)" % q) + + for m in stray_quot.finditer(val): + if len(m.group(0)) % 2: + # found an unescaped single or double quote, which message? + msg = m.group(1) == '"' and u"Quotes in Android DTDs need escaping with \\\" or \\u0022, or put string in apostrophes." \ + or u"Apostrophes in Android DTDs need escaping with \\' or \\u0027, or use \u2019, or put string in quotes." + yield ('error', m.end(0)+offset, msg) + + +class __checks: + props = PropertiesChecker() + android_dtd = PrincessAndroid() + dtd = DTDChecker() def getChecks(file): - checks = map(lambda c: c.check, filter(lambda c: c.use(file), __checks)) - def _checks(refEnt, l10nEnt): - return itertools.chain(*[c(refEnt, l10nEnt) for c in checks]) - return _checks + check = None + if __checks.props.use(file): + check = __checks.props.check + elif __checks.android_dtd.use(file): + check = __checks.android_dtd.check + elif __checks.dtd.use(file): + check = __checks.dtd.check + return check diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compare-locales/lib/Mozilla/CompareLocales.py new/compare-locales/lib/Mozilla/CompareLocales.py --- old/compare-locales/lib/Mozilla/CompareLocales.py 2011-02-04 10:10:07.000000000 +0100 +++ new/compare-locales/lib/Mozilla/CompareLocales.py 2011-02-23 09:14:08.000000000 +0100 @@ -425,9 +425,9 @@ f.write(''.join(map(ensureNewline,trailing))) f.close() def notify(self, category, file, data): - '''Check filterObserver for the found data, and if it's + """Check filterObserver for the found data, and if it's not to ignore, notify observers. - ''' + """ rv = self.filterObserver.notify(category, file, data) if rv == 'ignore': return rv @@ -441,7 +441,7 @@ def compare(self, ref_file, l10n): try: p = Parser.getParser(ref_file.file) - checks = Checks.getChecks(ref_file.file) + checks = Checks.getChecks(ref_file) except UserWarning: # no comparison, XXX report? return @@ -575,7 +575,7 @@ # overload this if needed pass -def compareApp(app, otherObserver = None, merge_stage = None): +def compareApp(app, otherObserver = None, merge_stage = None, clobber = False): '''Compare locales set in app. Optional arguments are: @@ -584,6 +584,8 @@ The return values of that callback are ignored. - merge_stage. A directory to be used for staging the output of l10n-merge. + - clobber. Clobber the module subdirectories of the merge dir as we go. + Use wisely, as it might cause data loss. ''' o = Observer() cc = ContentComparer(o) @@ -592,6 +594,12 @@ cc.set_merge_stage(merge_stage) o.filter = app.filter for module, reference, locales in app: + if merge_stage is not None and clobber: + # if clobber and merge is on, remove the stage for the module if it exists + clobberdir = os.path.join(merge_stage, module) + if os.path.exists(clobberdir): + shutil.rmtree(clobberdir) + print "clobbered " + clobberdir dc = DirectoryCompare(reference) dc.setWatcher(cc) for locale, localization in locales: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compare-locales/lib/Mozilla/tests/unitChecks.py new/compare-locales/lib/Mozilla/tests/unitChecks.py --- old/compare-locales/lib/Mozilla/tests/unitChecks.py 2011-02-04 10:10:07.000000000 +0100 +++ new/compare-locales/lib/Mozilla/tests/unitChecks.py 2011-02-23 09:14:08.000000000 +0100 @@ -1,29 +1,30 @@ import unittest from Mozilla.Checks import getChecks -from Mozilla.Parser import getParser +from Mozilla.Parser import getParser, Entity +from Mozilla.Paths import File class BaseHelper(unittest.TestCase): - filename = None + file = None refContent = None def setUp(self): - p = getParser(self.filename) + p = getParser(self.file.file) p.readContents(self.refContent) self.refs = [e for e in p] def _test(self, content, refWarnOrErrors): - p = getParser(self.filename) + p = getParser(self.file.file) p.readContents(content) l10n = [e for e in p] - checks = getChecks(self.filename) + checks = getChecks(self.file) found = tuple(checks(self.refs[0], l10n[0])) self.assertEqual(found, refWarnOrErrors) class TestPlurals(BaseHelper): - filename = 'foo.properties' + file = File('foo.properties', 'foo.properties') refContent = '''# LOCALIZATION NOTE (downloadsTitleFiles): Semi-colon list of plural forms. # See: http://developer.mozilla.org/en/docs/Localization_and_Plurals # #1 number of files @@ -60,18 +61,147 @@ class TestDTDs(BaseHelper): - filename = 'foo.dtd' + file = File('foo.dtd', 'foo.dtd') refContent = '''<!ENTITY foo "This is 'good'"> ''' def testWarning(self): self._test('''<!ENTITY foo "This is ¬ good"> ''', (('warning',(0,0),'Referencing unknown entity `not`'),)) + def testErrorFirstLine(self): + self._test('''<!ENTITY foo "This is </bad> stuff"> +''', + (('error',(1,10),'mismatched tag'),)) + def testErrorSecondLine(self): + self._test('''<!ENTITY foo "This is + </bad> +stuff"> +''', + (('error',(2,4),'mismatched tag'),)) def testXMLEntity(self): self._test('''<!ENTITY foo "This is "good""> ''', tuple()) +class TestAndroid(unittest.TestCase): + """Test Android checker + + Make sure we're hitting our extra rules only if + we're passing in a DTD file in the embedding/android module. + """ + apos_msg = u"Apostrophes in Android DTDs need escaping with \\' or \\u0027, " + \ + u"or use \u2019, or put string in quotes." + quot_msg = u"Quotes in Android DTDs need escaping with \\\" or \\u0022, " + \ + u"or put string in apostrophes." + def getEntity(self, v): + return Entity(v, lambda s: s, (0, len(v)), (), (0, 0), (), (), (0, len(v)), ()) + def test_android_dtd(self): + """Testing the actual android checks. The logic is involved, so this is a lot + of nitty gritty detail tests. + """ + f = File("embedding/android/strings.dtd", "strings.dtd", "embedding/android") + checks = getChecks(f) + # good string + ref = self.getEntity("plain string") + l10n = self.getEntity("plain localized string") + self.assertEqual(tuple(checks(ref, l10n)), + ()) + # dtd warning + l10n = self.getEntity("plain localized string &ref;") + self.assertEqual(tuple(checks(ref, l10n)), + (('warning', (0, 0), 'Referencing unknown entity `ref`'),)) + # no report on stray ampersand or quote, if not completely quoted + for i in xrange(3): + # make sure we're catching unescaped apostrophes, try 0..5 backticks + l10n = self.getEntity("\\"*(2*i) + "'") + self.assertEqual(tuple(checks(ref, l10n)), + (('error', 2*i, self.apos_msg),)) + l10n = self.getEntity("\\"*(2*i + 1) + "'") + self.assertEqual(tuple(checks(ref, l10n)), + ()) + # make sure we don't report if apos string is quoted + l10n = self.getEntity('"' + "\\"*(2*i) + "'\"") + tpl = tuple(checks(ref, l10n)) + self.assertEqual(tpl, (), "`%s` shouldn't fail but got %s" % (l10n.val, str(tpl))) + l10n = self.getEntity('"' + "\\"*(2*i+1) + "'\"") + tpl = tuple(checks(ref, l10n)) + self.assertEqual(tpl, (), "`%s` shouldn't fail but got %s" % (l10n.val, str(tpl))) + # make sure we're catching unescaped quotes, try 0..5 backticks + l10n = self.getEntity("\\"*(2*i) + "\"") + self.assertEqual(tuple(checks(ref, l10n)), + (('error', 2*i, self.quot_msg),)) + l10n = self.getEntity("\\"*(2*i + 1) + "'") + self.assertEqual(tuple(checks(ref, l10n)), + ()) + # make sure we don't report if quote string is single quoted + l10n = self.getEntity("'" + "\\"*(2*i) + "\"'") + tpl = tuple(checks(ref, l10n)) + self.assertEqual(tpl, (), "`%s` shouldn't fail but got %s" % (l10n.val, str(tpl))) + l10n = self.getEntity('"' + "\\"*(2*i+1) + "'\"") + tpl = tuple(checks(ref, l10n)) + self.assertEqual(tpl, (), "`%s` shouldn't fail but got %s" % (l10n.val, str(tpl))) + # check for mixed quotes and ampersands + l10n = self.getEntity("'\"") + self.assertEqual(tuple(checks(ref, l10n)), + (('error', 0, self.apos_msg), + ('error', 1, self.quot_msg))) + l10n = self.getEntity("''\"'") + self.assertEqual(tuple(checks(ref, l10n)), + (('error', 1, self.apos_msg),)) + l10n = self.getEntity('"\'""') + self.assertEqual(tuple(checks(ref, l10n)), + (('error', 2, self.quot_msg),)) + + # broken unicode escape + l10n = self.getEntity("Some broken \u098 unicode") + self.assertEqual(tuple(checks(ref, l10n)), + (('error', 12, 'truncated \\uXXXX escape'),)) + # broken unicode escape, try to set the error off + l10n = self.getEntity(u"\u9690"*14+"\u006"+" "+"\u0064") + self.assertEqual(tuple(checks(ref, l10n)), + (('error', 14, 'truncated \\uXXXX escape'),)) + def test_android_prop(self): + f = File("embedding/android/strings.properties", "strings.properties", "embedding/android") + checks = getChecks(f) + # good plain string + ref = self.getEntity("plain string") + l10n = self.getEntity("plain localized string") + self.assertEqual(tuple(checks(ref, l10n)), + ()) + # no dtd warning + ref = self.getEntity("plain string") + l10n = self.getEntity("plain localized string &ref;") + self.assertEqual(tuple(checks(ref, l10n)), + ()) + # no report on stray ampersand + ref = self.getEntity("plain string") + l10n = self.getEntity("plain localized string with apos: '") + self.assertEqual(tuple(checks(ref, l10n)), + ()) + # report on bad printf + ref = self.getEntity("string with %s") + l10n = self.getEntity("string with %S") + self.assertEqual(tuple(checks(ref, l10n)), + (('error', 0, 'argument 1 `S` should be `s`'),)) + def test_non_android_dtd(self): + f = File("browser/strings.dtd", "strings.dtd", "browser") + checks = getChecks(f) + # good string + ref = self.getEntity("plain string") + l10n = self.getEntity("plain localized string") + self.assertEqual(tuple(checks(ref, l10n)), + ()) + # dtd warning + ref = self.getEntity("plain string") + l10n = self.getEntity("plain localized string &ref;") + self.assertEqual(tuple(checks(ref, l10n)), + (('warning', (0, 0), 'Referencing unknown entity `ref`'),)) + # no report on stray ampersand + ref = self.getEntity("plain string") + l10n = self.getEntity("plain localized string with apos: '") + self.assertEqual(tuple(checks(ref, l10n)), + ()) + if __name__ == '__main__': unittest.main() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compare-locales/scripts/compare-locales new/compare-locales/scripts/compare-locales --- old/compare-locales/scripts/compare-locales 2011-02-04 10:10:07.000000000 +0100 +++ new/compare-locales/scripts/compare-locales 2011-02-23 09:14:08.000000000 +0100 @@ -57,6 +57,12 @@ 'localization. [default: en-US]') parser.add_option('-m', '--merge', help='Use this directory to stage merged files') +parser.add_option('--clobber-merge', action="store_true", default=False, dest='clobber', + help="""WARNING: DATALOSS. +Use this option with care. If specified, the merge directory will +be clobbered for each module. That means, the subdirectory will +be completely removed, any files that were there are lost. +Be careful to specify the right merge directory when using this option.""") parser.add_option('--json', action='store_true', dest='json', help='Dump just summary as exhibit JSON') @@ -73,7 +79,11 @@ app = EnumerateApp(inipath, l10nbase, locales) app.reference = options.reference -o = compareApp(app, merge_stage = options.merge) +try: + o = compareApp(app, merge_stage = options.merge, clobber = options.clobber) +except (OSError, IOError), e: + print "FAIL: " + str(e) + parser.exit(2) so = {} if options.json: so['type']='application/json' ++++++ create-tar.sh ++++++ --- /var/tmp/diff_new_pack.JK6dTi/_old 2011-02-25 14:22:30.000000000 +0100 +++ /var/tmp/diff_new_pack.JK6dTi/_new 2011-02-25 14:22:30.000000000 +0100 @@ -1,8 +1,8 @@ #!/bin/bash BRANCH="mozilla-central" -RELEASE_TAG="FIREFOX_4_0b11_RELEASE" -VERSION="2.0b11" +RELEASE_TAG="FIREFOX_4_0b12_RELEASE" +VERSION="2.0b12" # mozilla hg clone http://hg.mozilla.org/$BRANCH mozilla ++++++ l10n-2.0b11.tar.bz2 -> l10n-2.0b12.tar.bz2 ++++++ mozilla-xulrunner20/l10n-2.0b11.tar.bz2 /mounts/work_src_done/STABLE/mozilla-xulrunner20/l10n-2.0b12.tar.bz2 differ: char 11, line 1 ++++++ mozilla-gio-launch-uri.patch ++++++ --- /var/tmp/diff_new_pack.JK6dTi/_old 2011-02-25 14:22:30.000000000 +0100 +++ /var/tmp/diff_new_pack.JK6dTi/_new 2011-02-25 14:22:30.000000000 +0100 @@ -1,13 +1,13 @@ # HG changeset patch -# Parent f81b405b9adebc56c3af5cfbf2f74cf01c22956b +# Parent 7d47a19639db505e19282ac69c305c636d0fec18 diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp --- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp +++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp -@@ -51,16 +51,18 @@ - #include <contentaction/contentaction.h> +@@ -53,16 +53,18 @@ #include "nsContentHandlerApp.h" #endif + #endif #include "nsMIMEInfoUnix.h" #include "nsCommonRegistry.h" @@ -23,7 +23,7 @@ #include "nsKDEUtils.h" #endif -@@ -170,38 +172,47 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns +@@ -172,38 +174,47 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns } if (!mDefaultApplication) return NS_ERROR_FILE_NOT_FOUND; ++++++ mozilla-kde.patch ++++++ --- /var/tmp/diff_new_pack.JK6dTi/_old 2011-02-25 14:22:30.000000000 +0100 +++ /var/tmp/diff_new_pack.JK6dTi/_new 2011-02-25 14:22:30.000000000 +0100 @@ -89,7 +89,7 @@ } //---------------------------------------------------------------------------------------- -@@ -826,28 +845,40 @@ static nsresult pref_InitDefaults() +@@ -890,24 +909,36 @@ static nsresult pref_InitInitialObjects( /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */ static const char* specialFiles[] = { #if defined(XP_MAC) || defined(XP_MACOSX) @@ -99,22 +99,18 @@ #elif defined(XP_UNIX) "unix.js" + , "" // placeholder for KDE (empty is otherwise harmless) - #if defined(VMS) - , "openvms.js" - #elif defined(_AIX) + #if defined(_AIX) , "aix.js" #endif #elif defined(XP_OS2) "os2pref.js" - #elif defined(XP_BEOS) - "beos.js" #endif }; + if(nsKDEUtils::kdeSession()) { // TODO what if some setup actually requires the helper? + for( int i = 0; -+ i < NS_ARRAY_LENGTH(specialFiles); -+ ++i ) { ++ i < NS_ARRAY_LENGTH(specialFiles); ++ ++i ) { + if( *specialFiles[ i ] == '\0' ) { + specialFiles[ i ] = "kde.js"; + break; @@ -127,8 +123,8 @@ NS_WARNING("Error parsing application default preferences."); } - return NS_OK; - } + rv = pref_LoadPrefsInDirList(NS_APP_PREFS_DEFAULTS_DIR_LIST); + NS_ENSURE_SUCCESS(rv, rv); diff --git a/toolkit/components/downloads/src/Makefile.in b/toolkit/components/downloads/src/Makefile.in --- a/toolkit/components/downloads/src/Makefile.in @@ -2155,9 +2151,9 @@ CPPSRCS += nsNativeAppSupportQt.cpp CPPSRCS += nsQAppInstance.cpp EXPORTS += nsQAppInstance.h - ifdef MOZ_ENABLE_MEEGOTOUCH - MOCSRCS += moc_MozMeegoAppService.cpp - CPPSRCS += moc_MozMeegoAppService.cpp + else + CPPSRCS += nsNativeAppSupportDefault.cpp + endif diff --git a/toolkit/xre/nsKDEUtils.cpp b/toolkit/xre/nsKDEUtils.cpp new file mode 100644 --- /dev/null @@ -2949,13 +2945,13 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp --- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp +++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp -@@ -48,28 +48,31 @@ - #include <QDesktopServices> - #include <QUrl> +@@ -50,28 +50,31 @@ #include <QString> + #if (MOZ_ENABLE_CONTENTACTION) #include <contentaction/contentaction.h> #include "nsContentHandlerApp.h" #endif + #endif #include "nsMIMEInfoUnix.h" -#include "nsGNOMERegistry.h" @@ -2983,7 +2979,7 @@ nsCAutoString spec; aURI->GetAsciiSpec(spec); if (hildon_uri_open(spec.get(), action, nsnull)) -@@ -91,22 +94,22 @@ nsMIMEInfoUnix::LoadUriInternal(nsIURI * +@@ -93,22 +96,22 @@ nsMIMEInfoUnix::LoadUriInternal(nsIURI * return rv; } @@ -3008,7 +3004,7 @@ if (*_retval) return NS_OK; -@@ -149,32 +152,49 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns +@@ -151,32 +154,49 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns ContentAction::Action::defaultActionForFile(uri, QString(mSchemeOrType.get())); if (action.isValid()) { action.trigger(); @@ -3063,7 +3059,7 @@ --- a/uriloader/exthandler/unix/nsOSHelperAppService.cpp +++ b/uriloader/exthandler/unix/nsOSHelperAppService.cpp @@ -44,17 +44,17 @@ - #if (MOZ_PLATFORM_MAEMO == 6) + #if defined(MOZ_ENABLE_CONTENTACTION) #include <contentaction/contentaction.h> #include <QString> #endif @@ -3665,11 +3661,11 @@ endif ifdef MOZ_PLATFORM_MAEMO - CFLAGS += $(MOZ_PLATFORM_MAEMO_CFLAGS) + CFLAGS += $(MOZ_PLATFORM_MAEMO_CFLAGS) $(MOZ_QT_CFLAGS) diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp --- a/xpcom/io/nsLocalFileUnix.cpp +++ b/xpcom/io/nsLocalFileUnix.cpp -@@ -91,16 +91,17 @@ +@@ -93,16 +93,17 @@ #include "prproces.h" #include "nsIDirectoryEnumerator.h" #include "nsISimpleEnumerator.h" @@ -3687,7 +3683,7 @@ #include "prmem.h" #include "plbase64.h" -@@ -1820,44 +1821,50 @@ nsLocalFile::Launch() +@@ -1822,44 +1823,50 @@ nsLocalFile::Launch() return NS_OK; } @@ -3752,7 +3748,7 @@ return rv; } return NS_ERROR_FAILURE; -@@ -1883,16 +1890,23 @@ nsLocalFile::Launch() +@@ -1885,16 +1892,23 @@ nsLocalFile::Launch() if (nsnull == connection) return NS_ERROR_FAILURE; ++++++ mozilla-language.patch ++++++ --- /var/tmp/diff_new_pack.JK6dTi/_old 2011-02-25 14:22:31.000000000 +0100 +++ /var/tmp/diff_new_pack.JK6dTi/_new 2011-02-25 14:22:31.000000000 +0100 @@ -1,37 +1,30 @@ # HG changeset patch # User Wolfgang Rosenauer <wr@rosenauer.org> -# Parent 4a8194d5971401441da4f4f3bbd2730e506da4bc +# Parent 05766406681babf9a5a433649b5ba2b9741b9962 Bug 583793 - Firefox interface language set to LANG, ignores LANGUAGE diff --git a/intl/locale/src/nsLocaleService.cpp b/intl/locale/src/nsLocaleService.cpp --- a/intl/locale/src/nsLocaleService.cpp +++ b/intl/locale/src/nsLocaleService.cpp -@@ -192,22 +192,24 @@ nsLocaleService::nsLocaleService(void) - return; +@@ -181,16 +181,17 @@ nsLocaleService::nsLocaleService(void) } - #ifdef MOZ_ENABLE_MEEGOTOUCH - // Create a snapshot of the gconf locale values into the - // corresponding environment variables to obey system settings - // as accurately as possible. - CopyGConfToEnv("/meegotouch/i18n/language", "LANG"); -+ CopyGConfToEnv("/meegotouch/i18n/language", "LANGUAGE"); - CopyGConfToEnv("/meegotouch/i18n/lc_collate", NSILOCALE_COLLATE); - CopyGConfToEnv("/meegotouch/i18n/lc_monetary", NSILOCALE_MONETARY); - CopyGConfToEnv("/meegotouch/i18n/lc_numeric", NSILOCALE_NUMERIC); - CopyGConfToEnv("/meegotouch/i18n/lc_time", NSILOCALE_TIME); - #endif + + #ifdef MOZ_WIDGET_QT + const char* lang = QLocale::languageToString(QLocale::system().language()).toAscii(); + #else // Get system configuration -+ const char* language = getenv("LANGUAGE"); const char* lang = getenv("LANG"); ++ const char* language = getenv("LANGUAGE"); + #endif + for( i = 0; i < LocaleListLength; i++ ) { nsresult result; // setlocale( , "") evaluates LC_* and LANG char* lc_temp = setlocale(posix_locale_category[i], ""); CopyASCIItoUTF16(LocaleList[i], category); category_platform = category; - category_platform.AppendLiteral("##PLATFORM"); -@@ -222,16 +224,21 @@ nsLocaleService::nsLocaleService(void) +@@ -206,16 +207,21 @@ nsLocaleService::nsLocaleService(void) else { CopyASCIItoUTF16(lang, platformLocale); result = posixConverter->GetXPLocale(lang, xpLocale); ++++++ xulrunner-source-2.0b11.tar.bz2 -> xulrunner-source-2.0b12.tar.bz2 ++++++ mozilla-xulrunner20/xulrunner-source-2.0b11.tar.bz2 /mounts/work_src_done/STABLE/mozilla-xulrunner20/xulrunner-source-2.0b12.tar.bz2 differ: char 11, line 1 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org