OSDN Git Service

Make application manifest resource definition reusable.
[mingw/mingw-get.git] / ChangeLog
index 60a8da7..3d91f30 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,176 @@
+2013-05-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Make application manifest resource definition reusable.
+
+       * src/manifest.rc: New file; factor content from...
+       * src/guimain.rc: ...here, whence include it.
+
+2013-05-08  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Extend DMH services to delay-loaded DLL clients.
+
+       * src/dmhcore.h (dmh_bind): New function; declare it.
+       * src/dmhcore.cpp (dmh_bind): Implement it; it provides an API through
+       which the setup tool makes its existing DMH services available to post
+       install hooks in mingw-get-0.dll, which cannot be loaded until after
+       the providing package has been downloaded and unpacked.
+
+2013-05-08  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Avoid unnecessary command line globbing in GUI applications.
+
+       * src/guimain.cpp src/guistub.cpp (_CRT_glob): Declare as extern "C";
+       initialise to zero, so overriding the runtime start-up default.
+
+       * src/rites.c [! IMPLEMENT_INITIATION_RITES] (_CRT_glob): Initialise
+       to zero here too; lastrites.exe doesn't need globbing either.
+
+2013-05-04  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Address some GCC-4.7 string initialisation warnings.
+
+       * src/pkglist.cpp (AppWindowMaker::InitPackageListView): Declare all
+       headings[].text initialisers as 'const'; cast to 'char *' as required.
+       (pkgListViewMaker::Dispatch): Ditto, when inserting the 'const' empty
+       string into the list, as a component class value.
+
+       * src/pkgdata.cpp (AppWindowMaker::InitPackageTabControl): Declare all
+       TabLegend[] initialisers as 'const'; cast to 'char *' as required.
+
+2013-05-02  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Correct a spin wait thread synchronisation issue.
+
+       * src/pkgnget.cpp (pkgDownloadMeterGUI::SpinWait): Handle stop
+       requests explicitly; acknowledge when waiting thread has stopped.
+       (pkgDownloadMeterGUI::SpinWaitAction): Raise explicit stop requests;
+       wait for acknowledgement that waiting thread has stopped.
+
+2013-04-23  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Select compressed data streaming filters for use by setup tool.
+
+       * src/pkgstrm.cpp [IMPLEMENTATION_LEVEL != PACKAGE_BASE_COMPONENT]:
+       Exclude the implementations of all decompression filters, except...
+       (pkgXzArchiveStream): ...this, together with its requisite methods...
+       (pkgArchiveStream, pkgLzmaArchiveStream): ...from these.
+
+2013-04-23  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Adapt internet download agent for use by setup tool.
+
+       * src/pkgbase.h: More code rearrangement, exposing...
+       (safe_strcmp): ...this in any implementation context, controlled...
+       [USES_SAFE_STRCMP && ! HAVE_SAFE_STRCMP]: ...by this; when true...
+       (HAVE_SAFE_STRCMP): ...define this to 1, (must be non-zero).
+       [IMPLEMENTATION_LEVEL == PACKAGE_BASE_COMPONENT]: Ensure that...
+       (USES_SAFE_STRCMP): ...this is defined to 1, (i.e. non-zero).
+       (EXTERN_C): Relocate macro definition...
+       * src/pkgimpl.h: ...to here; add complementary implementation of...
+       (BEGIN_C_DECLS, END_C_DECLS): ...these new macros; define them.
+
+       * src/pkginet.h (pkgDownloadMeter::SpinWait): New static method;
+       declare it as inline, to be implemented elsewhere, delegating to...
+       (pkgDownloadMeter::SpinWaitAction): ...this new protected virtual
+       method; declare and implement it inline, as a "do nothing" base
+       class method, to be optionally overridden in a derived class.
+
+       * src/pkginet.cpp (pkgDownloadMeter::SpinWait): Implement it.
+       (pkgInternetAgent::OpenURL): Use it to invoke SpinWaitAction().
+       (USES_SAFE_STRCMP): Define as 1; (safe_strcmp() is required).
+       [IMPLEMENTATION_LEVEL != PACKAGE_BASE_COMPONENT]: Filter out code
+       which may not be required in more specialised contexts, then...
+       [IMPLEMENTATION_LEVEL == SETUP_TOOL_COMPONENT]: ...add specialised
+       variants specific to this.
+
+       * src/pkgnget.cpp [IMPLEMENTATION_LEVEL != PACKAGE_BASE_COMPONENT]:
+       Filter out code which may not be required in more specialised context.
+       (dmh_setpty): Provide locally declared prototype for external function.
+       (pkgDownloadMeterGUI): Add pseudo-terminal diagnostic message window.
+       (pkgDownloadMeterGUI::SpinWaitAction): Declare and implement GUI
+       specific method specialisation; it invokes a thread, running...
+       (pkgDownloadMeterGUI::SpinWait): ...this new static method overload.
+
+2013-04-19  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Implement pre-emptive update issue number identification.
+
+       * src/pkgkeys.h (serial_number): Declare function prototype.
+       * src/pkginet.cpp (serial_number): Implementation remains here;
+       promote from static to extern "C".
+
+       * src/pkgbind.cpp (value_assumed_new): New char constant; define it.
+       (pkgRepository::expected_issue): New private member var; declare and...
+       (pkgRepository::pkgRepository): ...initialise it, assuming new.
+       (pkgRepository::GetPackageList): Assign pre-emptively declared issue
+       number, (from package-list references), to 'expected_issue'; compare it
+       with 'current_issue' number recorded within locally stored catalogue.
+       [current_issue >= expected_issue]: Suppress redundant download; adjust
+       diagnostic messages as appropriate.
+
+2013-04-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Fix MinGW-Bug #1601 (on new issues tracker).
+
+       * aclocal.m4 (makeopts.m4): New build-aux module; include it.
+       (MINGW_AC_PROG_LEX): New macro; implement it.
+       
+       * configure.ac (AC_INIT): Make version number tripartite.
+       (MINGW_AC_MAKE_NO_PRINT_DIRECTORY): Use this new makeopts.m4 macro.
+       (MINGW_AC_PROG_LEX): Use it, in place of...
+       (AC_PROG_LEX): ...this.
+
+       * Makefile.in (MAKE): New macro; assign using autoconf's SET_MAKE.
+       (QUIET_MAKE): New macro; derive it from $(MAKE) --no-print-directory.
+       (LEX_COMMAND, LEX_COMMAND_ABORT): New macros; define them.
+       (LEX_MISSING, LEX_MISSING_MESSAGE, LEX_OUTPUT): Likewise.
+       (FORMAT_MESSAGE, MESSAGE_FOLD_WIDTH): Likewise; implemented from...
+       (AWK_CLEAR_LINE_BUFFER, AWK_FLUSH_BUFFER, AWK_PRINT_AND_CLEAR_BUFFER):
+       (AWK_COLLECT_MESSAGE, AWK_COLLECT_BLANK_LINE, AWK_PRINT_LINE_BUFFER):
+       ...this collection of internal helper macros; define them.
+       (%.c: %.l): Replacement for built-in rule; it handles "missing lex" in
+       a manner consistent with expectations of autoconf's AC_PROG_LEX.
+       (execute-command): New phoney build goal; it is used with...
+       (WITH_REQUEST): ...this new macro, to invoke commands recursively.
+
+2013-03-25  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Adapt DMH for use in setup tool.
+
+       * src/dmh.cpp: File renamed to...
+       * src/dmhcore.cpp: ...this; some code rearranged, to facilitate...
+       [IMPLEMENTATION_LEVEL == PACKAGE_BASE_COMPONENT]: ...marking of code
+       sections which are required in the base package build, but which may
+       be filtered out of the build context for the setup tool.
+       
+       * src/guidmh.cpp: File renamed to this...
+       * src/dmhguix.cpp: ...this; also add marking for...
+       [IMPLEMENTATION_LEVEL == PACKAGE_BASE_COMPONENT]: ...sections which
+       may be filtered out of the build context for the setup tool.
+       (dmhTypePTY::printf): Improve stratagem for output.
+
+       * Makefile.in (CORE_DLL_OBJECTS, GUIMAIN_OBJECTS): Adjust references
+       to renamed source files.
+
+2013-03-22  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Enable context hooks for build time code filtering.
+
+       * src/pkgimpl.h: New file; it defines...
+       (PACKAGE_BASE_COMPONENT, SETUP_TOOL_COMPONENT): ...these contexts;
+       either of these may be selected, by defining as manifest value for...
+       (IMPLEMENTATION_LEVEL): ...this; default is PACKAGE_BASE_COMPONENT.
+
+       * src/pkgbase.h: Include pkgimpl.h
+       [IMPLEMENTATION_LEVEL != PACKAGE_BASE_COMPONENT]: Occlude content.
+
+2013-03-21  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Specify additional files for clean-up.
+
+       * Makefile.in (distclean): Additionally specify...
+       (build.tag, build.time): ...these, as removable files.
+
 2013-03-21  Keith Marshall  <keithmarshall@users.sourceforge.net>
 
        Add a missing distribution dependency.