commit ec9b1bed376ff5d48edef0d2a53cf05a8991907f
parent a4f8e45b732c513351bc59d210801c05f13224de
Author: Dan Stillman <dstillman@zotero.org>
Date: Sun, 1 Nov 2009 21:20:34 +0000
- Check for filename length of 244 instead of 254 to allow for some multibyte characters when checking storage sync error
- On Linux, if filename is over 130 characters and under 244, display filename in error message and include ecrypt suggestion
Diffstat:
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/chrome/content/zotero/xpcom/storage.js b/chrome/content/zotero/xpcom/storage.js
@@ -933,10 +933,21 @@ Zotero.Sync.Storage = new function () {
if (e.name == "NS_ERROR_FILE_NOT_FOUND" && destFile.path.length > 255) {
windowsLength = true;
}
- // ext3/ext4/HFS+ have a filename length limit of ~254 characters
- else if (e.name == "NS_ERROR_FAILURE" && destFile.leafName.length >= 254) {
+ // ext3/ext4/HFS+ have a filename length limit of ~254 bytes
+ //
+ // These filenames will almost always be ASCII ad files,
+ // but allow an extra 10 bytes anyway
+ else if (e.name == "NS_ERROR_FAILURE" && destFile.leafName.length >= 244) {
nameLength = true;
}
+ // ecrypt (on Ubuntu, at least) can result in a lower limit --
+ // not much we can do about this, but log a warning
+ else if (e.name == "NS_ERROR_FAILURE" && Zotero.isLinux && destFile.leafName.length > 130) {
+ var msg = "Error creating file '" + destFile.leafName + "' "
+ + "(Are you using filesystem encryption such as ecrypt "
+ + "that results in a filename length limit below 255 bytes?)";
+ Components.utils.reportError(msg);
+ }
if (windowsLength || nameLength) {
// Is this the main attachment file?