Update On Thu Nov 24 19:49:15 CET 2022

This commit is contained in:
github-action[bot] 2022-11-24 19:49:16 +01:00
parent f01fc410ae
commit 026b94f1af
1945 changed files with 125255 additions and 50193 deletions

View file

@ -23,4 +23,4 @@
# don't change CLOBBER for WebIDL changes any more.
Modified build files in third_party/libwebrtc - Bug 1790097 - Vendor libwebrtc from c05a1be5b4
Bug 1792775 - Update to ICU 72 requires clobber

View file

@ -5,11 +5,11 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from __future__ import absolute_import
import os
import buildconfig
import mozpack.path as mozpath
from xpidl import xpidl
# Load the webidl configuration file.

View file

@ -73,6 +73,9 @@ pref("xpinstall.signatures.devInfoURL", "https://wiki.mozilla.org/Addons/Extensi
// Enable extensionStorage storage actor by default
pref("devtools.storage.extensionStorage.enabled", true);
// Enable the unified extensions UI by default.
pref("extensions.unifiedExtensions.enabled", true);
// Dictionary download preference
pref("browser.dictionaries.download.url", "https://addons.mozilla.org/%LOCALE%/firefox/language-tools/");

View file

@ -164,10 +164,6 @@
#include fullscreen-and-pointerlock.inc.xhtml
<vbox id="browser-bottombox" layer="true">
<!-- gNotificationBox will be added here lazily. -->
</vbox>
<html:div id="a11y-announcement" role="alert"/>
<!-- Put it at the very end to make sure it's not covered by anything. -->

View file

@ -16,7 +16,7 @@
</vbox>
<hbox class="tab-content" align="center">
<stack class="tab-icon-stack">
<hbox class="tab-throbber" layer="true"/>
<hbox class="tab-throbber"/>
<hbox class="tab-icon-pending"/>
<html:img class="tab-icon-image" role="presentation" decoding="sync" />
<image class="tab-sharing-icon-overlay" role="presentation"/>

View file

@ -5,22 +5,18 @@
<hbox class="titlebar-buttonbox-container" skipintoolbarset="true">
<hbox class="titlebar-buttonbox titlebar-color">
<toolbarbutton class="titlebar-button titlebar-min"
titlebar-btn="min"
oncommand="window.minimize();"
data-l10n-id="browser-window-minimize-button"
/>
<toolbarbutton class="titlebar-button titlebar-max"
titlebar-btn="max"
oncommand="window.maximize();"
data-l10n-id="browser-window-maximize-button"
/>
<toolbarbutton class="titlebar-button titlebar-restore"
titlebar-btn="max"
oncommand="window.fullScreen ? BrowserFullScreen() : window.restore();"
data-l10n-id="browser-window-restore-down-button"
/>
<toolbarbutton class="titlebar-button titlebar-close"
titlebar-btn="close"
command="cmd_closeWindow"
data-l10n-id="browser-window-close-button"
/>

View file

@ -124,7 +124,6 @@ const clickUnifiedExtensionsItem = async (
await popupHidden;
};
let extensionsCreated = 0;
const createExtensions = (
arrayOfManifestData,
{ useAddonManager = true, incognitoOverride } = {}
@ -133,11 +132,6 @@ const createExtensions = (
ExtensionTestUtils.loadExtension({
manifest: {
name: "default-extension-name",
browser_specific_settings: {
// We prefix the ID with a timestamp to have unique extension IDs
// between different test files.
gecko: { id: `${Date.now()}@ext-${extensionsCreated++}` },
},
...manifestData,
},
useAddonManager: useAddonManager ? "temporary" : undefined,

View file

@ -165,7 +165,6 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "MultiStageAboutWelcome": () => (/* binding */ MultiStageAboutWelcome),
/* harmony export */ "SecondaryCTA": () => (/* binding */ SecondaryCTA),
/* harmony export */ "OnboardingVideo": () => (/* binding */ OnboardingVideo),
/* harmony export */ "StepsIndicator": () => (/* binding */ StepsIndicator),
/* harmony export */ "WelcomeScreen": () => (/* binding */ WelcomeScreen)
/* harmony export */ });
@ -175,7 +174,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _lib_aboutwelcome_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _MultiStageProtonScreen__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6);
/* harmony import */ var _LanguageSwitcher__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(11);
/* harmony import */ var _asrouter_templates_FirstRun_addUtmParams__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(14);
/* harmony import */ var _asrouter_templates_FirstRun_addUtmParams__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15);
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
@ -382,31 +381,6 @@ const SecondaryCTA = props => {
onClick: props.handleAction
})));
};
const OnboardingVideo = props => {
const vidUrl = props.content.video_url;
const autoplay = props.content.autoPlay;
const handleVideoAction = event => {
props.handleAction({
currentTarget: {
value: event
}
});
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("video", {
// eslint-disable-line jsx-a11y/media-has-caption
controls: true,
autoPlay: autoplay,
src: vidUrl,
width: "604px",
height: "340px",
onPlay: () => handleVideoAction("video_start"),
onEnded: () => handleVideoAction("video_end")
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("source", {
src: vidUrl
})));
};
const StepsIndicator = props => {
let steps = [];
@ -670,6 +644,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _LanguageSwitcher__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(11);
/* harmony import */ var _CTAParagraph__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(12);
/* harmony import */ var _HeroImage__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13);
/* harmony import */ var _OnboardingVideo__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(14);
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
@ -683,6 +658,7 @@ __webpack_require__.r(__webpack_exports__);
const MultiStageProtonScreen = props => {
const {
autoAdvance,
@ -965,7 +941,7 @@ class ProtonScreen extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCom
})), content.cta_paragraph ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_CTAParagraph__WEBPACK_IMPORTED_MODULE_8__.CTAParagraph, {
content: content.cta_paragraph,
handleAction: this.props.handleAction
}) : null), content.video_container ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_MultiStageAboutWelcome__WEBPACK_IMPORTED_MODULE_6__.OnboardingVideo, {
}) : null), content.video_container ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_OnboardingVideo__WEBPACK_IMPORTED_MODULE_10__.OnboardingVideo, {
content: content.video_container,
handleAction: this.props.handleAction
}) : null, this.renderContentTiles(), this.renderLanguageSwitcher(), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ProtonScreenActionButtons, {
@ -1672,6 +1648,46 @@ const HeroImage = props => {
/* 14 */
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "OnboardingVideo": () => (/* binding */ OnboardingVideo)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
const OnboardingVideo = props => {
const vidUrl = props.content.video_url;
const autoplay = props.content.autoPlay;
const handleVideoAction = event => {
props.handleAction({
currentTarget: {
value: event
}
});
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("video", {
// eslint-disable-line jsx-a11y/media-has-caption
controls: true,
autoPlay: autoplay,
src: vidUrl,
width: "604px",
height: "340px",
onPlay: () => handleVideoAction("video_start"),
onEnded: () => handleVideoAction("video_end")
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("source", {
src: vidUrl
})));
};
/***/ }),
/* 15 */
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "BASE_PARAMS": () => (/* binding */ BASE_PARAMS),
@ -1711,7 +1727,7 @@ function addUtmParams(url, utmTerm) {
}
/***/ }),
/* 15 */
/* 16 */
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
@ -1722,7 +1738,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _lib_aboutwelcome_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
/* harmony import */ var _MultiStageProtonScreen__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);
/* harmony import */ var _asrouter_templates_FirstRun_addUtmParams__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14);
/* harmony import */ var _asrouter_templates_FirstRun_addUtmParams__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
@ -1917,7 +1933,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _lib_aboutwelcome_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var _components_MultiStageAboutWelcome__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);
/* harmony import */ var _components_ReturnToAMO__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15);
/* harmony import */ var _components_ReturnToAMO__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
/* This Source Code Form is subject to the terms of the Mozilla Public

View file

@ -252,35 +252,6 @@ export const SecondaryCTA = props => {
);
};
export const OnboardingVideo = props => {
const vidUrl = props.content.video_url;
const autoplay = props.content.autoPlay;
const handleVideoAction = event => {
props.handleAction({
currentTarget: {
value: event,
},
});
};
return (
<div>
<video // eslint-disable-line jsx-a11y/media-has-caption
controls={true}
autoPlay={autoplay}
src={vidUrl}
width="604px"
height="340px"
onPlay={() => handleVideoAction("video_start")}
onEnded={() => handleVideoAction("video_end")}
>
<source src={vidUrl}></source>
</video>
</div>
);
};
export const StepsIndicator = props => {
let steps = [];
for (let i = 0; i < props.totalNumberOfScreens; i++) {

View file

@ -8,14 +8,11 @@ import { Colorways } from "./MRColorways";
import { MobileDownloads } from "./MobileDownloads";
import { MultiSelect } from "./MultiSelect";
import { Themes } from "./Themes";
import {
OnboardingVideo,
SecondaryCTA,
StepsIndicator,
} from "./MultiStageAboutWelcome";
import { SecondaryCTA, StepsIndicator } from "./MultiStageAboutWelcome";
import { LanguageSwitcher } from "./LanguageSwitcher";
import { CTAParagraph } from "./CTAParagraph";
import { HeroImage } from "./HeroImage";
import { OnboardingVideo } from "./OnboardingVideo";
export const MultiStageProtonScreen = props => {
const { autoAdvance, handleAction, order } = props;

View file

@ -0,0 +1,34 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
import React from "react";
export const OnboardingVideo = props => {
const vidUrl = props.content.video_url;
const autoplay = props.content.autoPlay;
const handleVideoAction = event => {
props.handleAction({
currentTarget: {
value: event,
},
});
};
return (
<div>
<video // eslint-disable-line jsx-a11y/media-has-caption
controls={true}
autoPlay={autoplay}
src={vidUrl}
width="604px"
height="340px"
onPlay={() => handleVideoAction("video_start")}
onEnded={() => handleVideoAction("video_end")}
>
<source src={vidUrl}></source>
</video>
</div>
);
};

View file

@ -4,7 +4,6 @@ import {
SecondaryCTA,
StepsIndicator,
WelcomeScreen,
OnboardingVideo,
} from "content-src/aboutwelcome/components/MultiStageAboutWelcome";
import { Themes } from "content-src/aboutwelcome/components/Themes";
import React from "react";
@ -489,34 +488,6 @@ describe("MultiStageAboutWelcome module", () => {
},
});
});
it("should handle video_start action when video is played", () => {
SCREEN_PROPS = {
content: {
title: "Test title",
video_container: {
video_url: "test url",
},
},
};
const handleAction = sandbox.stub();
const wrapper = mount(
<OnboardingVideo handleAction={handleAction} {...SCREEN_PROPS} />
);
wrapper.find("video").simulate("play");
assert.calledWith(handleAction, {
currentTarget: { value: "video_start" },
});
});
it("should handle video_end action when video has completed playing", () => {
const handleAction = sandbox.stub();
const wrapper = mount(
<OnboardingVideo handleAction={handleAction} {...SCREEN_PROPS} />
);
wrapper.find("video").simulate("ended");
assert.calledWith(handleAction, {
currentTarget: { value: "video_end" },
});
});
});
});
});

View file

@ -0,0 +1,45 @@
import React from "react";
import { mount } from "enzyme";
import { OnboardingVideo } from "content-src/aboutwelcome/components/OnboardingVideo";
describe("OnboardingVideo component", () => {
let sandbox;
beforeEach(async () => {
sandbox = sinon.createSandbox();
});
afterEach(() => {
sandbox.restore();
});
const SCREEN_PROPS = {
content: {
title: "Test title",
video_container: {
video_url: "test url",
},
},
};
it("should handle video_start action when video is played", () => {
const handleAction = sandbox.stub();
const wrapper = mount(
<OnboardingVideo handleAction={handleAction} {...SCREEN_PROPS} />
);
wrapper.find("video").simulate("play");
assert.calledWith(handleAction, {
currentTarget: { value: "video_start" },
});
});
it("should handle video_end action when video has completed playing", () => {
const handleAction = sandbox.stub();
const wrapper = mount(
<OnboardingVideo handleAction={handleAction} {...SCREEN_PROPS} />
);
wrapper.find("video").simulate("ended");
assert.calledWith(handleAction, {
currentTarget: { value: "video_end" },
});
});
});

View file

@ -269,7 +269,7 @@ class BrowserSearchTelemetryHandler {
_recordSearch(browser, engine, url, source, action = null) {
if (url) {
lazy.PartnerLinkAttribution.makeSearchEngineRequest(engine, url).catch(
Cu.reportError
console.error
);
}

View file

@ -397,7 +397,7 @@ export class SearchOneOffs {
try {
await this.__rebuild();
} catch (ex) {
Cu.reportError("Search-one-offs::_rebuild() error: " + ex);
console.error("Search-one-offs::_rebuild() error: " + ex);
} finally {
this._rebuilding = false;
}

View file

@ -170,7 +170,7 @@ class TelemetryHandler {
*/
handleEvent(event) {
if (event.type != "TabClose") {
Cu.reportError(`Received unexpected event type ${event.type}`);
console.error(`Received unexpected event type ${event.type}`);
return;
}
@ -783,7 +783,7 @@ class ContentHandler {
});
}
} catch (e) {
Cu.reportError(e);
console.error(e);
}
});
}

View file

@ -39,7 +39,7 @@
}
// Show the current default engine in the top header of the panel.
this.updateHeader().catch(Cu.reportError);
this.updateHeader().catch(console.error);
this._oneOffButtons.addEventListener(
"SelectedOneOffButtonChanged",
@ -275,7 +275,7 @@
let engine =
this.oneOffButtons.selectedButton &&
this.oneOffButtons.selectedButton.engine;
this.updateHeader(engine).catch(Cu.reportError);
this.updateHeader(engine).catch(console.error);
}
}

View file

