* Don't crash with bad string formats
* File listing: If we fail to get an archive listing, fix attempt to format the string with a non-object
This commit is contained in:
parent
5bd7ecdb88
commit
746bd5abd0
|
@ -589,15 +589,22 @@ exports.getModule = class FileAreaList extends MenuModule {
|
|||
});
|
||||
}
|
||||
|
||||
setFileListNoListing(text) {
|
||||
const fileListView = this.viewControllers.detailsFileList.getView(MciViewIds.detailsFileList.fileList);
|
||||
if(fileListView) {
|
||||
fileListView.complexItems = false;
|
||||
fileListView.setItems( [ text ] );
|
||||
fileListView.redraw();
|
||||
}
|
||||
}
|
||||
|
||||
populateFileListing() {
|
||||
const fileListView = this.viewControllers.detailsFileList.getView(MciViewIds.detailsFileList.fileList);
|
||||
|
||||
if(this.currentFileEntry.entryInfo.archiveType) {
|
||||
this.cacheArchiveEntries( (err, cacheStatus) => {
|
||||
if(err) {
|
||||
// :TODO: Handle me!!!
|
||||
fileListView.setItems( [ 'Failed getting file listing' ] ); // :TODO: make this not suck
|
||||
return;
|
||||
return this.setFileListNoListing('Failed to get file listing');
|
||||
}
|
||||
|
||||
if('re-cached' === cacheStatus) {
|
||||
|
@ -606,7 +613,8 @@ exports.getModule = class FileAreaList extends MenuModule {
|
|||
}
|
||||
});
|
||||
} else {
|
||||
fileListView.setItems( [ stringFormat(this.menuConfig.config.notAnArchiveFormat || 'Not an archive', { fileName : this.currentFileEntry.fileName } ) ] );
|
||||
const notAnArchiveFileName = stringFormat(this.menuConfig.config.notAnArchiveFormat || 'Not an archive', { fileName : this.currentFileEntry.fileName } );
|
||||
this.setFileListNoListing(notAnArchiveFileName);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -331,6 +331,7 @@ module.exports = function format(fmt, obj) {
|
|||
transformer = match[2];
|
||||
formatSpec = match[3];
|
||||
|
||||
try {
|
||||
value = getValue(obj, objPath);
|
||||
if(transformer) {
|
||||
value = transformValue(transformer, value);
|
||||
|
@ -343,6 +344,13 @@ module.exports = function format(fmt, obj) {
|
|||
} else {
|
||||
out += formatString(value, tokens);
|
||||
}
|
||||
} catch(e) {
|
||||
if(e instanceof KeyError) {
|
||||
out += match[0]; // preserve full thing
|
||||
} else if(e instanceof ValueError) {
|
||||
out += value.toString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} while(0 !== re.lastIndex);
|
||||
|
|
Loading…
Reference in New Issue