From: Eric Biggers Date: Wed, 22 May 2013 00:37:37 +0000 (-0500) Subject: Honor WIM_HDR_FLAG_READONLY X-Git-Tag: v1.4.1~50 X-Git-Url: https://wimlib.net/git/?p=wimlib;a=commitdiff_plain;h=4b8dbcb1723bacdd692ea57184cb49ce3d2b7774 Honor WIM_HDR_FLAG_READONLY --- diff --git a/include/wimlib.h b/include/wimlib.h index c1c00e42..b7a21cf4 100644 --- a/include/wimlib.h +++ b/include/wimlib.h @@ -1022,6 +1022,7 @@ enum wimlib_error_code { WIMLIB_ERR_VOLUME_LACKS_FEATURES, WIMLIB_ERR_WRITE, WIMLIB_ERR_XML, + WIMLIB_ERR_WIM_IS_MARKED_READONLY, }; diff --git a/src/util.c b/src/util.c index 6b93e2a9..87dd3c50 100644 --- a/src/util.c +++ b/src/util.c @@ -389,6 +389,8 @@ static const tchar *error_strings[] = { = T("The requested operation is unsupported"), [WIMLIB_ERR_VOLUME_LACKS_FEATURES] = T("The volume did not support a feature necessary to complete the operation"), + [WIMLIB_ERR_WIM_IS_MARKED_READONLY] + = T("The WIM is marked as read-only"), [WIMLIB_ERR_WRITE] = T("Failed to write data to a file"), [WIMLIB_ERR_XML] diff --git a/src/wim.c b/src/wim.c index 9e73c761..4a8e6a8b 100644 --- a/src/wim.c +++ b/src/wim.c @@ -676,12 +676,15 @@ int can_modify_wim(WIMStruct *wim) { if (wim->hdr.total_parts != 1) { - if (wim->filename) - ERROR("Cannot modify \"%"TS"\": is a split WIM!", wim->filename); - else - ERROR("Cannot modify a split WIM!"); + ERROR("Cannot modify \"%"TS"\": is part of a spanned set", + wim->filename); return WIMLIB_ERR_SPLIT_UNSUPPORTED; } + if (wim->hdr.flags & WIM_HDR_FLAG_READONLY) { + ERROR("Cannot modify \"%"TS"\": is marked read-only", + wim->filename); + return WIMLIB_ERR_WIM_IS_MARKED_READONLY; + } return 0; }