• R/O
  • SSH
  • HTTPS

exewrap: Commit


Commit MetaInfo

Revision42 (tree)
Time2017-10-19 15:48:13
Authorhirukawa_ryo

Log Message

* exewrap 1.2.0
コンソールアプリケーションのリソースファイル(アイコンとイベントログ出力)指定漏れを修正しました。
コンソールアプリケーションで -i アイコン指定がされていない場合は、アイコンリソースを削除してシステム既定のアイコンが表示されるようにしました。

Change Summary

Incremental Difference

--- exewrap/trunk/exewrap/src/Makefile (revision 41)
+++ exewrap/trunk/exewrap/src/Makefile (revision 42)
@@ -79,9 +79,9 @@
7979 $(OBJ)\bindres.exe $(OBJ)\exewrap.exe URL_CONNECTION $(OBJ)\exewrap\core\URLConnection.class
8080 $(OBJ)\bindres.exe $(OBJ)\exewrap.exe URL_STREAM_HANDLER $(OBJ)\exewrap\core\URLStreamHandler.class
8181 $(OBJ)\bindres.exe $(OBJ)\exewrap.exe URL_STREAM_HANDLER_FACTORY $(OBJ)\exewrap\core\URLStreamHandlerFactory.class
82+ $(OBJ)\bindres.exe $(OBJ)\exewrap.exe LOADER_JAR $(OBJ)\loader.jar
8283 $(OBJ)\bindres.exe $(OBJ)\exewrap.exe UTIL_JAR $(OBJ)\util.jar
8384 $(OBJ)\bindres.exe $(OBJ)\exewrap.exe JAR $(OBJ)\tool.jar
84- $(OBJ)\bindres.exe $(OBJ)\exewrap.exe LOADER $(OBJ)\loader.jar
8585 copy /V /Y /B $(OBJ)\exewrap.exe + $(OBJ)\loader.jar $(BIN)\exewrap.exe
8686
8787 $(OBJ)\exewrap.obj : $(OBJ) exewrap.c
@@ -96,7 +96,7 @@
9696 $(OBJ)\exewrap\core\ByteBufferInputStream.class $(OBJ)\exewrap\core\NativeMethods.class $(OBJ)\exewrap\core\PackInputStream.class \
9797 $(OBJ)\exewrap\core\URLConnection.class $(OBJ)\exewrap\core\URLStreamHandler.class $(OBJ)\exewrap\core\URLStreamHandlerFactory.class \
9898 $(OBJ)\util.jar
99- $(LINK) $(LDFLAGS) /SUBSYSTEM:CONSOLE$(TARGET_VER) /MANIFEST /OUT:$(OBJ)\image_console.exe $(OBJ)\image_console.obj \
99+ $(LINK) $(LDFLAGS) /SUBSYSTEM:CONSOLE$(TARGET_VER) /MANIFEST /OUT:$(OBJ)\image_console.exe $(OBJ)\image_console.res $(OBJ)\image_console.obj \
100100 $(OBJ)\jvm.obj $(OBJ)\loader.obj $(OBJ)\message.obj $(OBJ)\notify.obj $(OBJ)\eventlog.obj $(LIBS) $(MSVCRT_PATCH)
101101 $(MT) -manifest $(OBJ)\image_console.exe.manifest -outputresource:$(OBJ)\image_console.exe;1
102102 $(OBJ)\bindres.exe $(OBJ)\image_console.exe BYTE_BUFFER_INPUT_STREAM $(OBJ)\exewrap\core\ByteBufferInputStream.class
--- exewrap/trunk/exewrap/src/exewrap.c (revision 41)
+++ exewrap/trunk/exewrap/src/exewrap.c (revision 42)
@@ -62,6 +62,7 @@
6262 char* original_filename;
6363 char* new_version;
6464 BOOL contains_visualvm_display_name = FALSE;
65+ BOOL is_icon_set = FALSE;
6566
6667 char* buf = NULL;
6768 char* ptr = NULL;
@@ -445,8 +446,23 @@
445446
446447 if(opt['i'] && *opt['i'] != '-' && *opt['i'] != '\0')
447448 {
448- set_application_icon(exe_file, opt['i']);
449+ size_t len = strlen(opt['i']);
450+ if(len > 4 && stricmp(opt['i'] + len - 4, ".ico") == 0)
451+ {
452+ set_application_icon(exe_file, opt['i']);
453+ is_icon_set = TRUE;
454+ }
455+ else
456+ {
457+ printf("Invalid icon filename: %s\n", opt['i']);
458+ }
449459 }
460+ if(!opt['g'] && !opt['s'] && !is_icon_set)
461+ {
462+ // コンソールアプリケーションでアイコンが指定されていない場合は、
463+ // リソースに内包しているアイコンを削除してシステム既定のアイコンが表示されるようにします。
464+ set_application_icon(exe_file, NULL);
465+ }
450466
451467 if(opt['v'] && *opt['v'] != '-' && *opt['v'] != '\0')
452468 {
@@ -509,9 +525,9 @@
509525 original_filename = strrchr(exe_file, '\\') + 1;
510526 new_version = set_version_info(exe_file, version_number, previous_revision, file_description, copyright, company_name, product_name, product_version, original_filename, jar_file);
511527
512- if(GetResource("LOADER", &res) == NULL)
528+ if(GetResource("LOADER_JAR", &res) == NULL)
513529 {
514- printf("ERROR: GetResource: LOADER\n");
530+ printf("ERROR: GetResource: LOADER_JAR\n");
515531 goto EXIT;
516532 }
517533 else
@@ -966,7 +982,7 @@
966982 EndUpdateResource(hResource, FALSE);
967983 }
968984
969- if (!strlen(icon_file))
985+ if (icon_file == NULL || !strlen(icon_file))
970986 {
971987 return;
972988 }
Show on old repository browser