]> wimlib.net Git - wimlib/blobdiff - programs/imagex.c
translate_text_to_tstr(): Correctly compare byte values
[wimlib] / programs / imagex.c
index 370681a551daf0a27f806944d60f70dd061d6230..772b86ef75463092cd8aa67eeac55c337bb019ef 100644 (file)
@@ -366,11 +366,13 @@ verify_image_exists(int image, const tchar *image_name, const tchar *wim_name)
        if (image == WIMLIB_NO_IMAGE) {
                imagex_error(T("\"%"TS"\" is not a valid image in \"%"TS"\"!\n"
                             "       Please specify a 1-based image index or "
-                            "image name.\n"
-                            "       You may use `%"TS"' to list the images "
-                            "contained in a WIM."),
-                            image_name, wim_name, get_cmd_string(CMD_INFO, false));
-               return -1;
+                            "image name.  To list the images\n"
+                            "       contained in the WIM archive, run\n"
+                            "\n"
+                            "           %"TS" \"%"TS"\"\n"),
+                            image_name, wim_name,
+                            get_cmd_string(CMD_INFO, false), wim_name);
+               return WIMLIB_ERR_INVALID_IMAGE;
        }
        return 0;
 }
@@ -380,7 +382,7 @@ verify_image_is_single(int image)
 {
        if (image == WIMLIB_ALL_IMAGES) {
                imagex_error(T("Cannot specify all images for this action!"));
-               return -1;
+               return WIMLIB_ERR_INVALID_IMAGE;
        }
        return 0;
 }
@@ -935,8 +937,8 @@ translate_text_to_tstr(char *text, size_t num_bytes, size_t *num_tchars_ret)
        size_t num_wchars;
 
        if (num_bytes >= 2 &&
-           ((text[0] == 0xff && text[1] == 0xfe) ||
-            (text[0] <= 0x7f && text[1] == 0x00)))
+           (((unsigned char)text[0] == 0xff && (unsigned char)text[1] == 0xfe) ||
+            ((unsigned char)text[0] <= 0x7f && (unsigned char)text[1] == 0x00)))
        {
                /* File begins with 0xfeff, the BOM for UTF-16LE, or it begins
                 * with something that looks like an ASCII character encoded as
@@ -1204,7 +1206,7 @@ imagex_progress_func(enum wimlib_progress_msg msg,
                case WIMLIB_UPDATE_OP_DELETE:
                        imagex_printf(T("Deleted WIM path "
                                  "\""WIMLIB_WIM_PATH_SEPARATOR_STRING "%"TS"\"\n"),
-                               info->update.command->delete.wim_path);
+                               info->update.command->delete_.wim_path);
                        break;
                case WIMLIB_UPDATE_OP_RENAME:
                        imagex_printf(T("Renamed WIM path "
@@ -1273,9 +1275,9 @@ update_command_add_option(int op, const tchar *option,
                break;
        case WIMLIB_UPDATE_OP_DELETE:
                if (!tstrcmp(option, T("--force")))
-                       cmd->delete.delete_flags |= WIMLIB_DELETE_FLAG_FORCE;
+                       cmd->delete_.delete_flags |= WIMLIB_DELETE_FLAG_FORCE;
                else if (!tstrcmp(option, T("--recursive")))
-                       cmd->delete.delete_flags |= WIMLIB_DELETE_FLAG_RECURSIVE;
+                       cmd->delete_.delete_flags |= WIMLIB_DELETE_FLAG_RECURSIVE;
                else
                        recognized = false;
                break;
@@ -1306,7 +1308,7 @@ update_command_add_nonoption(int op, const tchar *nonoption,
                        cmd->add.wim_target_path = (tchar*)nonoption;
                break;
        case WIMLIB_UPDATE_OP_DELETE:
-               cmd->delete.wim_path = (tchar*)nonoption;
+               cmd->delete_.wim_path = (tchar*)nonoption;
                break;
        case WIMLIB_UPDATE_OP_RENAME:
                if (num_nonoptions == 0)
@@ -2804,8 +2806,7 @@ imagex_info(int argc, tchar **argv, int cmd)
        image = wimlib_resolve_image(wim, image_num_or_name);
        ret = WIMLIB_ERR_INVALID_IMAGE;
        if (image == WIMLIB_NO_IMAGE && tstrcmp(image_num_or_name, T("0"))) {
-               imagex_error(T("The image \"%"TS"\" does not exist in \"%"TS"\""),
-                            image_num_or_name, wimfile);
+               verify_image_exists(image, image_num_or_name, wimfile);
                if (boot) {
                        imagex_error(T("If you would like to set the boot "
                                       "index to 0, specify image \"0\" with "
@@ -3525,7 +3526,7 @@ imagex_update(int argc, tchar **argv, int cmd)
                        cmds[i].add.config = config;
                        break;
                case WIMLIB_UPDATE_OP_DELETE:
-                       cmds[i].delete.delete_flags |= default_delete_flags;
+                       cmds[i].delete_.delete_flags |= default_delete_flags;
                        break;
                default:
                        break;