• Mike Kaganski's avatar
    tdf#112536 related: make soffice.bin a proper console application on Win · 506173a7
    Mike Kaganski yazdı
    Being a GUI application on Windows (with related flag in the executable header
    - see https://blogs.msdn.microsoft.com/oldnewthing/20090101-00/?p=19643/), OS
    would detect the subsystem before launching the application, and won't attach
    the parent console or redirected output handles from it to the application.
    Also, different hacks to reattach the GUI application to the console later are
    unreliable on different Windows versions, and work improperly (the output goes
    to the console after the launch command has already returned, which is wrong
    in batch files). This makes it extremily difficult to do CLI operations with
    LibreOffice on Windows, with error codes/warnings/messages/output missing or
    going to wrong consoles.
    
    Making an executable for CUI subsystem, on the other hand, makes Windows to
    allocate a console before starting it when the program is run by itself. This
    makes the console window to appear on screen unconditionally, even if it's
    hidden later when the program has started. This flashing is undesirable.
    
    But we use a wrapper executable on Windows, called soffice.exe, which is what
    actually launched by user, and which runs soffice.bin. This allows us to make
    soffice.bin the proper console application, and thus make it capable to behave
    properly in CLI scenarios, while avoid the console flashing when run from the
    soffice.exe (which would suppress the console creation using DETACHED_PROCESS
    creation flag to CreateProcessW).
    
    Also creating a new wrapper for console (soffice.com) allows to use command
    lines which omit explicit executable extension (no ".bin"), like this:
    
    "C:\Program Files\LibreOffice\program\soffice" --help
    
    which allows to continue using multiple available help resources unchanged,
    since .com extension is tried prior to .exe by Windows' cmd.exe.
    
    Change-Id: I089d0f30f860da6cfc781b4383f6598a08a4d238
    Reviewed-on: https://gerrit.libreoffice.org/63572
    Tested-by: Jenkins
    Reviewed-by: 's avatarMike Kaganski <mike.kaganski@collabora.com>
    506173a7
Executable_soffice_com.mk 842 Bytes