@ -133,7 +133,7 @@
BrowserSearch.updateOpenSearchBadge();
})
.catch(status =>
Cu.reportError(
console.error(
"Cannot initialize search service, bailing out: " + status
)
);
@ -408,7 +408,7 @@
value: aData,
source: engine.name,
}).catch(error =>
Cu.reportError(
console.error(
"Saving search to form history failed: " + error.message
)
);

View file

@ -332,15 +332,15 @@ const TEST_DATA = [
{ queryString: "0 utc in utc", expected: "00:00 UTC" },
{ queryString: "0 utc = utc", expected: "00:00 UTC" },
{ queryString: "0 UTC=UTC", expected: "00:00 UTC" },
{ queryString: "11 pm utc to utc", expected: "11:00 PM UTC" },
{ queryString: "11 am utc to utc", expected: "11:00 AM UTC" },
{ queryString: "11 pm utc to utc", expected: "11:00\u{202F}PM UTC" },
{ queryString: "11 am utc to utc", expected: "11:00\u{202F}AM UTC" },
{ queryString: "11:30 utc to utc", expected: "11:30 UTC" },
{ queryString: "11:30 PM utc to utc", expected: "11:30 PM UTC" },
{ queryString: "11:30 PM utc to utc", expected: "11:30\u{202F}PM UTC" },
{ queryString: "1 utc to idlw", expected: "13:00 IDLW" },
{ queryString: "1 pm utc to idlw", expected: "1:00 AM IDLW" },
{ queryString: "1 am utc to idlw", expected: "1:00 PM IDLW" },
{ queryString: "1 pm utc to idlw", expected: "1:00\u{202F}AM IDLW" },
{ queryString: "1 am utc to idlw", expected: "1:00\u{202F}PM IDLW" },
{ queryString: "1 utc to idlw", expected: "13:00 IDLW" },
{ queryString: "1 PM utc to idlw", expected: "1:00 AM IDLW" },
{ queryString: "1 PM utc to idlw", expected: "1:00\u{202F}AM IDLW" },
{ queryString: "0 utc to nt", expected: "13:00 NT" },
{ queryString: "0 utc to hst", expected: "14:00 HST" },
{ queryString: "0 utc to akst", expected: "15:00 AKST" },
@ -385,14 +385,14 @@ const TEST_DATA = [
{ queryString: "0 utc to nzd", expected: "13:00 NZD" },
{ queryString: "9:00 jst to utc", expected: "00:00 UTC" },
{ queryString: "8:00 jst to utc", expected: "23:00 UTC" },
{ queryString: "8:00 am jst to utc", expected: "11:00 PM UTC" },
{ queryString: "8:00 am jst to utc", expected: "11:00\u{202F}PM UTC" },
{ queryString: "9:00 jst to pdt", expected: "17:00 PDT" },
{ queryString: "12 pm pst to cet", expected: "9:00 PM CET" },
{ queryString: "12 am pst to cet", expected: "9:00 AM CET" },
{ queryString: "12:30 pm pst to cet", expected: "9:30 PM CET" },
{ queryString: "12:30 am pst to cet", expected: "9:30 AM CET" },
{ queryString: "23 pm pst to cet", expected: "8:00 AM CET" },
{ queryString: "23:30 pm pst to cet", expected: "8:30 AM CET" },
{ queryString: "12 pm pst to cet", expected: "9:00\u{202F}PM CET" },
{ queryString: "12 am pst to cet", expected: "9:00\u{202F}AM CET" },
{ queryString: "12:30 pm pst to cet", expected: "9:30\u{202F}PM CET" },
{ queryString: "12:30 am pst to cet", expected: "9:30\u{202F}AM CET" },
{ queryString: "23 pm pst to cet", expected: "8:00\u{202F}AM CET" },
{ queryString: "23:30 pm pst to cet", expected: "8:30\u{202F}AM CET" },
{
queryString: "10:00 JST to here",
timezone: "UTC",
@ -406,7 +406,7 @@ const TEST_DATA = [
{
queryString: "1 am to JST",
timezone: "UTC",
expected: "10:00 AM JST",
expected: "10:00\u{202F}AM JST",
},
{
queryString: "now to JST",

View file

@ -189,7 +189,7 @@ const AVAILABLE_SHIMS = [
onlyIfBlockedByETP: true,
},
{
id: "AdvertisingDotCom",
id: "AdvertisingCom",
platform: "all",
name: "advertising.com",
bug: "1701685",
@ -213,7 +213,7 @@ const AVAILABLE_SHIMS = [
onlyIfBlockedByETP: true,
},
{
patterns: ["https://redirect.firefox.etp/adsafeprotected_pixel"],
patterns: ["https://redirect.firefox.etp/advertisingdotcom_pixel"],
target: "tracking-pixel.png",
types: ["image", "imageset", "xmlhttprequest"],
},

View file

@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "Web Compatibility Interventions",
"description": "Urgent post-release fixes for web compatibility.",
"version": "108.1.0",
"version": "108.2.0",
"browser_specific_settings": {
"gecko": {
"id": "webcompat@mozilla.org",

View file

@ -123,7 +123,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "6b6bb3e99a9bc934d433a392f07e914a48b9fb03"
"revision": "6697737655bfe6f04122974375149bd5fee80c09"
},
"bg": {
"pin": false,
@ -339,7 +339,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "a5d31d88356b246348fa58fcacdce4e7fa73d0bd"
"revision": "cd620ebed1eaf7351173e9fa857d952d18749353"
},
"da": {
"pin": false,
@ -663,7 +663,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "1e6d10dc44c1f803bd01d483471ac55e02611366"
"revision": "eb293a8289019b1a7b76c4042ae85847f306ae11"
},
"ga-IE": {
"pin": false,
@ -735,7 +735,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "24a07ffea48950b6150940a078ec819e6fe66ffc"
"revision": "f5554755095621a859dec668defde53c8597f79e"
},
"gu-IN": {
"pin": false,
@ -771,7 +771,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "aef2c23e3653540cdf9385af7b1503f98fdb67a2"
"revision": "f8412db317596c5de64e8b25c830932c096c8d24"
},
"hi-IN": {
"pin": false,
@ -915,7 +915,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "c36b66a02c9ec41092efd0ecbc51edb0980152fd"
"revision": "e5bb8a2bf8e81381db1260fe11c47ee897b26d2e"
},
"is": {
"pin": false,
@ -1029,7 +1029,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "53c494e2b749e7395c1a3cb037c8bf83ef2b17d4"
"revision": "f143464d3db190b13a5af83850a312e0e1e13a61"
},
"km": {
"pin": false,
@ -1083,7 +1083,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "eb4d734f6f336bb7385d24be131548252711524a"
"revision": "e83d874f1401b56562a2c1b96bd6d25f00c56134"
},
"lij": {
"pin": false,
@ -1281,7 +1281,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "bc3f09bcc7674c1803902b7875ff2ac3cff4d1d8"
"revision": "846bca95023e2033ec4c81a17ef0aaf91cd6f707"
},
"ne-NP": {
"pin": false,
@ -1299,7 +1299,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "8c2eccb12fd509326bd228b2d2d7e09acdc1ac40"
"revision": "42274ea9cc3b2488e5cf833b9fceb5d78086dea7"
},
"nl": {
"pin": false,
@ -1317,7 +1317,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "f656471497d2fb6d5275513b726ce858b7a434f9"
"revision": "afc882e62bbf4af74c2213fec221c2c406a61b47"
},
"nn-NO": {
"pin": false,
@ -1335,7 +1335,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "e9487bcdb5282342218b4a2105a09b9862593964"
"revision": "895bf9c224a1449050fa9ebb420898eee0bdee50"
},
"oc": {
"pin": false,
@ -1353,7 +1353,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "608b566c3e1da6336a4e5915c247b648ef161b58"
"revision": "808109d3c0b921071b857edcd9adeb6b822a4bd7"
},
"pa-IN": {
"pin": false,
@ -1371,7 +1371,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "187e54a1985e6262d5b7f62c5d5f4b7ee860e197"
"revision": "41e159df855ef2860af336bf94ec815ee45c5261"
},
"pl": {
"pin": false,
@ -1389,7 +1389,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "ef231623591e36a7a6b1da3bb82097027c7c489e"
"revision": "c1b7e036331c59e2f50390b916a6644c8ef67a5a"
},
"pt-BR": {
"pin": false,
@ -1407,7 +1407,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "43471f203e276143ecd59b4bff4d0b2da8825f66"
"revision": "8dead75f9afeb34e57a3bcd24ed4a564db9e762d"
},
"pt-PT": {
"pin": false,
@ -1425,7 +1425,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "22b0ba23e8ab1c8160f89de74512d1a26f059637"
"revision": "e2004dd62601de421adba549123e28cf12667900"
},
"rm": {
"pin": false,
@ -1443,7 +1443,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "83890367d61fd84d3f1b4ee79f3caf07fd5629a2"
"revision": "9aab30ed3488612383a6375e29710c65aa20839c"
},
"ro": {
"pin": false,
@ -1461,7 +1461,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "9ffbc2ceb6181fb4bbdd1120aab4d214fa0e4d1e"
"revision": "eb15422dff28cc0d0508087b5f1c0a3f2a162810"
},
"ru": {
"pin": false,
@ -1479,7 +1479,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "99899c8f4061537fffe36a7277b1ac28e2db5130"
"revision": "4f72f42aebcdf1f10e37ab944e68d9f99248e301"
},
"sat": {
"pin": false,
@ -1497,7 +1497,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "82acb8f4a6af85a5bb1af3c7830eb6ab7cc63174"
"revision": "cf2deb96e3f4b97388ac68e37b0fe77aa8ca5ccb"
},
"sc": {
"pin": false,
@ -1515,7 +1515,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "a387aeadfa4fce84450c59014f2eaa11a1d40119"
"revision": "4edb194a09f972b9f845ae54200eee27c2b2b463"
},
"scn": {
"pin": false,
@ -1533,7 +1533,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "92402878c982b800e4ae6306a782db7c4739acda"
"revision": "283982fa0bf0d263ebe5e794d591606d925a85f0"
},
"sco": {
"pin": false,
@ -1551,7 +1551,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "23d508718e2eec29ca022904846521667f27e7f7"
"revision": "7286fdcb8d91a9a29a438c618fffd0bdb1cb5b0a"
},
"si": {
"pin": false,
@ -1569,7 +1569,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "eb10989dbc2a562d470213dfb85744eacd0957a4"
"revision": "6a2812646d45d14201ebfcd909c7279804bfdffc"
},
"sk": {
"pin": false,
@ -1587,7 +1587,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "3ea03ba5ed56c5112a0a8505bfe0589c7830e08c"
"revision": "bd460eecadaae22035a8634d68a68c3d384ea62e"
},
"sl": {
"pin": false,
@ -1605,7 +1605,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "81098ca9a8ea2157ba2f4981dbf47e67ce73ef50"
"revision": "9dbe217e692e7a95d465bcb03e5696548c8d9068"
},
"son": {
"pin": false,
@ -1623,7 +1623,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "18e4d2bf56103d1392933fd4ef5a4a6ac4fbae0e"
"revision": "ece161c6f98dc74b9ceecccaeffc7021d2674cfd"
},
"sq": {
"pin": false,
@ -1641,7 +1641,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "9af8f028a63b109a642f82a26c6eab1afcc87049"
"revision": "a0b37bb9492563a6c4bf0f861609fd0ad04efbee"
},
"sr": {
"pin": false,
@ -1659,7 +1659,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "6cf6af5731711ea94b8a16927e6db32cc0959b31"
"revision": "83c23500f949ffece0043bd3d9ad7d8dca477fee"
},
"sv-SE": {
"pin": false,
@ -1677,7 +1677,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "9c0e606c4f0c3571151a2ca5aae8178ab6e6711f"
"revision": "da22e7cc6743fffcd865376a6e03d4d6fe440e0f"
},
"szl": {
"pin": false,
@ -1695,7 +1695,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "a9531db9ab5bbb46292c64979282ccac3b1a0b56"
"revision": "288ce9f945ed54282721c3fcbc73136521f61acd"
},
"ta": {
"pin": false,
@ -1713,7 +1713,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "a00973956b73f7248d768f4be88bdc0610f18ff8"
"revision": "8e8d7e7e882623a79e617fe9015e83aeb8b374bb"
},
"te": {
"pin": false,
@ -1731,7 +1731,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "f9a331922d7b737e4f0c71254cbc300560fa578e"
"revision": "24148539eedf61dbfeecf8caed406af43378d7b0"
},
"tg": {
"pin": false,
@ -1749,7 +1749,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "3bae4022d3d8bdccc9bc2150d120167842c68848"
"revision": "a69d98b8a5a43c6b93aae80a26671d05c1757a63"
},
"th": {
"pin": false,
@ -1767,7 +1767,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "ae483a12ad0065451ee37d2222b512612a30e5b7"
"revision": "03d6c6fe98e05db98bfed25a0b24a72bfdeea4c8"
},
"tl": {
"pin": false,
@ -1785,7 +1785,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "1ff57d72c34403b2477b10aafe3d1aba2b5f6c59"
"revision": "7622da9019fbe7c83a37fdd4ce38ce0281b8db88"
},
"tr": {
"pin": false,
@ -1803,7 +1803,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "9a06daccd2a70434fbfc41864e4527f1f79a3f77"
"revision": "8b56fdc7d226a359747095054358cc0808438b8e"
},
"trs": {
"pin": false,
@ -1821,7 +1821,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "38f72295b089a6eff1ccf5a44abde9ad9f058f59"
"revision": "9051ef497149dcd0e93aa756194bae624948b0c0"
},
"uk": {
"pin": false,
@ -1839,7 +1839,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "04febdf4c48eb19b46f193d09a083b2f232beba8"
"revision": "114c255e8bfb8cb6ef52f24063c9600d1696fe74"
},
"ur": {
"pin": false,
@ -1857,7 +1857,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "4a7f40ce682b741453ff49f8d68ce6c147f73240"
"revision": "571c8f23ca554cf45fb08099702934fd714bc487"
},
"uz": {
"pin": false,
@ -1875,7 +1875,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "6d54028735d77700733ac34876a48d27abdc3839"
"revision": "a3b642a27582d2e30170d9fff35abe3447e71ac2"
},
"vi": {
"pin": false,
@ -1893,7 +1893,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "697a024184c9de467240023461919c3db1abeaca"
"revision": "dcc6eed4c4cf39b0405f4f01fdc2734571c6951b"
},
"wo": {
"pin": false,
@ -1911,7 +1911,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "9fed112206ec06d6c0300c2a161757c8dd2a37df"
"revision": "8c57aedad9503f34bf3d72908376020e91ac7f88"
},
"xh": {
"pin": false,
@ -1929,7 +1929,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "03a37c88fc96d14a5a180e96eb126619239a00a0"
"revision": "5f571f2c741c6eab39c6eb4492484c9afeab1cb7"
},
"zh-CN": {
"pin": false,
@ -1947,7 +1947,7 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "98d5326a18d4aa83d4e4c9ea6554f355b9f0171b"
"revision": "b9c1eb440d8d9b10fb00d1dbdc33c1d5270b92f1"
},
"zh-TW": {
"pin": false,
@ -1965,6 +1965,6 @@
"win64-aarch64-devedition",
"win64-devedition"
],
"revision": "1b8c1abc4662f9caddee0cc69be6ffc20a0c7787"
"revision": "71359b8934fdeabf50cf125214373e3a1b408960"
}
}

View file

@ -80,7 +80,7 @@ with Files("ProcessHangMonitor.jsm"):
BUG_COMPONENT = ("Core", "DOM: Content Processes")
with Files("Sanitizer.sys.mjs"):
BUG_COMPONENT = ("Firefox", "Settings UI")
BUG_COMPONENT = ("Toolkit", "Data Sanitization")
with Files("SelectionChangedMenulist.jsm"):
BUG_COMPONENT = ("Firefox", "Settings UI")

View file

@ -68,11 +68,6 @@
position: relative;
}
#browser-bottombox {
/* opaque for layers optimization */
background-color: -moz-Dialog;
}
/* Bookmark menus */
menu.bookmark-item,
menuitem.bookmark-item {

View file

@ -34,7 +34,7 @@
}
@media (-moz-windows-compositor) {
:root:is([sizemode="maximized"], [sizemode="fullscreen"]) .titlebar-buttonbox {
:root[sizemode="maximized"] .titlebar-buttonbox {
appearance: auto;
-moz-default-appearance: -moz-window-button-box-maximized;
}

View file

@ -172,10 +172,6 @@
-moz-default-appearance: toolbox;
}
#browser-bottombox:not(:-moz-lwtheme) {
background-color: -moz-dialog;
}
/* Titlebar */
:root[tabsintitlebar][sizemode="normal"] #titlebar {

View file

@ -14,10 +14,3 @@ menupopup::part(drop-indicator) {
toolbarbutton menupopup[placespopup] {
--nested-margin: calc(-1 * (var(--arrowpanel-menuitem-padding-inline) + var(--panel-shadow-margin)));
}
/* Add border-radius on Windows 7 */
@media (-moz-platform: windows-win7) {
toolbarbutton menupopup[placespopup]::part(content) {
border-radius: 3.5px;
}
}

View file

@ -5,6 +5,7 @@
"cxx": "{MOZ_FETCHES_DIR}/clang/bin/clang++",
"as": "{MOZ_FETCHES_DIR}/clang/bin/clang",
"patches": [
"clang_include_cleaner.patch",
"clang-tidy-ci.patch"
]
}

View file

@ -10,6 +10,7 @@
"libtool": "{MOZ_FETCHES_DIR}/cctools/bin/x86_64-apple-darwin-libtool",
"ld": "{MOZ_FETCHES_DIR}/clang/bin/clang",
"patches": [
"clang_include_cleaner.patch",
"clang-tidy-ci.patch"
]
}

View file

@ -5,6 +5,7 @@
"cxx": "cl.exe",
"ml": "ml64.exe",
"patches": [
"clang_include_cleaner.patch",
"clang-tidy-ci.patch"
]
}

File diff suppressed because it is too large Load diff

View file

@ -118,9 +118,11 @@ def _maybe_activate_mozillabuild_environment():
paths_to_add = [mozillabuild_msys_tools_path, mozillabuild / "bin"]
existing_paths = [Path(p) for p in os.environ.get("PATH", "").split(os.pathsep)]
# It's important that we prepend to the path rather than append,
# in case mach is getting called from another msys2 environment.
for new_path in paths_to_add:
if new_path not in existing_paths:
os.environ["PATH"] += f"{os.pathsep}{new_path}"
os.environ["PATH"] = f"{new_path}{os.pathsep}" + os.environ["PATH"]
def initialize(topsrcdir):

View file

@ -32,6 +32,7 @@ endif
MOZ_MAKE = $(MAKE) $(MOZ_MAKE_FLAGS) -C $(OBJDIR)
ifdef MOZBUILD_MANAGE_SCCACHE_DAEMON
# In automation, manage an sccache daemon. The starting of the server
# needs to be in a make file so sccache inherits the jobserver.
SCCACHE_STOP = $(MOZBUILD_MANAGE_SCCACHE_DAEMON) --stop-server
@ -42,6 +43,7 @@ SCCACHE_STOP = $(MOZBUILD_MANAGE_SCCACHE_DAEMON) --stop-server
# However, we also need to preserve the command's exit code, thus the
# gymnastics.
SCCACHE_STOP_ON_FAILURE = || (x=$$?; $(SCCACHE_STOP) || true; exit $$x)
endif
# The default rule is build
build:

View file

@ -42,6 +42,7 @@ sources = [
'/intl/icu/source/i18n/decContext.cpp',
'/intl/icu/source/i18n/decimfmt.cpp',
'/intl/icu/source/i18n/decNumber.cpp',
'/intl/icu/source/i18n/displayoptions.cpp',
'/intl/icu/source/i18n/double-conversion-bignum-dtoa.cpp',
'/intl/icu/source/i18n/double-conversion-bignum.cpp',
'/intl/icu/source/i18n/double-conversion-cached-powers.cpp',
@ -257,6 +258,7 @@ EXPORTS.unicode += [
'/intl/icu/source/i18n/unicode/datefmt.h',
'/intl/icu/source/i18n/unicode/dcfmtsym.h',
'/intl/icu/source/i18n/unicode/decimfmt.h',
'/intl/icu/source/i18n/unicode/displayoptions.h',
'/intl/icu/source/i18n/unicode/dtfmtsym.h',
'/intl/icu/source/i18n/unicode/dtitvfmt.h',
'/intl/icu/source/i18n/unicode/dtitvinf.h',
@ -310,6 +312,7 @@ EXPORTS.unicode += [
'/intl/icu/source/i18n/unicode/udat.h',
'/intl/icu/source/i18n/unicode/udateintervalformat.h',
'/intl/icu/source/i18n/unicode/udatpg.h',
'/intl/icu/source/i18n/unicode/udisplayoptions.h',
'/intl/icu/source/i18n/unicode/ufieldpositer.h',
'/intl/icu/source/i18n/unicode/uformattable.h',
'/intl/icu/source/i18n/unicode/uformattedvalue.h',
@ -318,7 +321,6 @@ EXPORTS.unicode += [
'/intl/icu/source/i18n/unicode/ulocdata.h',
'/intl/icu/source/i18n/unicode/umsg.h',
'/intl/icu/source/i18n/unicode/unirepl.h',
'/intl/icu/source/i18n/unicode/unounclass.h',
'/intl/icu/source/i18n/unicode/unum.h',
'/intl/icu/source/i18n/unicode/unumberformatter.h',
'/intl/icu/source/i18n/unicode/unumberrangeformatter.h',

View file

@ -22,7 +22,6 @@ vendoring:
exclude:
# dirs
- .github
- test
# files
- .clang-format

View file

@ -24,7 +24,6 @@ vendoring:
# so just explicitly exclude what we don't want for now
exclude:
# dirs
- .github
- cmake
- docs
- fuzz-in

View file

@ -487,9 +487,9 @@ ifeq (WINNT_,$(HOST_OS_ARCH)_$(GNU_CC))
$(HOST_LINKER) -OUT:$@ -PDB:$(HOST_PDBFILE) $($(notdir $@)_OBJS) $(WIN32_EXE_LDFLAGS) $(HOST_LDFLAGS) $(HOST_LINKER_LIBPATHS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
else
ifneq (,$(HOST_CPPSRCS)$(USE_HOST_CXX))
$(HOST_CXX) $(HOST_OUTOPTION)$@ $(HOST_CXX_LDFLAGS) $($(notdir $@)_OBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
$(HOST_CXX) $(HOST_OUTOPTION)$@ $(HOST_CXX_LDFLAGS) $(HOST_LDFLAGS) $($(notdir $@)_OBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
else
$(HOST_CC) $(HOST_OUTOPTION)$@ $(HOST_C_LDFLAGS) $($(notdir $@)_OBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
$(HOST_CC) $(HOST_OUTOPTION)$@ $(HOST_C_LDFLAGS) $(HOST_LDFLAGS) $($(notdir $@)_OBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
endif
endif
ifndef CROSS_COMPILE

View file

@ -1,4 +1,5 @@
from __future__ import absolute_import
from mod_pywebsocket import msgutil

View file

@ -222,9 +222,6 @@ exports.CSS_PROPERTIES = {
"-moz-window-button-maximize",
"-moz-window-button-minimize",
"-moz-window-button-restore",
"-moz-window-frame-bottom",
"-moz-window-frame-left",
"-moz-window-frame-right",
"-moz-window-titlebar",
"-moz-window-titlebar-maximized",
"auto",
@ -1496,9 +1493,6 @@ exports.CSS_PROPERTIES = {
"-moz-window-button-maximize",
"-moz-window-button-minimize",
"-moz-window-button-restore",
"-moz-window-frame-bottom",
"-moz-window-frame-left",
"-moz-window-frame-right",
"-moz-window-titlebar",
"-moz-window-titlebar-maximized",
"auto",
@ -1922,6 +1916,34 @@ exports.CSS_PROPERTIES = {
"unset"
]
},
"-webkit-clip-path": {
"isInherited": false,
"subproperties": [
"clip-path"
],
"supports": [],
"values": [
"border-box",
"circle",
"content-box",
"ellipse",
"fill-box",
"inherit",
"initial",
"inset",
"margin-box",
"none",
"padding-box",
"path",
"polygon",
"revert",
"revert-layer",
"stroke-box",
"unset",
"url",
"view-box"
]
},
"-webkit-filter": {
"isInherited": false,
"subproperties": [
@ -3476,9 +3498,6 @@ exports.CSS_PROPERTIES = {
"-moz-window-button-maximize",
"-moz-window-button-minimize",
"-moz-window-button-restore",
"-moz-window-frame-bottom",
"-moz-window-frame-left",
"-moz-window-frame-right",
"-moz-window-titlebar",
"-moz-window-titlebar-maximized",
"auto",

View file

@ -2,10 +2,11 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from sphinx.transforms import SphinxTransform
from docutils.nodes import reference, Text, paragraph
import re
from docutils.nodes import Text, paragraph, reference
from sphinx.transforms import SphinxTransform
class ConvertBugsToLinks(SphinxTransform):
# Convert text entries in paragraphs that are in the style of "bug xxxxx"

View file

@ -3587,7 +3587,7 @@ The profile system and startup process before the front-end launches.
Telemetry
=========
The core infrastructure in the Firefox client to send back Telemetry and FHR data. Includes the common mechanism to record, view and submit data like histograms, the Telemetry environment and custom pings. This module does ''not'' include responsibility for every piece of submitted Telemetry data. Each team/module is responsible for their own measurements (histograms, scalars, other ping submissions, etc.).
The core infrastructure in the Firefox client to send back telemetry data. Includes the common mechanisms to record, view and submit data: Legacy Telemetry and Glean (via Firefox on Glean (FOG)). This module does ''not'' include responsibility for every piece of submitted Telemetry data. Each team/module is responsible for their own measurements (histograms, scalars, other ping submissions, etc.).
.. list-table::
@ -3601,10 +3601,13 @@ The core infrastructure in the Firefox client to send back Telemetry and FHR dat
-
| `aplacitelli <https://people.mozilla.org/s?query=aplacitelli>`__
| `Jan-Erik Rediger (janerik) <https://people.mozilla.org/s?query=janerik>`__
| `Perry McManis (perrym) <https://people.mozilla.org/s?query=perrym>`__
| `Travis Long (travis_) <https://people.mozilla.org/s?query=travis_>`__
* - Owner(s) Emeritus
- Georg Fritzsche
* - Includes
-
| `toolkit/components/glean/\*\*/\* <https://searchfox.org/mozilla-central/search?q=&path=toolkit/components/glean/\*\*/\*>`__
| `toolkit/components/telemetry/\*\*/\* <https://searchfox.org/mozilla-central/search?q=&path=toolkit/components/telemetry/\*\*/\*>`__
| `toolkit/content/aboutTelemetry.\* <https://searchfox.org/mozilla-central/search?q=&path=toolkit/content/aboutTelemetry.\*>`__
* - Group

View file

@ -1,19 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!--
user_pref("dom.webcomponents.enabled", true);
-->
<script>
function boom() {
var x = document.createElementNS("http://www.mozilla.org/xbl", "children");
x.appendChild(document.createTextNode("t"));
document.body.attachShadow({ mode: "open" }).appendChild(x);
}
</script>
</head>
<body onload="boom();"></body>
</html>

View file

@ -1,15 +0,0 @@
<!DOCTYPE html>
<html>
<script>
addEventListener("DOMContentLoaded", function(){
let o_0 = document.createElement("span").attachShadow({ mode: "open" });
let o_1 = document.createElementNS("http://www.mozilla.org/xbl", "binding");
let o_2 = document.createElementNS("http://www.mozilla.org/xbl", "children");
let o_3 = document.createTextNode("");
o_0.appendChild(o_1);
o_1.appendChild(o_2);
o_2.appendChild(o_3);
o_2.removeChild(o_3);
});
</script>
</html>

View file

@ -1 +0,0 @@
<bindings xmlns="http://www.mozilla.org/xbl"><binding id="foo"><content><span xmlns="http://www.w3.org/1999/xhtml"><children xmlns="http://www.mozilla.org/xbl"/></span></content></binding></bindings>

View file

@ -1,56 +0,0 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script>
<![CDATA[
var i = 0;
function init()
{
targetWindow = window.frames[0];
targetDocument = targetWindow.document;
targetDocument.body.appendChild(targetDocument.importNode(document.getElementById('rootish'), true));
targetDocument.designMode = 'on';
setTimeout(boom, 30);
}
function boom()
{
var r = targetDocument.createRange();
r.setStart(targetDocument.getElementById("bar"), 0);
r.setEnd(targetDocument.getElementById("baz").firstChild, 0);
targetWindow.getSelection().addRange(r);
targetDocument.execCommand("indent", false, null);
setTimeout(whack, 300);
}
function whack()
{
if (++i > 100) return;
document.documentElement.style.MozBinding = 'url("data:text/xml,' + encodeURIComponent("<bindings xmlns=\"http://www.mozilla.org/xbl\"><binding id=\"foo\" g=\""+Math.random()+"\"><content>\n<\/content><\/binding><\/bindings>\n") + '")';
setTimeout(bonk, 10);
}
function bonk()
{
document.getElementById("i").style.MozBinding = 'url("data:text/xml,' + encodeURIComponent("<bindings xmlns=\"http://www.mozilla.org/xbl\"><binding id=\"foo\" g=\""+Math.random()+"\"><content>\n\n<\/content><\/binding><\/bindings>\n") + '")';
document.documentElement.style.MozBinding = 'url("data:text/xml,' + encodeURIComponent("<bindings xmlns=\"http://www.mozilla.org/xbl\"><binding id=\"foo\" g=\""+Math.random()+"\"><content><iframe xmlns=\"http://www.w3.org/1999/xhtml\" src=\"data:text/html,\" style=\"width: 95%; height: 500px;\"><\/iframe><\/content><\/binding><\/bindings>\n") + '")';
setTimeout(whack, 10);
}
]]>
</script>
</head>
<body onload="init()">
<iframe id="i" src="data:text/html," style="width: 95%; height: 500px;"/>
<div id="rootish">
<div>Foo</div>
<div id="bar">Bar</div>
<div><select><option id="baz">baz</option></select></div>
</div>
</body>
</html>

View file

@ -1,12 +0,0 @@
<html class="reftest-wait">
<head>
<script>
function finish() {
document.documentElement.removeAttribute("class");
}
</script>
</head>
<body onload="setTimeout(finish, 5000)">
<iframe src="561981-1-iframe.xhtml"></iframe>
</body>
</html>

View file

@ -1,38 +0,0 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script>
<![CDATA[
var i = 0;
function init()
{
targetWindow = window.frames[0];
targetDocument = targetWindow.document;
targetDocument.designMode = 'on';
setTimeout(whack, 30);
}
function whack()
{
if (++i > 100) return;
document.documentElement.style.MozBinding = 'url("data:text/xml,' + encodeURIComponent("<bindings xmlns=\"http://www.mozilla.org/xbl\"><binding id=\"foo\" g=\""+Math.random()+"\"><content>\n<\/content><\/binding><\/bindings>\n") + '")';
setTimeout(bonk, 10);
}
function bonk()
{
document.getElementById("i").style.MozBinding = 'url("data:text/xml,' + encodeURIComponent("<bindings xmlns=\"http://www.mozilla.org/xbl\"><binding id=\"foo\" g=\""+Math.random()+"\"><content>\n\n<\/content><\/binding><\/bindings>\n") + '")';
setTimeout(whack, 10);
}
]]>
</script>
</head>
<body onload="init()">
<iframe id="i" src="data:text/html," style="width: 95%; height: 500px;"/>
</body>
</html>

View file

@ -1,12 +0,0 @@
<html class="reftest-wait">
<head>
<script>
function finish() {
document.documentElement.removeAttribute("class");
}
</script>
</head>
<body onload="setTimeout(finish, 5000)">
<iframe src="561981-2-iframe.xhtml"></iframe>
</body>
</html>

View file

@ -85,8 +85,6 @@ load 551631-1.html
load 552651.html
load 554230-1.xhtml
load 558973.html
load 561981-1.html
load 561981-2.html
load 564079-1.html
load 564114.html
load 565125-1.html
@ -193,10 +191,8 @@ load 1228882.html
load 1230422.html
load 1251361.html
load 1281715.html
load 1281745.html
load 1304437.html
load 1324209.html
load 1324463.html
load 1324500.html
load 1326194-1.html
load 1326194-2.html

View file

@ -1,9 +0,0 @@
<bindings xmlns="http://www.mozilla.org/xbl"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:svg="http://www.w3.org/2000/svg">
<binding id="test">
<content>
<svg:g><svg:circle><xhtml:div xml:base="#shesellsseashellsbytheseashore"/></svg:circle><children/></svg:g>
</content>
</binding>
</bindings>

View file

@ -111,19 +111,25 @@ add_task(async function() {
info(`Test keycode ${key} (${keyCodeValue})`);
info("Enter fullscreen");
let state = await SpecialPowers.spawn(browser, [], () => {
return new Promise(resolve => {
content.document.addEventListener(
"fullscreenchange",
() => {
resolve(!!content.document.fullscreenElement);
},
{ once: true }
);
content.document.body.requestFullscreen();
});
let state = new Promise(resolve => {
let removeFun = BrowserTestUtils.addContentEventListener(
browser,
"fullscreenchange",
async () => {
removeFun();
resolve(
await SpecialPowers.spawn(browser, [], () => {
return !!content.document.fullscreenElement;
})
);
}
);
});
ok(state, "The content should have entered fullscreen");
// request fullscreen
SpecialPowers.spawn(browser, [], () => {
content.document.body.requestFullscreen();
});
ok(await state, "The content should have entered fullscreen");
ok(document.fullscreenElement, "The chrome should also be in fullscreen");
is(
@ -156,16 +162,19 @@ add_task(async function() {
info("Send trusted key events");
let fullScreenPromise = SpecialPowers.spawn(browser, [], () => {
return new Promise(resolve => {
content.document.addEventListener(
"fullscreenchange",
() => {
resolve(!!content.document.fullscreenElement);
},
{ once: true }
);
});
state = new Promise(resolve => {
let removeFun = BrowserTestUtils.addContentEventListener(
browser,
"fullscreenchange",
async () => {
removeFun();
resolve(
await SpecialPowers.spawn(browser, [], () => {
return !!content.document.fullscreenElement;
})
);
}
);
});
promiseExpectedKeyEvents = suppressed
@ -176,8 +185,7 @@ add_task(async function() {
EventUtils.synthesizeKey("KEY_" + key);
await promiseExpectedKeyEvents;
state = await fullScreenPromise;
ok(!state, "The content should have exited fullscreen");
ok(!(await state), "The content should have exited fullscreen");
ok(
!document.fullscreenElement,
"The chrome should also have exited fullscreen"

View file

@ -67,7 +67,6 @@ support-files =
eventsource_redirect_to.resource
eventsource_redirect_to.resource^headers^
eventsource_worker.js
file_base_xbl.xml
file_bug1091883_frame.html
file_bug1091883_subframe.html
file_bug1091883_target.html

View file

@ -47,6 +47,9 @@ void FileSystemManagerParent::AssertIsOnIOTarget() const {
const RefPtr<fs::data::FileSystemDataManager>&
FileSystemManagerParent::DataManagerStrongRef() const {
MOZ_ASSERT(!mActorDestroyed);
MOZ_ASSERT(mDataManager);
return mDataManager;
}
@ -464,30 +467,13 @@ void FileSystemManagerParent::RequestAllowToClose() {
});
}
void FileSystemManagerParent::OnChannelClose() {
void FileSystemManagerParent::ActorDestroy(ActorDestroyReason aWhy) {
AssertIsOnIOTarget();
MOZ_ASSERT(!mActorDestroyed);
if (!mAllowedToClose) {
AllowToClose();
}
PFileSystemManagerParent::OnChannelClose();
}
void FileSystemManagerParent::OnChannelError() {
AssertIsOnIOTarget();
if (!mAllowedToClose) {
AllowToClose();
}
PFileSystemManagerParent::OnChannelError();
}
void FileSystemManagerParent::AllowToClose() {
AssertIsOnIOTarget();
mAllowedToClose.Flip();
#ifdef DEBUG
mActorDestroyed = true;
#endif
InvokeAsync(mDataManager->MutableBackgroundTargetPtr(), __func__,
[self = RefPtr<FileSystemManagerParent>(this)]() {

View file

@ -27,6 +27,7 @@ class FileSystemManagerParent : public PFileSystemManagerParent {
void AssertIsOnIOTarget() const;
// Safe to call while the actor is live.
const RefPtr<fs::data::FileSystemDataManager>& DataManagerStrongRef() const;
mozilla::ipc::IPCResult RecvGetRootHandle(GetRootHandleResolver&& aResolver);
@ -68,22 +69,21 @@ class FileSystemManagerParent : public PFileSystemManagerParent {
void RequestAllowToClose();
void OnChannelClose() override;
void OnChannelError() override;
void ActorDestroy(ActorDestroyReason aWhy) override;
protected:
virtual ~FileSystemManagerParent();
void AllowToClose();
private:
RefPtr<fs::data::FileSystemDataManager> mDataManager;
FileSystemGetHandleResponse mRootResponse;
FlippedOnce<false> mRequestedAllowToClose;
FlippedOnce<false> mAllowedToClose;
#ifdef DEBUG
bool mActorDestroyed = false;
#endif
};
} // namespace mozilla::dom

View file

@ -1,7 +0,0 @@
<bindings xmlns="http://www.mozilla.org/xbl" xmlns:html="http://www.w3.org/1999/xhtml">
<binding id="xbl" inheritstyle="false">
<content>
<html:form id="g" observes="b"/>
</content>
</binding>
</bindings>

View file

@ -1,26 +0,0 @@
<xht:table xmlns:xht="http://www.w3.org/1999/xhtml"
xmlns:xbl="http://www.mozilla.org/xbl">
<xht:script type="text/javascript">// <![CDATA[
function boom() {
var topRight = document.getElementById('topRight');
topRight.appendChild(document.createElement("g"));
}
//]]> </xht:script>
<xbl:bindings>
<xbl:binding>
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
onload="setTimeout(boom, 0)">
<defs>
<g id="markerGroup">
<g id="topLeft"/>
<g id="topRight"/>
<set xlink:href="#topLeft" attributeName="fill" to="green" dur="1s"/>
</g>
</defs>
<use xlink:href="#markerGroup"/>
</svg>
</xbl:binding>
</xbl:bindings>
</xht:table>

View file

@ -22,7 +22,6 @@ load 572938-4.svg
load 588287-1.svg
load 588287-2.svg
load 590425-1.html
load 592477-1.xhtml
load 594653-1.svg
load 596796-1.svg
load 605345-1.svg

View file

@ -1,9 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xbl="http://www.mozilla.org/xbl"
onload="document.documentElement.style.MozBinding = 'url(#tsw)';">
<xbl:bindings><xbl:binding id="tsw"><xbl:content>
<text stroke-width="50%"><xbl:children/></text>
</xbl:content></xbl:binding></xbl:bindings>
</svg>

Before

Width:  |  Height:  |  Size: 309 B

View file

@ -30,7 +30,6 @@ load 409811-1.html
load 410659-1.svg
load 410659-2.svg
load 410659-3.svg
load 412104-1.svg
load 413174-1.svg
load 414188-1.svg
load 427325-1.svg

View file

@ -1258,22 +1258,22 @@ bool ScriptExecutorRunnable::WorkerRun(JSContext* aCx,
if (mScriptLoader->CleanedUp()) {
return true;
}
}
// We must be on the same worker as we started on.
MOZ_ASSERT(
mScriptLoader->mSyncLoopTarget == mSyncLoopTarget,
"Unexpected SyncLoopTarget. Check if the sync loop was closed early");
// We must be on the same worker as we started on.
MOZ_ASSERT(
mScriptLoader->mSyncLoopTarget == mSyncLoopTarget,
"Unexpected SyncLoopTarget. Check if the sync loop was closed early");
for (const auto& requestHandle : mLoadedRequests) {
// The request must be valid.
MOZ_ASSERT(!requestHandle->IsEmpty());
for (const auto& requestHandle : mLoadedRequests) {
// The request must be valid.
MOZ_ASSERT(!requestHandle->IsEmpty());
// Release the request to the worker. From this point on, the Request Handle
// is empty.
RefPtr<ScriptLoadRequest> request = requestHandle->ReleaseRequest();
// Release the request to the worker. From this point on, the Request
// Handle is empty.
RefPtr<ScriptLoadRequest> request = requestHandle->ReleaseRequest();
mScriptLoader->MaybeMoveToLoadedList(request);
mScriptLoader->MaybeMoveToLoadedList(request);
}
}
return mScriptLoader->ProcessPendingRequests(aCx);
}

View file

@ -261,7 +261,11 @@ class WorkletFetchHandler final : public PromiseNativeHandler,
virtual void RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue,
ErrorResult& aRv) override {
MOZ_ASSERT(NS_IsMainThread());
RejectPromises(NS_ERROR_DOM_NETWORK_ERR);
// https://html.spec.whatwg.org/multipage/worklets.html#dom-worklet-addmodule
// Step 6.4.1. If script is null, then:
// Step 1.1.2. Reject promise with an "AbortError" DOMException.
RejectPromises(NS_ERROR_DOM_ABORT_ERR);
}
const nsCString& URL() const { return mURL; }

View file

@ -1,3 +0,0 @@
<bindings xmlns="http://www.mozilla.org/xbl"><binding id="foo"><content>
<a xmlns="http://www.w3.org/1999/xhtml" href="http://www.mozilla.org/" id="mlink">Foo<children xmlns="http://www.mozilla.org/xbl"/></a>
</content></binding></bindings>

View file

@ -682,6 +682,8 @@ void gfxPlatformMac::GetCommonFallbackFonts(uint32_t aCh, Script aRunScript,
case Script::TANGSA:
case Script::TOTO:
case Script::VITHKUQI:
case Script::KAWI:
case Script::NAG_MUNDARI:
break;
}

View file

@ -47,7 +47,7 @@ TEST(IntlDateIntervalFormat, TryFormatDateTime)
spanResult = formatted.ToSpan();
ASSERT_TRUE(spanResult.isOk());
ASSERT_EQ(spanResult.unwrap(),
MakeStringSpan(u"01/03, 00:00 01/05, 00:00"));
MakeStringSpan(u"01/03, 00:00\u2009\u200901/05, 00:00"));
}
TEST(IntlDateIntervalFormat, TryFormatCalendar)
@ -104,7 +104,7 @@ TEST(IntlDateIntervalFormat, TryFormatCalendar)
spanResult = formatted.ToSpan();
ASSERT_TRUE(spanResult.isOk());
ASSERT_EQ(spanResult.unwrap(),
MakeStringSpan(u"01/03, 00:00 01/05, 00:00"));
MakeStringSpan(u"01/03, 00:00\u2009\u200901/05, 00:00"));
}
TEST(IntlDateIntervalFormat, TryFormattedToParts)
@ -123,7 +123,8 @@ TEST(IntlDateIntervalFormat, TryFormattedToParts)
ASSERT_FALSE(equal);
Span<const char16_t> formattedSpan = formatted.ToSpan().unwrap();
ASSERT_EQ(formattedSpan, MakeStringSpan(u"01/03, 00:00 01/05, 00:00"));
ASSERT_EQ(formattedSpan,
MakeStringSpan(u"01/03, 00:00\u2009\u200901/05, 00:00"));
mozilla::intl::DateTimePartVector parts;
result = dif->TryFormattedToParts(formatted, parts);
@ -164,7 +165,7 @@ TEST(IntlDateIntervalFormat, TryFormattedToParts)
ASSERT_EQ(parts[6].mSource, DateTimePartSource::StartRange);
ASSERT_EQ(parts[7].mType, DateTimePartType::Literal);
ASSERT_EQ(getSubSpan(7), MakeStringSpan(u" "));
ASSERT_EQ(getSubSpan(7), MakeStringSpan(u"\u2009\u2009"));
ASSERT_EQ(parts[7].mSource, DateTimePartSource::Shared);
ASSERT_EQ(parts[8].mType, DateTimePartType::Month);

View file

@ -38,7 +38,7 @@ TEST(IntlDateTimeFormat, Style_enUS_utf8)
TestBuffer<char> buffer;
dtFormat->TryFormat(DATE, buffer).unwrap();
ASSERT_TRUE(buffer.verboseMatches("Sep 23, 2002, 8:07:30 PM"));
ASSERT_TRUE(buffer.verboseMatches("Sep 23, 2002, 8:07:30\u202FPM"));
}
TEST(IntlDateTimeFormat, Style_enUS_utf16)
@ -51,7 +51,7 @@ TEST(IntlDateTimeFormat, Style_enUS_utf16)
TestBuffer<char16_t> buffer;
dtFormat->TryFormat(DATE, buffer).unwrap();
ASSERT_TRUE(buffer.verboseMatches(u"Sep 23, 2002, 8:07:30 PM"));
ASSERT_TRUE(buffer.verboseMatches(u"Sep 23, 2002, 8:07:30\u202FPM"));
}
TEST(IntlDateTimeFormat, Style_ar_utf8)
@ -86,7 +86,7 @@ TEST(IntlDateTimeFormat, Style_enUS_fallback_to_default_styles)
TestBuffer<char> buffer;
dtFormat->TryFormat(DATE, buffer).unwrap();
ASSERT_TRUE(buffer.verboseMatches("Sep 23, 2002, 8:07:30 PM"));
ASSERT_TRUE(buffer.verboseMatches("Sep 23, 2002, 8:07:30\u202FPM"));
}
TEST(IntlDateTimeFormat, Time_zone_IANA_identifier)
@ -103,7 +103,7 @@ TEST(IntlDateTimeFormat, Time_zone_IANA_identifier)
.unwrap();
TestBuffer<char> buffer;
dtFormat->TryFormat(DATE, buffer).unwrap();
ASSERT_TRUE(buffer.verboseMatches("Sep 23, 2002, 12:07:30 PM"));
ASSERT_TRUE(buffer.verboseMatches("Sep 23, 2002, 12:07:30\u202FPM"));
}
TEST(IntlDateTimeFormat, GetAllowedHourCycles)
@ -191,7 +191,7 @@ TEST(IntlDateTimeFormat, Components)
TestBuffer<char16_t> buffer;
ASSERT_TRUE(FormatComponents(buffer, components));
ASSERT_TRUE(buffer.verboseMatches(u"9/23/2002, 8:07:30 PM"));
ASSERT_TRUE(buffer.verboseMatches(u"9/23/2002, 8:07:30\u202FPM"));
}
TEST(IntlDateTimeFormat, Components_es_ES)
@ -246,7 +246,7 @@ TEST(IntlDateTimeFormat, ComponentsHour12Default)
TestBuffer<char16_t> buffer;
ASSERT_TRUE(FormatComponents(buffer, components));
ASSERT_TRUE(buffer.verboseMatches(u"8:07 PM"));
ASSERT_TRUE(buffer.verboseMatches(u"8:07\u202FPM"));
}
TEST(IntlDateTimeFormat, ComponentsHour24)

View file

@ -108,10 +108,8 @@ static bool IsStandaloneMonth(UDateFormatSymbolType symbolType) {
case UDAT_ZODIAC_NAMES_WIDE:
case UDAT_ZODIAC_NAMES_ABBREVIATED:
case UDAT_ZODIAC_NAMES_NARROW:
# ifndef U_HIDE_DRAFT_API
case UDAT_NARROW_QUARTERS:
case UDAT_STANDALONE_NARROW_QUARTERS:
# endif
return false;
}

View file

@ -820,11 +820,7 @@ class DisplayNames final {
break;
case DisplayNames::Style::Narrow:
#ifndef U_HIDE_DRAFT_API
symbolType = UDAT_STANDALONE_NARROW_QUARTERS;
#else
symbolType = UDAT_STANDALONE_SHORT_QUARTERS;
#endif
break;
}

View file

@ -1,6 +1,6 @@
// Generated by make_intl_data.py. DO NOT EDIT.
// Version: CLDR-41
// URL: https://unicode.org/Public/cldr/41/core.zip
// Version: CLDR-42
// URL: https://unicode.org/Public/cldr/42/core.zip
#include "mozilla/Assertions.h"
#include "mozilla/Span.h"
@ -99,8 +99,8 @@ static bool IsCanonicallyCasedTransformType(mozilla::Span<const char> type) {
#endif
// Mappings from language subtags to preferred values.
// Derived from CLDR Supplemental Data, version 41.
// https://unicode.org/Public/cldr/41/core.zip
// Derived from CLDR Supplemental Data, version 42.
// https://unicode.org/Public/cldr/42/core.zip
bool mozilla::intl::Locale::LanguageMapping(LanguageSubtag& language) {
MOZ_ASSERT(IsStructurallyValidLanguageTag(language.Span()));
MOZ_ASSERT(IsCanonicallyCasedLanguageTag(language.Span()));
@ -121,91 +121,91 @@ bool mozilla::intl::Locale::LanguageMapping(LanguageSubtag& language) {
}
if (language.Length() == 3) {
static const char languages[404][4] = {
"aam", "aar", "abk", "adp", "afr", "agp", "ais", "aju", "aka", "alb",
"als", "amh", "ara", "arb", "arg", "arm", "asd", "asm", "aue", "ava",
"ave", "aym", "ayr", "ayx", "aze", "azj", "bak", "bam", "baq", "baz",
"bcc", "bcl", "bel", "ben", "bgm", "bhk", "bic", "bih", "bis", "bjd",
"bjq", "bkb", "blg", "bod", "bos", "bre", "btb", "bul", "bur", "bxk",
"bxr", "cat", "ccq", "ces", "cha", "che", "chi", "chu", "chv", "cjr",
"cka", "cld", "cmk", "cmn", "cor", "cos", "coy", "cqu", "cre", "cwd",
"cym", "cze", "daf", "dan", "dap", "deu", "dgo", "dhd", "dik", "diq",
"dit", "div", "djl", "dkl", "drh", "drr", "dud", "duj", "dut", "dwl",
"dzo", "ekk", "ell", "elp", "emk", "eng", "epo", "esk", "est", "eus",
"ewe", "fao", "fas", "fat", "fij", "fin", "fra", "fre", "fry", "fuc",
"ful", "gav", "gaz", "gbc", "gbo", "geo", "ger", "gfx", "ggn", "ggo",
"ggr", "gio", "gla", "gle", "glg", "gli", "glv", "gno", "gre", "grn",
"gti", "gug", "guj", "guv", "gya", "hat", "hau", "hdn", "hea", "heb",
"her", "him", "hin", "hmo", "hrr", "hrv", "hun", "hye", "ibi", "ibo",
"ice", "ido", "iii", "ike", "iku", "ile", "ill", "ilw", "ina", "ind",
"ipk", "isl", "ita", "izi", "jar", "jav", "jeg", "jpn", "kal", "kan",
"kas", "kat", "kau", "kaz", "kdv", "kgc", "kgd", "kgh", "khk", "khm",
"kik", "kin", "kir", "kmr", "knc", "kng", "knn", "koj", "kom", "kon",
"kor", "kpp", "kpv", "krm", "ktr", "kua", "kur", "kvs", "kwq", "kxe",
"kxl", "kzh", "kzj", "kzt", "lao", "lat", "lav", "lbk", "leg", "lii",
"lim", "lin", "lit", "llo", "lmm", "ltz", "lub", "lug", "lvs", "mac",
"mah", "mal", "mao", "mar", "may", "meg", "mgx", "mhr", "mkd", "mlg",
"mlt", "mnk", "mnt", "mof", "mol", "mon", "mri", "msa", "mst", "mup",
"mwd", "mwj", "mya", "myd", "myt", "nad", "nau", "nav", "nbf", "nbl",
"nbx", "ncp", "nde", "ndo", "nep", "nld", "nln", "nlr", "nno", "nns",
"nnx", "nob", "noo", "nor", "npi", "nts", "nxu", "nya", "oci", "ojg",
"oji", "ori", "orm", "ory", "oss", "oun", "pan", "pat", "pbu", "pcr",
"per", "pes", "pli", "plt", "pmc", "pmu", "pnb", "pol", "por", "ppa",
"ppr", "pry", "pus", "puz", "que", "quz", "rmr", "rmy", "roh", "ron",
"rum", "run", "rus", "sag", "san", "sap", "sca", "scc", "scr", "sgl",
"sin", "skk", "slk", "slo", "slv", "sme", "smo", "sna", "snd", "som",
"sot", "spa", "spy", "sqi", "src", "srd", "srp", "ssw", "sul", "sum",
"sun", "swa", "swe", "swh", "tah", "tam", "tat", "tdu", "tel", "tgg",
"tgk", "tgl", "tha", "thc", "thw", "thx", "tib", "tid", "tie", "tir",
"tkk", "tlw", "tmp", "tne", "ton", "tsf", "tsn", "tso", "ttq", "tuk",
"tur", "twi", "uig", "ukr", "umu", "unp", "uok", "urd", "uzb", "uzn",
"ven", "vie", "vol", "wel", "wgw", "wit", "wiw", "wln", "wol", "xba",
"xho", "xia", "xkh", "xpe", "xrq", "xsj", "xsl", "ybd", "ydd", "yen",
"yid", "yiy", "yma", "ymt", "yor", "yos", "yuu", "zai", "zha", "zho",
"zir", "zsm", "zul", "zyb",
static const char languages[408][4] = {
"aam", "aar", "abk", "adp", "afr", "agp", "ais", "ajt", "aju", "aka",
"alb", "als", "amh", "ara", "arb", "arg", "arm", "asd", "asm", "aue",
"ava", "ave", "aym", "ayr", "ayx", "aze", "azj", "bak", "bam", "baq",
"baz", "bcc", "bcl", "bel", "ben", "bgm", "bhk", "bic", "bih", "bis",
"bjd", "bjq", "bkb", "blg", "bod", "bos", "bre", "btb", "bul", "bur",
"bxk", "bxr", "cat", "ccq", "ces", "cha", "che", "chi", "chu", "chv",
"cjr", "cka", "cld", "cmk", "cmn", "cor", "cos", "coy", "cqu", "cre",
"cwd", "cym", "cze", "daf", "dan", "dap", "deu", "dgo", "dhd", "dik",
"diq", "dit", "div", "djl", "dkl", "drh", "drr", "dud", "duj", "dut",
"dwl", "dzo", "ekk", "ell", "elp", "emk", "eng", "epo", "esk", "est",
"eus", "ewe", "fao", "fas", "fat", "fij", "fin", "fra", "fre", "fry",
"fuc", "ful", "gav", "gaz", "gbc", "gbo", "geo", "ger", "gfx", "ggn",
"ggo", "ggr", "gio", "gla", "gle", "glg", "gli", "glv", "gno", "gre",
"grn", "gti", "gug", "guj", "guv", "gya", "hat", "hau", "hdn", "hea",
"heb", "her", "him", "hin", "hmo", "hrr", "hrv", "hun", "hye", "ibi",
"ibo", "ice", "ido", "iii", "ike", "iku", "ile", "ill", "ilw", "ina",
"ind", "ipk", "isl", "ita", "izi", "jar", "jav", "jeg", "jpn", "kal",
"kan", "kas", "kat", "kau", "kaz", "kdv", "kgc", "kgd", "kgh", "khk",
"khm", "kik", "kin", "kir", "kmr", "knc", "kng", "knn", "koj", "kom",
"kon", "kor", "kpp", "kpv", "krm", "ktr", "kua", "kur", "kvs", "kwq",
"kxe", "kxl", "kzh", "kzj", "kzt", "lak", "lao", "lat", "lav", "lbk",
"leg", "lii", "lim", "lin", "lit", "llo", "lmm", "ltz", "lub", "lug",
"lvs", "mac", "mah", "mal", "mao", "mar", "may", "meg", "mgx", "mhr",
"mkd", "mlg", "mlt", "mnk", "mnt", "mof", "mol", "mon", "mri", "msa",
"mst", "mup", "mwd", "mwj", "mya", "myd", "myt", "nad", "nau", "nav",
"nbf", "nbl", "nbx", "ncp", "nde", "ndo", "nep", "nld", "nln", "nlr",
"nno", "nns", "nnx", "nob", "noo", "nor", "npi", "nts", "nxu", "nya",
"oci", "ojg", "oji", "ori", "orm", "ory", "oss", "oun", "pan", "pat",
"pbu", "pcr", "per", "pes", "pli", "plt", "pmc", "pmu", "pnb", "pol",
"por", "ppa", "ppr", "pry", "pus", "puz", "que", "quz", "rmr", "rmy",
"roh", "ron", "rum", "run", "rus", "sag", "san", "sap", "sca", "scc",
"scr", "sgl", "sin", "skk", "slk", "slo", "slv", "smd", "sme", "smo",
"sna", "snb", "snd", "som", "sot", "spa", "spy", "sqi", "src", "srd",
"srp", "ssw", "sul", "sum", "sun", "swa", "swe", "swh", "tah", "tam",
"tat", "tdu", "tel", "tgg", "tgk", "tgl", "tha", "thc", "thw", "thx",
"tib", "tid", "tie", "tir", "tkk", "tlw", "tmp", "tne", "ton", "tsf",
"tsn", "tso", "ttq", "tuk", "tur", "twi", "uig", "ukr", "umu", "unp",
"uok", "urd", "uzb", "uzn", "ven", "vie", "vol", "wel", "wgw", "wit",
"wiw", "wln", "wol", "xba", "xho", "xia", "xkh", "xpe", "xrq", "xsj",
"xsl", "ybd", "ydd", "yen", "yid", "yiy", "yma", "ymt", "yor", "yos",
"yuu", "zai", "zha", "zho", "zir", "zsm", "zul", "zyb",
};
static const char* aliases[404] = {
"aas", "aa", "ab", "dz", "af", "apf", "ami", "jrb", "ak", "sq",
"sq", "am", "ar", "ar", "an", "hy", "snz", "as", "ktz", "av",
"ae", "ay", "ay", "nun", "az", "az", "ba", "bm", "eu", "nvo",
"bal", "bik", "be", "bn", "bcg", "fbl", "bir", "bho", "bi", "drl",
"bzc", "ebk", "iba", "bo", "bs", "br", "beb", "bg", "my", "luy",
"bua", "ca", "rki", "cs", "ch", "ce", "zh", "cu", "cv", "mom",
"cmr", "syr", "xch", "zh", "kw", "co", "pij", "quh", "cr", "cr",
"cy", "cs", "dnj", "da", "njz", "de", "doi", "mwr", "din", "zza",
"dif", "dv", "dze", "aqd", "mn", "kzk", "uth", "dwu", "nl", "dbt",
"dz", "et", "el", "amq", "man", "en", "eo", "ik", "et", "eu",
"ee", "fo", "fa", "ak", "fj", "fi", "fr", "fr", "fy", "ff",
"ff", "dev", "om", "wny", "grb", "ka", "de", "vaj", "gvr", "esg",
"gtu", "aou", "gd", "ga", "gl", "kzk", "gv", "gon", "el", "gn",
"nyc", "gn", "gu", "duz", "gba", "ht", "ha", "hai", "hmn", "he",
"hz", "srx", "hi", "ho", "jal", "hr", "hu", "hy", "opa", "ig",
"is", "io", "ii", "iu", "iu", "ie", "ilm", "gal", "ia", "id",
"ik", "is", "it", "eza", "jgk", "jv", "oyb", "ja", "kl", "kn",
"ks", "ka", "kr", "kk", "zkd", "tdf", "ncq", "kml", "mn", "km",
"ki", "rw", "ky", "ku", "kr", "kg", "kok", "kwv", "kv", "kg",
"ko", "jkm", "kv", "bmf", "dtp", "kj", "ku", "gdj", "yam", "tvd",
"kru", "dgl", "dtp", "dtp", "lo", "la", "lv", "bnc", "enl", "raq",
"li", "ln", "lt", "ngt", "rmx", "lb", "lu", "lg", "lv", "mk",
"mh", "ml", "mi", "mr", "ms", "cir", "jbk", "chm", "mk", "mg",
"mt", "man", "wnn", "xnt", "ro", "mn", "mi", "ms", "mry", "raj",
"dmw", "vaj", "my", "aog", "mry", "xny", "na", "nv", "nru", "nr",
"ekc", "kdz", "nd", "ng", "ne", "nl", "azd", "nrk", "nn", "nbr",
"ngv", "nb", "dtd", "no", "ne", "pij", "bpp", "ny", "oc", "oj",
"oj", "or", "om", "or", "os", "vaj", "pa", "kxr", "ps", "adx",
"fa", "fa", "pi", "mg", "huw", "phr", "lah", "pl", "pt", "bfy",
"lcq", "prt", "ps", "pub", "qu", "qu", "emx", "rom", "rm", "ro",
"ro", "rn", "ru", "sg", "sa", "aqt", "hle", "sr", "hr", "isk",
"si", "oyb", "sk", "sk", "sl", "se", "sm", "sn", "sd", "so",
"st", "es", "kln", "sq", "sc", "sc", "sr", "ss", "sgd", "ulw",
"su", "sw", "sv", "sw", "ty", "ta", "tt", "dtp", "te", "bjp",
"tg", "fil", "th", "tpo", "ola", "oyb", "bo", "itd", "ras", "ti",
"twm", "weo", "tyj", "kak", "to", "taj", "tn", "ts", "tmh", "tk",
"tr", "ak", "ug", "uk", "del", "wro", "ema", "ur", "uz", "uz",
"ve", "vi", "vo", "cy", "wgb", "nol", "nwo", "wa", "wo", "cax",
"xh", "acn", "waw", "kpe", "dmw", "suj", "den", "rki", "yi", "ynq",
"yi", "yrm", "lrr", "mtm", "yo", "zom", "yug", "zap", "za", "zh",
"scv", "ms", "zu", "za",
static const char* aliases[408] = {
"aas", "aa", "ab", "dz", "af", "apf", "ami", "aeb", "jrb", "ak",
"sq", "sq", "am", "ar", "ar", "an", "hy", "snz", "as", "ktz",
"av", "ae", "ay", "ay", "nun", "az", "az", "ba", "bm", "eu",
"nvo", "bal", "bik", "be", "bn", "bcg", "fbl", "bir", "bho", "bi",
"drl", "bzc", "ebk", "iba", "bo", "bs", "br", "beb", "bg", "my",
"luy", "bua", "ca", "rki", "cs", "ch", "ce", "zh", "cu", "cv",
"mom", "cmr", "syr", "xch", "zh", "kw", "co", "pij", "quh", "cr",
"cr", "cy", "cs", "dnj", "da", "njz", "de", "doi", "mwr", "din",
"zza", "dif", "dv", "dze", "aqd", "mn", "kzk", "uth", "dwu", "nl",
"dbt", "dz", "et", "el", "amq", "man", "en", "eo", "ik", "et",
"eu", "ee", "fo", "fa", "ak", "fj", "fi", "fr", "fr", "fy",
"ff", "ff", "dev", "om", "wny", "grb", "ka", "de", "vaj", "gvr",
"esg", "gtu", "aou", "gd", "ga", "gl", "kzk", "gv", "gon", "el",
"gn", "nyc", "gn", "gu", "duz", "gba", "ht", "ha", "hai", "hmn",
"he", "hz", "srx", "hi", "ho", "jal", "hr", "hu", "hy", "opa",
"ig", "is", "io", "ii", "iu", "iu", "ie", "ilm", "gal", "ia",
"id", "ik", "is", "it", "eza", "jgk", "jv", "oyb", "ja", "kl",
"kn", "ks", "ka", "kr", "kk", "zkd", "tdf", "ncq", "kml", "mn",
"km", "ki", "rw", "ky", "ku", "kr", "kg", "kok", "kwv", "kv",
"kg", "ko", "jkm", "kv", "bmf", "dtp", "kj", "ku", "gdj", "yam",
"tvd", "kru", "dgl", "dtp", "dtp", "ksp", "lo", "la", "lv", "bnc",
"enl", "raq", "li", "ln", "lt", "ngt", "rmx", "lb", "lu", "lg",
"lv", "mk", "mh", "ml", "mi", "mr", "ms", "cir", "jbk", "chm",
"mk", "mg", "mt", "man", "wnn", "xnt", "ro", "mn", "mi", "ms",
"mry", "raj", "dmw", "vaj", "my", "aog", "mry", "xny", "na", "nv",
"nru", "nr", "ekc", "kdz", "nd", "ng", "ne", "nl", "azd", "nrk",
"nn", "nbr", "ngv", "nb", "dtd", "no", "ne", "pij", "bpp", "ny",
"oc", "oj", "oj", "or", "om", "or", "os", "vaj", "pa", "kxr",
"ps", "adx", "fa", "fa", "pi", "mg", "huw", "phr", "lah", "pl",
"pt", "bfy", "lcq", "prt", "ps", "pub", "qu", "qu", "emx", "rom",
"rm", "ro", "ro", "rn", "ru", "sg", "sa", "aqt", "hle", "sr",
"hr", "isk", "si", "oyb", "sk", "sk", "sl", "kmb", "se", "sm",
"sn", "iba", "sd", "so", "st", "es", "kln", "sq", "sc", "sc",
"sr", "ss", "sgd", "ulw", "su", "sw", "sv", "sw", "ty", "ta",
"tt", "dtp", "te", "bjp", "tg", "fil", "th", "tpo", "ola", "oyb",
"bo", "itd", "ras", "ti", "twm", "weo", "tyj", "kak", "to", "taj",
"tn", "ts", "tmh", "tk", "tr", "ak", "ug", "uk", "del", "wro",
"ema", "ur", "uz", "uz", "ve", "vi", "vo", "cy", "wgb", "nol",
"nwo", "wa", "wo", "cax", "xh", "acn", "waw", "kpe", "dmw", "suj",
"den", "rki", "yi", "ynq", "yi", "yrm", "lrr", "mtm", "yo", "zom",
"yug", "zap", "za", "zh", "scv", "ms", "zu", "za",
};
if (const char* replacement = SearchReplacement(languages, aliases, language)) {
@ -219,8 +219,8 @@ bool mozilla::intl::Locale::LanguageMapping(LanguageSubtag& language) {
}
// Language subtags with complex mappings.
// Derived from CLDR Supplemental Data, version 41.
// https://unicode.org/Public/cldr/41/core.zip
// Derived from CLDR Supplemental Data, version 42.
// https://unicode.org/Public/cldr/42/core.zip
bool mozilla::intl::Locale::ComplexLanguageMapping(const LanguageSubtag& language) {
MOZ_ASSERT(IsStructurallyValidLanguageTag(language.Span()));
MOZ_ASSERT(IsCanonicallyCasedLanguageTag(language.Span()));
@ -241,8 +241,8 @@ bool mozilla::intl::Locale::ComplexLanguageMapping(const LanguageSubtag& languag
}
// Mappings from script subtags to preferred values.
// Derived from CLDR Supplemental Data, version 41.
// https://unicode.org/Public/cldr/41/core.zip
// Derived from CLDR Supplemental Data, version 42.
// https://unicode.org/Public/cldr/42/core.zip
bool mozilla::intl::Locale::ScriptMapping(ScriptSubtag& script) {
MOZ_ASSERT(IsStructurallyValidScriptTag(script.Span()));
MOZ_ASSERT(IsCanonicallyCasedScriptTag(script.Span()));
@ -257,8 +257,8 @@ bool mozilla::intl::Locale::ScriptMapping(ScriptSubtag& script) {
}
// Mappings from region subtags to preferred values.
// Derived from CLDR Supplemental Data, version 41.
// https://unicode.org/Public/cldr/41/core.zip
// Derived from CLDR Supplemental Data, version 42.
// https://unicode.org/Public/cldr/42/core.zip
bool mozilla::intl::Locale::RegionMapping(RegionSubtag& region) {
MOZ_ASSERT(IsStructurallyValidRegionTag(region.Span()));
MOZ_ASSERT(IsCanonicallyCasedRegionTag(region.Span()));
@ -357,8 +357,8 @@ bool mozilla::intl::Locale::RegionMapping(RegionSubtag& region) {
}
// Region subtags with complex mappings.
// Derived from CLDR Supplemental Data, version 41.
// https://unicode.org/Public/cldr/41/core.zip
// Derived from CLDR Supplemental Data, version 42.
// https://unicode.org/Public/cldr/42/core.zip
bool mozilla::intl::Locale::ComplexRegionMapping(const RegionSubtag& region) {
MOZ_ASSERT(IsStructurallyValidRegionTag(region.Span()));
MOZ_ASSERT(IsCanonicallyCasedRegionTag(region.Span()));
@ -380,8 +380,8 @@ bool mozilla::intl::Locale::ComplexRegionMapping(const RegionSubtag& region) {
}
// Language subtags with complex mappings.
// Derived from CLDR Supplemental Data, version 41.
// https://unicode.org/Public/cldr/41/core.zip
// Derived from CLDR Supplemental Data, version 42.
// https://unicode.org/Public/cldr/42/core.zip
void mozilla::intl::Locale::PerformComplexLanguageMappings() {
MOZ_ASSERT(IsStructurallyValidLanguageTag(Language().Span()));
MOZ_ASSERT(IsCanonicallyCasedLanguageTag(Language().Span()));
@ -416,8 +416,8 @@ void mozilla::intl::Locale::PerformComplexLanguageMappings() {
}
// Region subtags with complex mappings.
// Derived from CLDR Supplemental Data, version 41.
// https://unicode.org/Public/cldr/41/core.zip
// Derived from CLDR Supplemental Data, version 42.
// https://unicode.org/Public/cldr/42/core.zip
void mozilla::intl::Locale::PerformComplexRegionMappings() {
MOZ_ASSERT(IsStructurallyValidLanguageTag(Language().Span()));
MOZ_ASSERT(IsCanonicallyCasedLanguageTag(Language().Span()));
@ -643,8 +643,8 @@ static bool IsLessThan(const T& a, const U& b) {
}
// Mappings from variant subtags to preferred values.
// Derived from CLDR Supplemental Data, version 41.
// https://unicode.org/Public/cldr/41/core.zip
// Derived from CLDR Supplemental Data, version 42.
// https://unicode.org/Public/cldr/42/core.zip
bool mozilla::intl::Locale::PerformVariantMappings() {
// The variant subtags need to be sorted for binary search.
MOZ_ASSERT(std::is_sorted(mVariants.begin(), mVariants.end(),
@ -707,8 +707,8 @@ bool mozilla::intl::Locale::PerformVariantMappings() {
}
// Canonicalize legacy locale identifiers.
// Derived from CLDR Supplemental Data, version 41.
// https://unicode.org/Public/cldr/41/core.zip
// Derived from CLDR Supplemental Data, version 42.
// https://unicode.org/Public/cldr/42/core.zip
bool mozilla::intl::Locale::UpdateLegacyMappings() {
// We're mapping legacy tags to non-legacy form here.
// Other tags remain unchanged.
@ -865,8 +865,8 @@ bool mozilla::intl::Locale::UpdateLegacyMappings() {
}
// Mappings from legacy sign languages.
// Derived from CLDR Supplemental Data, version 41.
// https://unicode.org/Public/cldr/41/core.zip
// Derived from CLDR Supplemental Data, version 42.
// https://unicode.org/Public/cldr/42/core.zip
bool mozilla::intl::Locale::SignLanguageMapping(LanguageSubtag& language,
const RegionSubtag& region) {
MOZ_ASSERT(language.EqualTo("sgn"));

View file

@ -9,12 +9,12 @@
*/
/*
* Created on Thu Dec 2 15:20:26 2021 from UCD data files with version info:
* Created on Tue Oct 25 06:53:25 2022 from UCD data files with version info:
*
# Unicode Character Database
# Date: 2021-09-10, 17:22:00 GMT [KW]
# © 2021 Unicode®, Inc.
# Date: 2022-09-02
# © 2022 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see https://www.unicode.org/terms_of_use.html
#
@ -24,17 +24,17 @@
# UAX #44, "Unicode Character Database"
# UTS #51, "Unicode Emoji"
#
# The UAXes and UTS #51 can be accessed at https://www.unicode.org/versions/Unicode14.0.0/
# The UAXes and UTS #51 can be accessed at https://www.unicode.org/versions/Unicode15.0.0/
This directory contains the final data files
for the Unicode Character Database, for Version 14.0.0 of the Unicode Standard.
for the Unicode Character Database, for Version 15.0.0 of the Unicode Standard.
# IdentifierStatus.txt
# Date: 2021-08-12, 01:13:34 GMT
# Date: 2022-08-26, 16:49:09 GMT
#
# Unihan_Variants.txt
# Date: 2021-08-06 16:32:36 GMT [JHJ]
# Date: 2022-08-01 16:36:07 GMT [JHJ]
# VerticalOrientation-17.txt
# Date: 2016-10-20, 07:00:00 GMT [EM, KI, LI]
@ -246,8 +246,10 @@ enum class Script : int16_t {
TANGSA = 195,
TOTO = 196,
VITHKUQI = 197,
KAWI = 198,
NAG_MUNDARI = 199,
NUM_SCRIPT_CODES = 198,
NUM_SCRIPT_CODES = 200,
INVALID = -1
};

View file

@ -1,22 +1,19 @@
diff --git a/intl/icu/source/data/locales/dsb.txt b/intl/icu/source/data/locales/dsb.txt
--- a/intl/icu/source/data/locales/dsb.txt
+++ b/intl/icu/source/data/locales/dsb.txt
@@ -532,25 +532,29 @@ dsb{
few{"'tyźeń' W MMMM"}
one{"'tyźeń' W MMMM"}
other{"'tyźeń' W MMMM"}
two{"'tyźeń' W MMMM"}
@@ -547,23 +547,27 @@ dsb{
other{"W. 'tyźeń' MMMM"}
two{"W. 'tyźeń' MMMM"}
}
- MMMMd{"d MMMM"}
+ MMMMd{"d. MMMM"}
MMMMd{"d. MMMM"}
MMMd{"d. MMM"}
+ MMd{"d. MM"}
+ MMdd{"dd. MM"}
Md{"d.M."}
d{"d"}
h{"h a"}
hm{"h:mm a"}
hms{"h:mm:ss a"}
d{"d."}
h{"ha"}
hm{"h:mma"}
hms{"h:mm:ssa"}
ms{"mm:ss"}
y{"y"}
yM{"M.y"}
@ -31,26 +28,23 @@ diff --git a/intl/icu/source/data/locales/dsb.txt b/intl/icu/source/data/locales
yQQQ{"QQQ y"}
yQQQQ{"QQQQ y"}
yw{
few{"'tyźeń' w 'lěta' Y"}
few{"w. 'tyźeń' 'lěta' Y"}
diff --git a/intl/icu/source/data/locales/hsb.txt b/intl/icu/source/data/locales/hsb.txt
--- a/intl/icu/source/data/locales/hsb.txt
+++ b/intl/icu/source/data/locales/hsb.txt
@@ -531,25 +531,29 @@ hsb{
few{"'tydźeń' W MMMM"}
one{"'tydźeń' W MMMM"}
other{"'tydźeń' W MMMM"}
two{"'tydźeń' W MMMM"}
@@ -546,23 +546,27 @@ hsb{
other{"W. 'tydźeń' MMMM"}
two{"W. 'tydźeń' MMMM"}
}
- MMMMd{"d MMMM"}
+ MMMMd{"d. MMMM"}
MMMMd{"d. MMMM"}
MMMd{"d. MMM"}
+ MMd{"d. MM"}
+ MMdd{"dd. MM"}
Md{"d.M."}
d{"d"}
h{"h a"}
hm{"h:mm a"}
hms{"h:mm:ss a"}
d{"d."}
h{"ha"}
hm{"h:mma"}
hms{"h:mm:ssa"}
ms{"mm:ss"}
y{"y"}
yM{"M.y"}
@ -65,4 +59,4 @@ diff --git a/intl/icu/source/data/locales/hsb.txt b/intl/icu/source/data/locales
yQQQ{"QQQ y"}
yQQQQ{"QQQQ y"}
yw{
few{"'tydźeń' w 'lěta' Y"}
few{"w. 'tydźeń' 'lěta' Y"}

View file

@ -282,15 +282,17 @@ index 8d76b3f..c1a58db 100644
diff --git a/intl/icu/source/common/unifiedcache.cpp b/intl/icu/source/common/unifiedcache.cpp
index 493ab79..a13eed8 100644
--- a/intl/icu/source/common/unifiedcache.cpp
+++ b/intl/icu/source/common/unifiedcache.cpp
@@ -13,15 +13,19 @@
@@ -11,19 +11,23 @@
*/
#include "unifiedcache.h"
#include <algorithm> // For std::max()
-#include <mutex>
+#ifndef __wasi__
#include <mutex>
+ #include <mutex>
+#endif
#include "uassert.h"
@ -302,10 +304,14 @@ index 493ab79..a13eed8 100644
static std::mutex *gCacheMutex = nullptr;
static std::condition_variable *gInProgressValueAddedCond;
+#endif
static icu::UInitOnce gCacheInitOnce = U_INITONCE_INITIALIZER;
static icu::UInitOnce gCacheInitOnce {};
static const int32_t MAX_EVICT_ITERATIONS = 10;
@@ -34,10 +38,12 @@ static UBool U_CALLCONV unifiedcache_cleanup() {
static const int32_t DEFAULT_MAX_UNUSED = 1000;
static const int32_t DEFAULT_PERCENTAGE_OF_IN_USE = 100;
@@ -32,14 +36,16 @@ static const int32_t DEFAULT_PERCENTAGE_OF_IN_USE = 100;
U_CDECL_BEGIN
static UBool U_CALLCONV unifiedcache_cleanup() {
gCacheInitOnce.reset();
delete gCache;
gCache = nullptr;
@ -315,10 +321,14 @@ index 493ab79..a13eed8 100644
gInProgressValueAddedCond->~condition_variable();
gInProgressValueAddedCond = nullptr;
+#endif
return TRUE;
return true;
}
U_CDECL_END
@@ -72,8 +78,10 @@ static void U_CALLCONV cacheInit(UErrorCode &status) {
@@ -70,12 +76,14 @@ CacheKeyBase::~CacheKeyBase() {
static void U_CALLCONV cacheInit(UErrorCode &status) {
U_ASSERT(gCache == NULL);
ucln_common_registerCleanup(
UCLN_COMMON_UNIFIED_CACHE, unifiedcache_cleanup);
@ -329,7 +339,11 @@ index 493ab79..a13eed8 100644
gCache = new UnifiedCache(status);
if (gCache == NULL) {
status = U_MEMORY_ALLOCATION_ERROR;
@@ -135,28 +143,38 @@ void UnifiedCache::setEvictionPolicy(
}
if (U_FAILURE(status)) {
@@ -133,41 +141,53 @@ void UnifiedCache::setEvictionPolicy(
}
if (count < 0 || percentageOfInUseItems < 0) {
status = U_ILLEGAL_ARGUMENT_ERROR;
return;
}
@ -368,7 +382,8 @@ index 493ab79..a13eed8 100644
// Use a loop in case cache items that are flushed held hard references to
// other cache items making those additional cache items eligible for
@@ -165,7 +183,9 @@ void UnifiedCache::flush() const {
// flushing.
while (_flush(false));
}
void UnifiedCache::handleUnreferencedObject() const {
@ -378,7 +393,11 @@ index 493ab79..a13eed8 100644
--fNumValuesInUse;
_runEvictionSlice();
}
@@ -184,7 +204,9 @@ void UnifiedCache::dump() {
#ifdef UNIFIED_CACHE_DEBUG
@@ -182,11 +202,13 @@ void UnifiedCache::dump() {
}
cache->dumpContents();
}
void UnifiedCache::dumpContents() const {
@ -388,17 +407,25 @@ index 493ab79..a13eed8 100644
_dumpContents();
}
@@ -224,7 +246,9 @@ UnifiedCache::~UnifiedCache() {
// Dumps content of cache.
// On entry, gCacheMutex must be held.
@@ -222,11 +244,13 @@ UnifiedCache::~UnifiedCache() {
flush();
{
// Now all that should be left in the cache are entries that refer to
// each other and entries with hard references from outside the cache.
// Nothing we can do about these so proceed to wipe out the cache.
+#ifndef __wasi__
std::lock_guard<std::mutex> lock(*gCacheMutex);
+#endif
_flush(TRUE);
_flush(true);
}
uhash_close(fHashtable);
@@ -325,7 +349,9 @@ void UnifiedCache::_putIfAbsentAndGet(
fHashtable = nullptr;
delete fNoValue;
@@ -323,11 +347,13 @@ void UnifiedCache::_putNew(
void UnifiedCache::_putIfAbsentAndGet(
const CacheKeyBase &key,
const SharedObject *&value,
UErrorCode &status) const {
@ -408,7 +435,11 @@ index 493ab79..a13eed8 100644
const UHashElement *element = uhash_find(fHashtable, &key);
if (element != NULL && !_inProgress(element)) {
_fetch(element, value, status);
@@ -350,14 +376,18 @@ UBool UnifiedCache::_poll(
return;
}
@@ -348,18 +374,22 @@ UBool UnifiedCache::_poll(
const CacheKeyBase &key,
const SharedObject *&value,
UErrorCode &status) const {
U_ASSERT(value == NULL);
U_ASSERT(status == U_ZERO_ERROR);
@ -427,7 +458,11 @@ index 493ab79..a13eed8 100644
element = uhash_find(fHashtable, &key);
}
@@ -428,9 +458,11 @@ void UnifiedCache::_put(
// If the hash table contains an entry for the key,
// fetch out the contents and return them.
@@ -426,13 +456,15 @@ void UnifiedCache::_put(
UHashElement *ptr = const_cast<UHashElement *>(element);
ptr->value.pointer = (void *) value;
U_ASSERT(oldValue == fNoValue);
removeSoftRef(oldValue);
@ -439,6 +474,8 @@ index 493ab79..a13eed8 100644
}
void UnifiedCache::_fetch(
const UHashElement *element,
const SharedObject *&value,
diff --git a/intl/icu/source/i18n/decContext.h b/intl/icu/source/i18n/decContext.h
index 59ab65e..20f3526 100644
--- a/intl/icu/source/i18n/decContext.h

View file

@ -1,32 +0,0 @@
# https://github.com/unicode-org/icu/pull/2067
# https://github.com/unicode-org/icu/pull/2067.diff
#
# ICU bug: https://unicode-org.atlassian.net/browse/ICU-21994
diff --git a/intl/icu/source/common/locid.cpp b/intl/icu/source/common/locid.cpp
index 73bb8d8aec1..96d3851804d 100644
--- a/intl/icu/source/common/locid.cpp
+++ b/intl/icu/source/common/locid.cpp
@@ -716,20 +716,19 @@ AliasDataBuilder::readAlias(
status = U_MEMORY_ALLOCATION_ERROR;
return;
}
- int i = 0;
- while (ures_hasNext(alias)) {
+ for (int i = 0; U_SUCCESS(status) && ures_hasNext(alias); i++) {
LocalUResourceBundlePointer res(
ures_getNextResource(alias, nullptr, &status));
const char* aliasFrom = ures_getKey(res.getAlias());
UnicodeString aliasTo =
ures_getUnicodeStringByKey(res.getAlias(), "replacement", &status);
+ if (U_FAILURE(status)) return;
checkType(aliasFrom);
checkReplacement(aliasTo);
rawTypes[i] = aliasFrom;
rawIndexes[i] = strings->add(aliasTo, status);
- i++;
}
}

View file

@ -0,0 +1,19 @@
# https://github.com/unicode-org/icu/pull/2248
# https://github.com/unicode-org/icu/pull/2248.diff
#
# ICU bug: https://unicode-org.atlassian.net/browse/ICU-22198
diff --git a/intl/icu/source/common/uresbund.cpp b/intl/icu/source/common/uresbund.cpp
index 17c0177a05c..81fb90e1384 100644
--- a/intl/icu/source/common/uresbund.cpp
+++ b/intl/icu/source/common/uresbund.cpp
@@ -202,7 +202,8 @@ typedef enum UResOpenType UResOpenType;
*/
static bool getParentLocaleID(char *name, const char *origName, UResOpenType openType) {
// early out if the locale ID has a variant code or ends with _
- if (name[uprv_strlen(name) - 1] == '_' || hasVariant(name)) {
+ size_t nameLen = uprv_strlen(name);
+ if (!nameLen || name[nameLen - 1] == '_' || hasVariant(name)) {
return chopLocale(name);
}

View file

@ -0,0 +1,351 @@
# https://github.com/unicode-org/icu/pull/2255
# https://github.com/unicode-org/icu/pull/2255.diff
#
# ICU bug: https://unicode-org.atlassian.net/browse/ICU-22206
diff --git a/intl/icu/source/common/rbbiscan.cpp b/intl/icu/source/common/rbbiscan.cpp
index 8232bd94e47..87d31f8af40 100644
--- a/intl/icu/source/common/rbbiscan.cpp
+++ b/intl/icu/source/common/rbbiscan.cpp
@@ -918,7 +918,7 @@ void RBBIRuleScanner::nextChar(RBBIRuleChar &c) {
// Toggle quoting mode.
// Return either '(' or ')', because quotes cause a grouping of the quoted text.
fQuoteMode = !fQuoteMode;
- if (fQuoteMode == true) {
+ if (fQuoteMode) {
c.fChar = chLParen;
} else {
c.fChar = chRParen;
diff --git a/intl/icu/source/common/ucnvisci.cpp b/intl/icu/source/common/ucnvisci.cpp
index 4d747e1ff84..839f7ff9c62 100644
--- a/intl/icu/source/common/ucnvisci.cpp
+++ b/intl/icu/source/common/ucnvisci.cpp
@@ -1472,7 +1472,7 @@ UConverter_toUnicode_ISCII_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCo
if (targetUniChar != missingCharMarker) {
/* now save the targetUniChar for delayed write */
*toUnicodeStatus = (UChar) targetUniChar;
- if (data->resetToDefaultToUnicode==true) {
+ if (data->resetToDefaultToUnicode) {
data->currentDeltaToUnicode = data->defDeltaToUnicode;
data->currentMaskToUnicode = data->defMaskToUnicode;
data->resetToDefaultToUnicode=false;
diff --git a/intl/icu/source/common/udata.cpp b/intl/icu/source/common/udata.cpp
index 2bc74c97898..c5d0a9feb7b 100644
--- a/intl/icu/source/common/udata.cpp
+++ b/intl/icu/source/common/udata.cpp
@@ -568,7 +568,7 @@ const char *UDataPathIterator::next(UErrorCode *pErrorCode)
/* check for .dat files */
pathBasename = findBasename(pathBuffer.data());
- if(checkLastFour == true &&
+ if(checkLastFour &&
(pathLen>=4) &&
uprv_strncmp(pathBuffer.data() +(pathLen-4), suffix.data(), 4)==0 && /* suffix matches */
uprv_strncmp(findBasename(pathBuffer.data()), basename, basenameLen)==0 && /* base matches */
diff --git a/intl/icu/source/common/uidna.cpp b/intl/icu/source/common/uidna.cpp
index 1cbdeec3272..7135a166f21 100644
--- a/intl/icu/source/common/uidna.cpp
+++ b/intl/icu/source/common/uidna.cpp
@@ -287,7 +287,7 @@ _internal_toASCII(const UChar* src, int32_t srcLength,
failPos = j;
}
}
- if(useSTD3ASCIIRules == true){
+ if(useSTD3ASCIIRules){
// verify 3a and 3b
// 3(a) Verify the absence of non-LDH ASCII code points; that is, the
// absence of 0..2C, 2E..2F, 3A..40, 5B..60, and 7B..7F.
@@ -731,7 +731,7 @@ uidna_IDNToASCII( const UChar *src, int32_t srcLength,
remainingDestCapacity = 0;
}
- if(done == true){
+ if(done){
break;
}
@@ -829,7 +829,7 @@ uidna_IDNToUnicode( const UChar* src, int32_t srcLength,
remainingDestCapacity = 0;
}
- if(done == true){
+ if(done){
break;
}
diff --git a/intl/icu/source/common/uresbund.cpp b/intl/icu/source/common/uresbund.cpp
index 17c0177a05c..c065387bdae 100644
--- a/intl/icu/source/common/uresbund.cpp
+++ b/intl/icu/source/common/uresbund.cpp
@@ -2448,7 +2448,7 @@ U_CAPI UResourceBundle* U_EXPORT2 ures_getByKey(const UResourceBundle *resB, con
res = res_getTableItemByKey(&resB->getResData(), resB->fRes, &t, &key);
if(res == RES_BOGUS) {
key = inKey;
- if(resB->fHasFallback == true) {
+ if(resB->fHasFallback) {
dataEntry = getFallbackData(resB, &key, &res, status);
if(U_SUCCESS(*status)) {
/* check if resB->fResPath gives the right name here */
@@ -2503,7 +2503,7 @@ U_CAPI const UChar* U_EXPORT2 ures_getStringByKey(const UResourceBundle *resB, c
if(res == RES_BOGUS) {
key = inKey;
- if(resB->fHasFallback == true) {
+ if(resB->fHasFallback) {
dataEntry = getFallbackData(resB, &key, &res, status);
if(U_SUCCESS(*status)) {
switch (RES_GET_TYPE(res)) {
diff --git a/intl/icu/source/common/usprep.cpp b/intl/icu/source/common/usprep.cpp
index 50d16081d1d..8175dc7fa82 100644
--- a/intl/icu/source/common/usprep.cpp
+++ b/intl/icu/source/common/usprep.cpp
@@ -160,7 +160,7 @@ usprep_internal_flushCache(UBool noRefCount){
key = (UStringPrepKey *) e->key.pointer;
if ((noRefCount== false && profile->refCount == 0) ||
- noRefCount== true) {
+ noRefCount) {
deletedNum++;
uhash_removeElement(SHARED_DATA_HASHTABLE, e);
@@ -746,16 +746,16 @@ usprep_prepare( const UStringPrepProfile* profile,
}
}
}
- if(profile->checkBiDi == true){
+ if(profile->checkBiDi){
// satisfy 2
- if( leftToRight == true && rightToLeft == true){
+ if( leftToRight && rightToLeft){
*status = U_STRINGPREP_CHECK_BIDI_ERROR;
uprv_syntaxError(b2,(rtlPos>ltrPos) ? rtlPos : ltrPos, b2Len, parseError);
return 0;
}
//satisfy 3
- if( rightToLeft == true &&
+ if( rightToLeft &&
!((firstCharDir == U_RIGHT_TO_LEFT || firstCharDir == U_RIGHT_TO_LEFT_ARABIC) &&
(direction == U_RIGHT_TO_LEFT || direction == U_RIGHT_TO_LEFT_ARABIC))
){
diff --git a/intl/icu/source/common/utext.cpp b/intl/icu/source/common/utext.cpp
index 548e6a60f31..89e3d669f6e 100644
--- a/intl/icu/source/common/utext.cpp
+++ b/intl/icu/source/common/utext.cpp
@@ -223,7 +223,7 @@ utext_current32(UText *ut) {
trail = ut->chunkContents[ut->chunkOffset];
}
UBool r = ut->pFuncs->access(ut, nativePosition, false); // reverse iteration flag loads preceding chunk
- U_ASSERT(r==true);
+ U_ASSERT(r);
ut->chunkOffset = originalOffset;
if(!r) {
return U_SENTINEL;
diff --git a/intl/icu/source/i18n/calendar.cpp b/intl/icu/source/i18n/calendar.cpp
index f5a40e48395..5431d87bdd2 100644
--- a/intl/icu/source/i18n/calendar.cpp
+++ b/intl/icu/source/i18n/calendar.cpp
@@ -3510,7 +3510,7 @@ int32_t Calendar::handleGetExtendedYearFromWeekFields(int32_t yearWoy, int32_t w
switch(bestField) {
case UCAL_WEEK_OF_YEAR:
if(woy == 1) {
- if(jan1InPrevYear == true) {
+ if(jan1InPrevYear) {
// the first week of January is in the previous year
// therefore WOY1 is always solidly within yearWoy
return yearWoy;
diff --git a/intl/icu/source/i18n/dcfmtsym.cpp b/intl/icu/source/i18n/dcfmtsym.cpp
index 5d06c189fbe..fa5920aaa50 100644
--- a/intl/icu/source/i18n/dcfmtsym.cpp
+++ b/intl/icu/source/i18n/dcfmtsym.cpp
@@ -329,11 +329,13 @@ struct CurrencySpacingSink : public ResourceSink {
// both beforeCurrency and afterCurrency were found in CLDR.
static const char* defaults[] = { "[:letter:]", "[:digit:]", " " };
if (!hasBeforeCurrency || !hasAfterCurrency) {
- for (UBool beforeCurrency = 0; beforeCurrency <= true; beforeCurrency++) {
- for (int32_t pattern = 0; pattern < UNUM_CURRENCY_SPACING_COUNT; pattern++) {
- dfs.setPatternForCurrencySpacing((UCurrencySpacing)pattern,
- beforeCurrency, UnicodeString(defaults[pattern], -1, US_INV));
- }
+ for (int32_t pattern = 0; pattern < UNUM_CURRENCY_SPACING_COUNT; pattern++) {
+ dfs.setPatternForCurrencySpacing((UCurrencySpacing)pattern,
+ false, UnicodeString(defaults[pattern], -1, US_INV));
+ }
+ for (int32_t pattern = 0; pattern < UNUM_CURRENCY_SPACING_COUNT; pattern++) {
+ dfs.setPatternForCurrencySpacing((UCurrencySpacing)pattern,
+ true, UnicodeString(defaults[pattern], -1, US_INV));
}
}
}
diff --git a/intl/icu/source/i18n/dtitvinf.cpp b/intl/icu/source/i18n/dtitvinf.cpp
index f5fb86ce581..0a30cf14419 100644
--- a/intl/icu/source/i18n/dtitvinf.cpp
+++ b/intl/icu/source/i18n/dtitvinf.cpp
@@ -504,7 +504,7 @@ DateIntervalInfo::setIntervalPatternInternally(const UnicodeString& skeleton,
}
patternsOfOneSkeleton[index] = intervalPattern;
- if ( emptyHash == true ) {
+ if ( emptyHash ) {
fIntervalPatterns->put(skeleton, patternsOfOneSkeleton, status);
}
}
@@ -748,7 +748,7 @@ U_CALLCONV dtitvinfHashTableValueComparator(UHashTok val1, UHashTok val2) {
const UnicodeString* pattern2 = (UnicodeString*)val2.pointer;
UBool ret = true;
int8_t i;
- for ( i = 0; i < DateIntervalInfo::kMaxIntervalPatternIndex && ret == true; ++i ) {
+ for ( i = 0; i < DateIntervalInfo::kMaxIntervalPatternIndex && ret ; ++i ) {
ret = (pattern1[i] == pattern2[i]);
}
return ret;
diff --git a/intl/icu/source/i18n/gregocal.cpp b/intl/icu/source/i18n/gregocal.cpp
index 882d25b4a2a..0e00127e314 100644
--- a/intl/icu/source/i18n/gregocal.cpp
+++ b/intl/icu/source/i18n/gregocal.cpp
@@ -487,7 +487,7 @@ int32_t GregorianCalendar::handleComputeJulianDay(UCalendarDateFields bestField)
// The following check handles portions of the cutover year BEFORE the
// cutover itself happens.
//if ((fIsGregorian==true) != (jd >= fCutoverJulianDay)) { /* cutoverJulianDay)) { */
- if ((fIsGregorian==true) != (jd >= fCutoverJulianDay)) { /* cutoverJulianDay)) { */
+ if ((fIsGregorian) != (jd >= fCutoverJulianDay)) { /* cutoverJulianDay)) { */
#if defined (U_DEBUG_CAL)
fprintf(stderr, "%s:%d: jd [invert] %d\n",
__FILE__, __LINE__, jd);
diff --git a/intl/icu/source/i18n/regexcmp.cpp b/intl/icu/source/i18n/regexcmp.cpp
index 4b507002d63..adc8f700c7f 100644
--- a/intl/icu/source/i18n/regexcmp.cpp
+++ b/intl/icu/source/i18n/regexcmp.cpp
@@ -4065,7 +4065,7 @@ void RegexCompile::nextChar(RegexPatternChar &c) {
if (c.fChar == (UChar32)-1) {
break; // End of Input
}
- if (c.fChar == chPound && fEOLComments == true) {
+ if (c.fChar == chPound && fEOLComments) {
// Start of a comment. Consume the rest of it, until EOF or a new line
for (;;) {
c.fChar = nextCharLL();
diff --git a/intl/icu/source/i18n/search.cpp b/intl/icu/source/i18n/search.cpp
index 56d9b744098..d55902bfa7b 100644
--- a/intl/icu/source/i18n/search.cpp
+++ b/intl/icu/source/i18n/search.cpp
@@ -81,10 +81,9 @@ USearchAttributeValue SearchIterator::getAttribute(
{
switch (attribute) {
case USEARCH_OVERLAP :
- return (m_search_->isOverlap == true ? USEARCH_ON : USEARCH_OFF);
+ return (m_search_->isOverlap ? USEARCH_ON : USEARCH_OFF);
case USEARCH_CANONICAL_MATCH :
- return (m_search_->isCanonicalMatch == true ? USEARCH_ON :
- USEARCH_OFF);
+ return (m_search_->isCanonicalMatch ? USEARCH_ON : USEARCH_OFF);
case USEARCH_ELEMENT_COMPARISON :
{
int16_t value = m_search_->elementComparisonType;
@@ -242,7 +241,7 @@ int32_t SearchIterator::next(UErrorCode &status)
int32_t matchindex = m_search_->matchedIndex;
int32_t matchlength = m_search_->matchedLength;
m_search_->reset = false;
- if (m_search_->isForwardSearching == true) {
+ if (m_search_->isForwardSearching) {
int32_t textlength = m_search_->textLength;
if (offset == textlength || matchindex == textlength ||
(matchindex != USEARCH_DONE &&
@@ -295,7 +294,7 @@ int32_t SearchIterator::previous(UErrorCode &status)
}
int32_t matchindex = m_search_->matchedIndex;
- if (m_search_->isForwardSearching == true) {
+ if (m_search_->isForwardSearching) {
// switching direction.
// if matchedIndex == USEARCH_DONE, it means that either a
// setOffset has been called or that next ran off the text
diff --git a/intl/icu/source/i18n/usearch.cpp b/intl/icu/source/i18n/usearch.cpp
index 0fecd709e74..39f76a1b985 100644
--- a/intl/icu/source/i18n/usearch.cpp
+++ b/intl/icu/source/i18n/usearch.cpp
@@ -819,11 +819,9 @@ U_CAPI USearchAttributeValue U_EXPORT2 usearch_getAttribute(
if (strsrch) {
switch (attribute) {
case USEARCH_OVERLAP :
- return (strsrch->search->isOverlap == true ? USEARCH_ON :
- USEARCH_OFF);
+ return (strsrch->search->isOverlap ? USEARCH_ON : USEARCH_OFF);
case USEARCH_CANONICAL_MATCH :
- return (strsrch->search->isCanonicalMatch == true ? USEARCH_ON :
- USEARCH_OFF);
+ return (strsrch->search->isCanonicalMatch ? USEARCH_ON : USEARCH_OFF);
case USEARCH_ELEMENT_COMPARISON :
{
int16_t value = strsrch->search->elementComparisonType;
@@ -1249,7 +1247,7 @@ U_CAPI int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch,
}
int32_t matchedindex = search->matchedIndex;
- if (search->isForwardSearching == true) {
+ if (search->isForwardSearching) {
// switching direction.
// if matchedIndex == USEARCH_DONE, it means that either a
// setOffset has been called or that next ran off the text
diff --git a/intl/icu/source/i18n/uspoof_conf.cpp b/intl/icu/source/i18n/uspoof_conf.cpp
index 5ecc59c12a8..376ac64e3ce 100644
--- a/intl/icu/source/i18n/uspoof_conf.cpp
+++ b/intl/icu/source/i18n/uspoof_conf.cpp
@@ -407,7 +407,7 @@ void ConfusabledataBuilder::build(const char * confusables, int32_t confusablesL
//
void ConfusabledataBuilder::outputData(UErrorCode &status) {
- U_ASSERT(fSpoofImpl->fSpoofData->fDataOwned == true);
+ U_ASSERT(fSpoofImpl->fSpoofData->fDataOwned);
// The Key Table
// While copying the keys to the runtime array,
diff --git a/intl/icu/source/io/uscanf_p.cpp b/intl/icu/source/io/uscanf_p.cpp
index 9b27e2ebf8d..26a790dd9b6 100644
--- a/intl/icu/source/io/uscanf_p.cpp
+++ b/intl/icu/source/io/uscanf_p.cpp
@@ -323,7 +323,7 @@ u_scanf_skip_leading_ws(UFILE *input,
UBool isNotEOF;
/* skip all leading ws in the input */
- while( ((isNotEOF = ufile_getch(input, &c)) == true) && (c == pad || u_isWhitespace(c)) )
+ while( ((isNotEOF = ufile_getch(input, &c))==(UBool)true) && (c == pad || u_isWhitespace(c)) )
{
count++;
}
@@ -357,7 +357,7 @@ u_scanf_skip_leading_positive_sign(UFILE *input,
if (U_SUCCESS(localStatus)) {
/* skip all leading ws in the input */
- while( ((isNotEOF = ufile_getch(input, &c)) == true) && (count < symbolLen && c == plusSymbol[count]) )
+ while( ((isNotEOF = ufile_getch(input, &c))==(UBool)true) && (count < symbolLen && c == plusSymbol[count]) )
{
count++;
}
@@ -868,7 +868,7 @@ u_scanf_string_handler(UFILE *input,
return -1;
while( (info->fWidth == -1 || count < info->fWidth)
- && ((isNotEOF = ufile_getch(input, &c)) == true)
+ && ((isNotEOF = ufile_getch(input, &c))==(UBool)true)
&& (!info->fIsString || (c != info->fPadChar && !u_isWhitespace(c))))
{
@@ -959,7 +959,7 @@ u_scanf_ustring_handler(UFILE *input,
count = 0;
while( (info->fWidth == -1 || count < info->fWidth)
- && ((isNotEOF = ufile_getch(input, &c)) == true)
+ && ((isNotEOF = ufile_getch(input, &c))==(UBool)true)
&& (!info->fIsString || (c != info->fPadChar && !u_isWhitespace(c))))
{
@@ -1262,7 +1262,7 @@ u_scanf_scanset_handler(UFILE *input,
/* grab characters one at a time and make sure they are in the scanset */
while(chLeft > 0) {
- if ( ((isNotEOF = ufile_getch32(input, &c)) == true) && uset_contains(scanset, c) ) {
+ if ( ((isNotEOF = ufile_getch32(input, &c))==(UBool)true) && uset_contains(scanset, c) ) {
readCharacter = true;
if (!info->fSkipArg) {
int32_t idx = 0;

View file

@ -1,5 +1,5 @@
commit c205e7ee49a7086a28b9c275fcfdac9ca3dc815d
Author: yumaoka <y.umaoka@gmail.com>
Date: Wed Mar 30 14:47:46 2022 -0400
commit ff3514f257ea10afe7e710e9f946f68d256704b1
Author: Peter Edberg <pedberg@unicode.org>
Date: Thu Oct 13 13:44:35 2022 -0700
ICU-21971 Added a new numeric currecny code SLE/695 for Sierra Leone Leone.
ICU-21958 integrate CLDR release-42-beta5 to ICU main for 72

View file

@ -202,7 +202,8 @@
"-/fields/sun",
"-/fields/sun-narrow",
"-/fields/sun-short",
"-/measurementSystemNames"
"-/measurementSystemNames",
"-/personNames"
]
},
{

View file

@ -341,7 +341,7 @@ $(top_builddir)/config/icu-config: $(top_builddir)/Makefile $(top_srcdir)/config
chmod u+w $@
@echo "# Following from icu/icu4c/source/config/Makefile.inc" >> $@
LC_ALL=C $(SED) -f $(top_srcdir)/config/make2sh.sed < $(top_builddir)/config/Makefile.inc | grep -v '#M#' | uniq >> $@
@echo "# Following from @platform_make_fragment@" >> $@
@echo "# Following from @platform_make_fragment_name@" >> $@
LC_ALL=C $(SED) -f $(top_srcdir)/config/make2sh.sed < @platform_make_fragment@ | grep -v '#M#' | uniq >> $@
cat $(top_srcdir)/config/icu-config-bottom >> $@
chmod u-w $@
@ -375,7 +375,7 @@ icu4j-data-install icu4j-data: all tests
# For updating Windows makefiles
WINDOWS_UPDATEFILES=$(srcdir)/data/makedata.mak $(shell find $(srcdir) -name '*.vcproj' -o -name '*.vcxproj')
WINDOWS_UPDATEFILES=$(srcdir)/data/makedata.mak $(srcdir)/allinone/Build.Windows.IcuVersion.props
WINDOWS_UPDATEFILES_SED=config/windows-update.sed

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- This file is used to set the ICU Major Version number, which is used as a suffix on various file names in other Visual Studio projects. -->
<PropertyGroup>
<IcuMajorVersion>72</IcuMajorVersion>
</PropertyGroup>
</Project>

View file

@ -9,14 +9,16 @@
<BuildToolVersion>$(VisualStudioVersion)</BuildToolVersion>
<!-- Only use the MSBuildToolsVersion if we don't have the VisualStudioVersion and MSBuildToolsVersion is set to something other than Current. -->
<BuildToolVersion Condition="'$(BuildToolVersion)'=='' and '$(MSBuildToolsVersion)' != 'Current'">$(MSBuildToolsVersion)</BuildToolVersion>
<!-- Note:
<!-- Version Note:
v140 is the Visual Studio 2015 toolset. (14.0)
v141 is the Visual Studio 2017 toolset. (15.0)
v142 is the Visual Studio 2019 toolset. (16.0)
v143 is the Visual Studio 2022 toolset. (17.0)
-->
<AutoDetectedPlatformToolset Condition="'$(BuildToolVersion)'=='14.0'">v140</AutoDetectedPlatformToolset>
<AutoDetectedPlatformToolset Condition="'$(BuildToolVersion)'=='15.0'">v141</AutoDetectedPlatformToolset>
<AutoDetectedPlatformToolset Condition="'$(BuildToolVersion)'=='16.0'">v142</AutoDetectedPlatformToolset>
<AutoDetectedPlatformToolset Condition="'$(BuildToolVersion)'=='17.0'">v143</AutoDetectedPlatformToolset>
</PropertyGroup>
<PropertyGroup Label="EmptyDefaultPlatformToolset">
<DefaultPlatformToolset Condition=" '$(DefaultPlatformToolset)' == '' ">$(AutoDetectedPlatformToolset)</DefaultPlatformToolset>
@ -30,11 +32,11 @@
If not already set, use the latest installed version of the Windows 10 SDK.
The Windows 10 SDK is backwards compatible to Windows 7, as long as WINVER and _WIN32_WINNT are set before compiling.
Note:
- With VS2019, using a value of "10.0" means that it will use the latest installed version.
- With VS2019, VS2022 using a value of "10.0" means that it will use the latest installed version.
- With VS2017, we need to manually detect the latest SDK version from the registry.
- With VS2015, use the Windows 8.1 SDK.
-->
<PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'=='' and '$(PlatformToolset)'=='v142'">
<PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'=='' and ('$(PlatformToolset)'=='v142' or '$(PlatformToolset)'=='v143')">
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'=='' and ('$(PlatformToolset)'=='v141' or '$(AutodetectWin10SDK)'=='true')">

View file

@ -1,7 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- This file is used to set default configuration options for all non-UWP Visual Studio projects. -->
<!-- The following import will set the ICU Major Version number. -->
<Import Project="Build.Windows.IcuVersion.props" />
<!-- These are the default project configurations for building. -->
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">

View file

@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- The following import will set the ICU Major Version number. -->
<Import Project="Build.Windows.IcuVersion.props" />
<!-- This file is used to set common configuration options for all *_uwp projects. -->
<PropertyGroup>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>

View file

@ -37,23 +37,23 @@ Appendable::appendString(const UChar *s, int32_t length) {
UChar c;
while((c=*s++)!=0) {
if(!appendCodeUnit(c)) {
return FALSE;
return false;
}
}
} else if(length>0) {
const UChar *limit=s+length;
do {
if(!appendCodeUnit(*s++)) {
return FALSE;
return false;
}
} while(s<limit);
}
return TRUE;
return true;
}
UBool
Appendable::reserveAppendCapacity(int32_t /*appendCapacity*/) {
return TRUE;
return true;
}
UChar *

View file

@ -309,9 +309,9 @@ BMPSet::contains(UChar32 c) const {
// surrogate or supplementary code point
return containsSlow(c, list4kStarts[0xd], list4kStarts[0x11]);
} else {
// Out-of-range code points get FALSE, consistent with long-standing
// Out-of-range code points get false, consistent with long-standing
// behavior of UnicodeSet::contains(c).
return FALSE;
return false;
}
}

View file

@ -261,10 +261,10 @@ ICULanguageBreakFactory::loadDictionaryMatcherFor(UScriptCode script) {
const UChar *extStart = u_memrchr(dictfname, 0x002e, dictnlength); // last dot
if (extStart != NULL) {
int32_t len = (int32_t)(extStart - dictfname);
ext.appendInvariantChars(UnicodeString(FALSE, extStart + 1, dictnlength - len - 1), status);
ext.appendInvariantChars(UnicodeString(false, extStart + 1, dictnlength - len - 1), status);
dictnlength = len;
}
dictnbuf.appendInvariantChars(UnicodeString(FALSE, dictfname, dictnlength), status);
dictnbuf.appendInvariantChars(UnicodeString(false, dictfname, dictnlength), status);
ures_close(b);
UDataMemory *file = udata_open(U_ICUDATA_BRKITR, ext.data(), dictnbuf.data(), &status);

View file

@ -279,7 +279,7 @@ ICUBreakIteratorService::~ICUBreakIteratorService() {}
// defined in ucln_cmn.h
U_NAMESPACE_END
static icu::UInitOnce gInitOnceBrkiter = U_INITONCE_INITIALIZER;
static icu::UInitOnce gInitOnceBrkiter {};
static icu::ICULocaleService* gService = NULL;
@ -296,7 +296,7 @@ static UBool U_CALLCONV breakiterator_cleanup(void) {
}
gInitOnceBrkiter.reset();
#endif
return TRUE;
return true;
}
U_CDECL_END
U_NAMESPACE_BEGIN
@ -347,7 +347,7 @@ BreakIterator::unregister(URegistryKey key, UErrorCode& status)
}
status = U_MEMORY_ALLOCATION_ERROR;
}
return FALSE;
return false;
}
// -------------------------------------

View file

@ -20,7 +20,7 @@ U_NAMESPACE_BEGIN
UBool
ByteSinkUtil::appendChange(int32_t length, const char16_t *s16, int32_t s16Length,
ByteSink &sink, Edits *edits, UErrorCode &errorCode) {
if (U_FAILURE(errorCode)) { return FALSE; }
if (U_FAILURE(errorCode)) { return false; }
char scratch[200];
int32_t s8Length = 0;
for (int32_t i = 0; i < s16Length;) {
@ -44,7 +44,7 @@ ByteSinkUtil::appendChange(int32_t length, const char16_t *s16, int32_t s16Lengt
}
if (j > (INT32_MAX - s8Length)) {
errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
return FALSE;
return false;
}
sink.Append(buffer, j);
s8Length += j;
@ -52,17 +52,17 @@ ByteSinkUtil::appendChange(int32_t length, const char16_t *s16, int32_t s16Lengt
if (edits != nullptr) {
edits->addReplace(length, s8Length);
}
return TRUE;
return true;
}
UBool
ByteSinkUtil::appendChange(const uint8_t *s, const uint8_t *limit,
const char16_t *s16, int32_t s16Length,
ByteSink &sink, Edits *edits, UErrorCode &errorCode) {
if (U_FAILURE(errorCode)) { return FALSE; }
if (U_FAILURE(errorCode)) { return false; }
if ((limit - s) > INT32_MAX) {
errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
return FALSE;
return false;
}
return appendChange((int32_t)(limit - s), s16, s16Length, sink, edits, errorCode);
}
@ -109,16 +109,16 @@ UBool
ByteSinkUtil::appendUnchanged(const uint8_t *s, const uint8_t *limit,
ByteSink &sink, uint32_t options, Edits *edits,
UErrorCode &errorCode) {
if (U_FAILURE(errorCode)) { return FALSE; }
if (U_FAILURE(errorCode)) { return false; }
if ((limit - s) > INT32_MAX) {
errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
return FALSE;
return false;
}
int32_t length = (int32_t)(limit - s);
if (length > 0) {
appendNonEmptyUnchanged(s, length, sink, options, edits);
}
return TRUE;
return true;
}
CharStringByteSink::CharStringByteSink(CharString* dest) : dest_(*dest) {

View file

@ -4,6 +4,9 @@
// bytesinkutil.h
// created: 2017sep14 Markus W. Scherer
#ifndef BYTESINKUTIL_H
#define BYTESINKUTIL_H
#include "unicode/utypes.h"
#include "unicode/bytestream.h"
#include "unicode/edits.h"
@ -81,3 +84,5 @@ private:
};
U_NAMESPACE_END
#endif //BYTESINKUTIL_H

View file

@ -30,14 +30,14 @@ void ByteSink::Flush() {}
CheckedArrayByteSink::CheckedArrayByteSink(char* outbuf, int32_t capacity)
: outbuf_(outbuf), capacity_(capacity < 0 ? 0 : capacity),
size_(0), appended_(0), overflowed_(FALSE) {
size_(0), appended_(0), overflowed_(false) {
}
CheckedArrayByteSink::~CheckedArrayByteSink() {}
CheckedArrayByteSink& CheckedArrayByteSink::Reset() {
size_ = appended_ = 0;
overflowed_ = FALSE;
overflowed_ = false;
return *this;
}
@ -48,14 +48,14 @@ void CheckedArrayByteSink::Append(const char* bytes, int32_t n) {
if (n > (INT32_MAX - appended_)) {
// TODO: Report as integer overflow, not merely buffer overflow.
appended_ = INT32_MAX;
overflowed_ = TRUE;
overflowed_ = true;
return;
}
appended_ += n;
int32_t available = capacity_ - size_;
if (n > available) {
n = available;
overflowed_ = TRUE;
overflowed_ = true;
}
if (n > 0 && bytes != (outbuf_ + size_)) {
uprv_memcpy(outbuf_ + size_, bytes, n);

View file

@ -337,13 +337,13 @@ BytesTrie::findUniqueValueFromBranch(const uint8_t *pos, int32_t length,
}
} else {
uniqueValue=value;
haveUniqueValue=TRUE;
haveUniqueValue=true;
}
} else {
if(!findUniqueValue(pos+value, haveUniqueValue, uniqueValue)) {
return NULL;
}
haveUniqueValue=TRUE;
haveUniqueValue=true;
}
} while(--length>1);
return pos+1; // ignore the last comparison byte
@ -359,9 +359,9 @@ BytesTrie::findUniqueValue(const uint8_t *pos, UBool haveUniqueValue, int32_t &u
}
pos=findUniqueValueFromBranch(pos, node+1, haveUniqueValue, uniqueValue);
if(pos==NULL) {
return FALSE;
return false;
}
haveUniqueValue=TRUE;
haveUniqueValue=true;
} else if(node<kMinValueLead) {
// linear-match node
pos+=node-kMinLinearMatch+1; // Ignore the match bytes.
@ -370,14 +370,14 @@ BytesTrie::findUniqueValue(const uint8_t *pos, UBool haveUniqueValue, int32_t &u
int32_t value=readValue(pos, node>>1);
if(haveUniqueValue) {
if(value!=uniqueValue) {
return FALSE;
return false;
}
} else {
uniqueValue=value;
haveUniqueValue=TRUE;
haveUniqueValue=true;
}
if(isFinal) {
return TRUE;
return true;
}
pos=skipValue(pos, node);
}

View file

@ -231,7 +231,7 @@ BytesTrieBuilder::buildBytes(UStringTrieBuildOption buildOption, UErrorCode &err
}
uprv_sortArray(elements, elementsLength, (int32_t)sizeof(BytesTrieElement),
compareElementStrings, strings,
FALSE, // need not be a stable sort
false, // need not be a stable sort
&errorCode);
if(U_FAILURE(errorCode)) {
return;
@ -375,7 +375,7 @@ BytesTrieBuilder::createLinearMatchNode(int32_t i, int32_t byteIndex, int32_t le
UBool
BytesTrieBuilder::ensureCapacity(int32_t length) {
if(bytes==NULL) {
return FALSE; // previous memory allocation had failed
return false; // previous memory allocation had failed
}
if(length>bytesCapacity) {
int32_t newCapacity=bytesCapacity;
@ -388,7 +388,7 @@ BytesTrieBuilder::ensureCapacity(int32_t length) {
uprv_free(bytes);
bytes=NULL;
bytesCapacity=0;
return FALSE;
return false;
}
uprv_memcpy(newBytes+(newCapacity-bytesLength),
bytes+(bytesCapacity-bytesLength), bytesLength);
@ -396,7 +396,7 @@ BytesTrieBuilder::ensureCapacity(int32_t length) {
bytes=newBytes;
bytesCapacity=newCapacity;
}
return TRUE;
return true;
}
int32_t
@ -463,7 +463,7 @@ int32_t
BytesTrieBuilder::writeValueAndType(UBool hasValue, int32_t value, int32_t node) {
int32_t offset=write(node);
if(hasValue) {
offset=writeValueAndFinal(value, FALSE);
offset=writeValueAndFinal(value, false);
}
return offset;
}

View file

@ -101,12 +101,12 @@ BytesTrie::Iterator::hasNext() const { return pos_!=NULL || !stack_->isEmpty();
UBool
BytesTrie::Iterator::next(UErrorCode &errorCode) {
if(U_FAILURE(errorCode)) {
return FALSE;
return false;
}
const uint8_t *pos=pos_;
if(pos==NULL) {
if(stack_->isEmpty()) {
return FALSE;
return false;
}
// Pop the state off the stack and continue with the next outbound edge of
// the branch node.
@ -119,7 +119,7 @@ BytesTrie::Iterator::next(UErrorCode &errorCode) {
if(length>1) {
pos=branchNext(pos, length, errorCode);
if(pos==NULL) {
return TRUE; // Reached a final value.
return true; // Reached a final value.
}
} else {
str_->append((char)*pos++, errorCode);
@ -141,7 +141,7 @@ BytesTrie::Iterator::next(UErrorCode &errorCode) {
} else {
pos_=skipValue(pos, node);
}
return TRUE;
return true;
}
if(maxLength_>0 && str_->length()==maxLength_) {
return truncateAndStop();
@ -152,7 +152,7 @@ BytesTrie::Iterator::next(UErrorCode &errorCode) {
}
pos=branchNext(pos, node+1, errorCode);
if(pos==NULL) {
return TRUE; // Reached a final value.
return true; // Reached a final value.
}
} else {
// Linear-match node, append length bytes to str_.
@ -177,7 +177,7 @@ UBool
BytesTrie::Iterator::truncateAndStop() {
pos_=NULL;
value_=-1; // no real value for str
return TRUE;
return true;
}
// Branch node, needs to take the first outbound edge and push state for the rest.

View file

@ -119,7 +119,7 @@ UnicodeString CanonicalIterator::getSource() {
* Resets the iterator so that one can start again from the beginning.
*/
void CanonicalIterator::reset() {
done = FALSE;
done = false;
for (int i = 0; i < current_length; ++i) {
current[i] = 0;
}
@ -151,7 +151,7 @@ UnicodeString CanonicalIterator::next() {
for (i = current_length - 1; ; --i) {
if (i < 0) {
done = TRUE;
done = true;
break;
}
current[i]++;
@ -176,7 +176,7 @@ void CanonicalIterator::setSource(const UnicodeString &newSource, UErrorCode &st
if(U_FAILURE(status)) {
return;
}
done = FALSE;
done = false;
cleanPieces();
@ -521,7 +521,7 @@ Hashtable *CanonicalIterator::extract(Hashtable *fillinResult, UChar32 comp, con
int32_t decompLen=decompString.length();
// See if it matches the start of segment (at segmentPos)
UBool ok = FALSE;
UBool ok = false;
UChar32 cp;
int32_t decompPos = 0;
UChar32 decompCp;
@ -537,7 +537,7 @@ Hashtable *CanonicalIterator::extract(Hashtable *fillinResult, UChar32 comp, con
if (decompPos == decompLen) { // done, have all decomp characters!
temp.append(segment+i, segLen-i);
ok = TRUE;
ok = true;
break;
}
U16_NEXT(decomp, decompPos, decompLen, decompCp);

View file

@ -36,11 +36,11 @@ namespace {
UBool U_CALLCONV characterproperties_cleanup();
constexpr int32_t NUM_INCLUSIONS = UPROPS_SRC_COUNT + UCHAR_INT_LIMIT - UCHAR_INT_START;
constexpr int32_t NUM_INCLUSIONS = UPROPS_SRC_COUNT + (UCHAR_INT_LIMIT - UCHAR_INT_START);
struct Inclusion {
UnicodeSet *fSet = nullptr;
UInitOnce fInitOnce = U_INITONCE_INITIALIZER;
UInitOnce fInitOnce {};
};
Inclusion gInclusions[NUM_INCLUSIONS]; // cached getInclusions()
@ -85,7 +85,7 @@ UBool U_CALLCONV characterproperties_cleanup() {
ucptrie_close(reinterpret_cast<UCPTrie *>(maps[i]));
maps[i] = nullptr;
}
return TRUE;
return true;
}
void U_CALLCONV initInclusion(UPropertySource src, UErrorCode &errorCode) {
@ -210,7 +210,7 @@ const UnicodeSet *getInclusionsForSource(UPropertySource src, UErrorCode &errorC
void U_CALLCONV initIntPropInclusion(UProperty prop, UErrorCode &errorCode) {
// This function is invoked only via umtx_initOnce().
U_ASSERT(UCHAR_INT_START <= prop && prop < UCHAR_INT_LIMIT);
int32_t inclIndex = UPROPS_SRC_COUNT + prop - UCHAR_INT_START;
int32_t inclIndex = UPROPS_SRC_COUNT + (prop - UCHAR_INT_START);
U_ASSERT(gInclusions[inclIndex].fSet == nullptr);
UPropertySource src = uprops_getSource(prop);
const UnicodeSet *incl = getInclusionsForSource(src, errorCode);
@ -255,7 +255,7 @@ const UnicodeSet *CharacterProperties::getInclusionsForProperty(
UProperty prop, UErrorCode &errorCode) {
if (U_FAILURE(errorCode)) { return nullptr; }
if (UCHAR_INT_START <= prop && prop < UCHAR_INT_LIMIT) {
int32_t inclIndex = UPROPS_SRC_COUNT + prop - UCHAR_INT_START;
int32_t inclIndex = UPROPS_SRC_COUNT + (prop - UCHAR_INT_START);
Inclusion &i = gInclusions[inclIndex];
umtx_initOnce(i.fInitOnce, &initIntPropInclusion, prop, errorCode);
return i.fSet;

View file

@ -220,7 +220,7 @@ UBool CharString::ensureCapacity(int32_t capacity,
int32_t desiredCapacityHint,
UErrorCode &errorCode) {
if(U_FAILURE(errorCode)) {
return FALSE;
return false;
}
if(capacity>buffer.getCapacity()) {
if(desiredCapacityHint==0) {
@ -230,10 +230,10 @@ UBool CharString::ensureCapacity(int32_t capacity,
buffer.resize(capacity, len+1)==NULL
) {
errorCode=U_MEMORY_ALLOCATION_ERROR;
return FALSE;
return false;
}
}
return TRUE;
return true;
}
CharString &CharString::appendPathPart(StringPiece s, UErrorCode &errorCode) {

View file

@ -177,8 +177,8 @@ private:
UBool ensureCapacity(int32_t capacity, int32_t desiredCapacityHint, UErrorCode &errorCode);
CharString(const CharString &other); // forbid copying of this class
CharString &operator=(const CharString &other); // forbid copying of this class
CharString(const CharString &other) = delete; // forbid copying of this class
CharString &operator=(const CharString &other) = delete; // forbid copying of this class
/**
* Returns U_FILE_ALT_SEP_CHAR if found in string, and U_FILE_SEP_CHAR is not found.

View file

@ -134,5 +134,5 @@ U_CFUNC UBool cmemory_cleanup(void) {
pAlloc = NULL;
pRealloc = NULL;
pFree = NULL;
return TRUE;
return true;
}

View file

@ -58,7 +58,7 @@
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
</ClCompile>
<Link>
<OutputFile>..\..\$(IcuBinOutputDir)\icuuc71d.dll</OutputFile>
<OutputFile>..\..\$(IcuBinOutputDir)\icuuc$(IcuMajorVersion)d.dll</OutputFile>
<ProgramDatabaseFile>.\..\..\$(IcuLibOutputDir)\icuucd.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\$(IcuLibOutputDir)\icuucd.lib</ImportLibrary>
</Link>
@ -70,7 +70,7 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
</ClCompile>
<Link>
<OutputFile>..\..\$(IcuBinOutputDir)\icuuc71.dll</OutputFile>
<OutputFile>..\..\$(IcuBinOutputDir)\icuuc$(IcuMajorVersion).dll</OutputFile>
<ProgramDatabaseFile>.\..\..\$(IcuLibOutputDir)\icuuc.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\$(IcuLibOutputDir)\icuuc.lib</ImportLibrary>
</Link>

View file

@ -125,7 +125,7 @@
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<AdditionalDependencies>vccorlib.lib;msvcrt.lib;vcruntime.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>..\..\$(IcuBinOutputDir)\icuuc71.dll</OutputFile>
<OutputFile>..\..\$(IcuBinOutputDir)\icuuc$(IcuMajorVersion).dll</OutputFile>
<ProgramDatabaseFile>.\..\..\$(IcuLibOutputDir)\icuuc.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\$(IcuLibOutputDir)\icuuc.lib</ImportLibrary>
</Link>
@ -148,7 +148,7 @@
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>vccorlibd.lib;msvcrtd.lib;vcruntimed.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>..\..\$(IcuBinOutputDir)\icuuc71d.dll</OutputFile>
<OutputFile>..\..\$(IcuBinOutputDir)\icuuc$(IcuMajorVersion)d.dll</OutputFile>
<ProgramDatabaseFile>.\..\..\$(IcuLibOutputDir)\icuucd.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\$(IcuLibOutputDir)\icuucd.lib</ImportLibrary>
</Link>

View file

@ -51,8 +51,8 @@ class U_COMMON_API CStr : public UMemory {
private:
CharString s;
CStr(const CStr &other); // Forbid copying of this class.
CStr &operator =(const CStr &other); // Forbid assignment.
CStr(const CStr &other) = delete; // Forbid copying of this class.
CStr &operator =(const CStr &other) = delete; // Forbid assignment.
};
U_NAMESPACE_END

Some files were not shown because too many files have changed in this diff Show more