CARVIEW |
Select Language
HTTP/2 200
date: Fri, 10 Oct 2025 06:18:20 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-repository-download: git clone https://github.com/w3c/epubcheck.git
etag: W/"206246f8fe7b2a024a8b88212e1c8c6f"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com github.githubassets.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com marketplace-screenshots.githubusercontent.com/ copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=qnu%2BnDgIFqWenhf2OWY1Qztsc4eMYgd%2F04b7EKJTcRsS8I82G6PZL4%2F%2B5yM7FHVQwRzDV8x%2BQ0euaKufxfBZoGA1sZrz5YbGNMdONfgHC8EQp8xlz6uwHKW8AmnYTLxBCWeBe9uMPa%2BxcBqPTzUen5DGTtELkPcX32Lzo2W%2BokAD%2BtOhaXNIjVekcA9xfZeFLR%2BY1HzDi8g1nvy%2F%2BoW%2B4jQzdJvrrHDpZ0mfMg6HXwIlzfFQP5YisPxYhhZyuAxR%2BpD2kr1GheD4860oy%2BbiHQ%3D%3D--n2%2FvdQrD%2FzU1GwgE--Un6FmN0TF3cn9L0nDKuXaw%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.462740527.1760077099; Path=/; Domain=github.com; Expires=Sat, 10 Oct 2026 06:18:19 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Sat, 10 Oct 2026 06:18:19 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: 95A2:2AA7F:14037EC:1839531:68E8A52B
feat: check file name uniqueness wiht Unicode canonical case fold nor… · w3c/epubcheck@111e772 · GitHub
Copy file name to clipboardExpand all lines: src/main/java/com/adobe/epubcheck/messages/DefaultSeverities.java
Copy file name to clipboardExpand all lines: src/main/java/com/adobe/epubcheck/messages/MessageId.java
Copy file name to clipboardExpand all lines: src/main/java/com/adobe/epubcheck/ocf/OCFChecker.java
Copy file name to clipboard
Copy file name to clipboardExpand all lines: src/main/resources/com/adobe/epubcheck/messages/MessageBundle.properties
Copy file name to clipboard
Copy file name to clipboard
Copy file name to clipboard
Copy file name to clipboard
Copy file name to clipboardExpand all lines: src/test/resources/epub3/04-ocf/ocf.feature
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 420
Commit 111e772
committed
feat: check file name uniqueness wiht Unicode canonical case fold normalization
This commit changes the OCF container file name uniqueness check to
perform the Unicode canonical case fold normalization step defined in
https://www.w3.org/TR/charmod-norm/#CanonicalFoldNormalizationStep
That is, we normalize the file name to NFD then apply full case folding
before checking for uniqueness.
Previously the behaviors was:
- we checked for uniqueness of the lower case form (String.toLowerCase)
- we checked for uniqueness of the NFC-normalized lower case
This was flawed, since String.toLowerCase is not equivalent to Unicode
full case folding.
Also, previously, only a warning (OPF-061) was reported when names
were not unique after NFC normalization. This is now an error, using
the same code as the other uniqueness failures (OPF-060).
This commit removes OPF-061, which is no longer used.
Fixes #12461 parent bfd30b5 commit 111e772Copy full SHA for 111e772
File tree
Expand file treeCollapse file tree
10 files changed
+69
-25
lines changedFilter options
- src
- main
- java
- com/adobe/epubcheck
- messages
- ocf
- org/w3c/epubcheck/util/text
- resources/com/adobe/epubcheck/messages
- test/resources/epub3/04-ocf
- files
Expand file treeCollapse file tree
10 files changed
+69
-25
lines changedCollapse file: src/main/java/com/adobe/epubcheck/messages/DefaultSeverities.java
src/main/java/com/adobe/epubcheck/messages/DefaultSeverities.java
Copy file name to clipboardExpand all lines: src/main/java/com/adobe/epubcheck/messages/DefaultSeverities.java-1Lines changed: 0 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
248 | 248 |
| |
249 | 249 |
| |
250 | 250 |
| |
251 |
| - | |
252 | 251 |
| |
253 | 252 |
| |
254 | 253 |
| |
|
Collapse file: src/main/java/com/adobe/epubcheck/messages/MessageId.java
src/main/java/com/adobe/epubcheck/messages/MessageId.java
Copy file name to clipboardExpand all lines: src/main/java/com/adobe/epubcheck/messages/MessageId.java-1Lines changed: 0 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
242 | 242 |
| |
243 | 243 |
| |
244 | 244 |
| |
245 |
| - | |
246 | 245 |
| |
247 | 246 |
| |
248 | 247 |
| |
|
Collapse file: src/main/java/com/adobe/epubcheck/ocf/OCFChecker.java
src/main/java/com/adobe/epubcheck/ocf/OCFChecker.java
Copy file name to clipboardExpand all lines: src/main/java/com/adobe/epubcheck/ocf/OCFChecker.java+13-16Lines changed: 13 additions & 16 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
25 | 25 |
| |
26 | 26 |
| |
27 | 27 |
| |
28 |
| - | |
29 | 28 |
| |
30 | 29 |
| |
31 | 30 |
| |
32 |
| - | |
33 | 31 |
| |
34 | 32 |
| |
35 | 33 |
| |
36 | 34 |
| |
37 | 35 |
| |
38 | 36 |
| |
39 | 37 |
| |
| 38 | + | |
40 | 39 |
| |
41 | 40 |
| |
42 | 41 |
| |
| |||
296 | 295 |
| |
297 | 296 |
| |
298 | 297 |
| |
299 |
| - | |
300 |
| - | |
301 |
| - | |
302 |
| - | |
303 |
| - | |
304 |
| - | |
305 |
| - | |
306 |
| - | |
307 |
| - | |
308 |
| - | |
309 |
| - | |
310 |
| - | |
311 | 298 |
| |
312 | 299 |
| |
313 | 300 |
| |
| |||
318 | 305 |
| |
319 | 306 |
| |
320 | 307 |
| |
321 |
| - | |
| 308 | + | |
322 | 309 |
| |
323 |
| - | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
324 | 321 |
| |
325 | 322 |
| |
326 | 323 |
| |
|
Collapse file: src/main/java/org/w3c/epubcheck/util/text/UnicodeUtils.java
src/main/java/org/w3c/epubcheck/util/text/UnicodeUtils.java
Copy file name to clipboard+39Lines changed: 39 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + |
Collapse file: src/main/resources/com/adobe/epubcheck/messages/MessageBundle.properties
src/main/resources/com/adobe/epubcheck/messages/MessageBundle.properties
Copy file name to clipboardExpand all lines: src/main/resources/com/adobe/epubcheck/messages/MessageBundle.properties+1-2Lines changed: 1 addition & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
238 | 238 |
| |
239 | 239 |
| |
240 | 240 |
| |
241 |
| - | |
242 |
| - | |
| 241 | + | |
243 | 242 |
| |
244 | 243 |
| |
245 | 244 |
| |
|
Collapse file: src/test/resources/epub3/04-ocf/files/ocf-filename-duplicate-after-canonical-normalization-error.epub
src/test/resources/epub3/04-ocf/files/ocf-filename-duplicate-after-unicode-normalization-warning.epub renamed to src/test/resources/epub3/04-ocf/files/ocf-filename-duplicate-after-canonical-normalization-error.epub
Copy file name to clipboardFile renamed without changes.
Collapse file: src/test/resources/epub3/04-ocf/files/ocf-filename-duplicate-after-common-case-folding-error.epub
src/test/resources/epub3/04-ocf/files/ocf-filename-duplicate-after-case-normalization-error.epub renamed to src/test/resources/epub3/04-ocf/files/ocf-filename-duplicate-after-common-case-folding-error.epub
Copy file name to clipboardFile renamed without changes.
Collapse file: src/test/resources/epub3/04-ocf/files/ocf-filename-duplicate-after-compatibility-normalization-valid.epub
src/test/resources/epub3/04-ocf/files/ocf-filename-duplicate-after-compatibility-normalization-valid.epub
Copy file name to clipboard1.78 KB
Binary file not shown.
Collapse file: src/test/resources/epub3/04-ocf/files/ocf-filename-duplicate-after-full-case-folding-error.epub
src/test/resources/epub3/04-ocf/files/ocf-filename-duplicate-after-full-case-folding-error.epub
Copy file name to clipboard1.81 KB
Binary file not shown.
Collapse file: src/test/resources/epub3/04-ocf/ocf.feature
src/test/resources/epub3/04-ocf/ocf.feature
Copy file name to clipboardExpand all lines: src/test/resources/epub3/04-ocf/ocf.feature+16-5Lines changed: 16 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
29 | 29 |
| |
30 | 30 |
| |
31 | 31 |
| |
32 |
| - | |
33 |
| - | |
| 32 | + | |
| 33 | + | |
34 | 34 |
| |
35 | 35 |
| |
36 | 36 |
| |
37 | 37 |
| |
38 |
| - | |
39 |
| - | |
40 |
| - | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
41 | 47 |
| |
42 | 48 |
| |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
43 | 54 |
| |
44 | 55 |
| |
45 | 56 |
| |
|
You can’t perform that action at this time.
0 commit comments