<?xml version="1.0" encoding="UTF-8"?>
<article id="Faq">
  <title>Frequently asked questions</title>

  <section>
    <title>General questions</title>

    <qandaset>
      <qandaentry>
        <question>
          <para>Does WinMerge run on older Windows versions?</para>
        </question>
        <answer>
          <para><indexterm>
              <primary>WinMerge executables, Unicode and ANSI</primary>
            </indexterm><indexterm>
              <primary>Unicode</primary>
              <secondary>WinMerge support</secondary>
            </indexterm><indexterm>
              <primary>ANSI</primary>
              <secondary>WinMerge support</secondary>
            </indexterm>Beginning with Version 2.14, WinMerge ended support for
	    older 32-bit Windows systems, including Windows 9x, ME, and NT4.
	    In addition, WinMerge version 2.16 does not support Windows 2000.</para>
          <para>Previously, WinMerge provided an ANSI (8-bit) executable,
              <filename>WinMerge.exe</filename>, that was designed around the
            old Windows codepages. <filename>WinMerge.exe</filename> internally
            stored only the ANSI characters supported by the Windows codepage.
            This executable had severe limitations for working with Unicode: if
            you opened a Unicode file, the characters were converted to the
            Windows ANSI codepage. Because there are over 100,000 Unicode
            characters, and only 256 can be represented in the ANSI character
            set, data loss could occur. Conversion might be approximate (for
            example, accents are lost) or impossible: characters were replaced
            by question marks ( <literal>?</literal> ).</para>
          <para><filename>WinMerge.exe</filename> also could not open files with
            names outside the current ANSI codepage. For example, on an English
            system, <filename>WinMerge.exe</filename> could not open a file with
            a Hebrew name.</para>
          <para>WinMerge developed the Unicode-enabled
              <filename>WinMergeU.exe</filename> executable to work with newer,
            Unicode-based Windows systems. <filename>WinMergeU.exe</filename>
            has none of the limitations of the ANSI executable.</para>
          <para><filename>WinMergeU.exe</filename> has been installed by default
            for some time, and since few ANSI-based Windows systems remain, the
            value of maintaining <filename>WinMerge.exe</filename> is minimal.
            As of Version 2.14, WinMerge no longer includes
              <filename>WinMerge.exe</filename> in the installer.  </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question>
          <para>I want to compare folders, but I cannot select a folder in the
          Browse dialog.<indexterm>
              <primary>folders</primary>

              <secondary>selecting in Select Files or Folders dialog</secondary>
            </indexterm></para>
        </question>

        <answer>
          <para>Browse in the folder contents to the folder you want to compare.
          Do not select any of the files or subfolders, just click
          <guibutton>Open</guibutton> when <literal>Folder Selection</literal>
          is displayed in the <guilabel>File name</guilabel> field. If you
          already selected a files or subfolders, just type a random string in
          the <guilabel>File name</guilabel> field and click
          <guibutton>Open</guibutton>. If the file name you enter is not found,
          WinMerge opens the folder.</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question>
          <para>Do you have any plans to support other operating systems besides
          Windows?</para>
        </question>

        <answer>
          <para>There are currently no plans for cross-platform support but
          you can try the unofficial version <ulink url="https://github.com/datadiode/winmerge2011">
          WinMerge 2011</ulink> by Jochen Neubeck. This version should work with Wine also
          under Linux.</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question>
          <para>Why is there no CVS integration?<indexterm>
              <primary>version control systems</primary>

              <secondary>integration with</secondary>
            </indexterm><indexterm>
              <primary>integration</primary>

              <secondary>with version control systems</secondary>
            </indexterm></para>
        </question>

        <answer>
          <para>Providing an integration with CVS is of questionable value
          because there already are so many good CVS clients. However, WinMerge
          does provide an integration with the diff function of one of those
          clients, TortoiseCVS (as described in <xref
          linkend="Version_control" />). Also, WinMerge can resolve conflict
          files (see <xref linkend="ResolveConflictFiles" />).</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question>
          <para>What is an MRU list?<indexterm>
              <primary>MRU list</primary>
            </indexterm></para>
        </question>

        <answer>
          <para>MRU is an abbreviation for <quote>Most Recently Used</quote>,
          and refers to the history lists in the Select Files or Folders dialog.
          The list contains the last twenty paths used on each side.</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question>
          <para>Can WinMerge open OpenOffice files?<indexterm>
              <primary>OpenOffice, opening files in WinMerge</primary>
            </indexterm></para>
        </question>

        <answer>
          <para>OpenOffice files are archives. To be able to open them in
          WinMerge, you have to configure archive support:</para>

          <itemizedlist>
            <listitem>
              <para>In WinMerge, click the <guibutton>Options</guibutton> button
              (or click <menuchoice>
                  <guimenu>Edit</guimenu>

                  <guimenuitem>Options</guimenuitem>
                </menuchoice>). In the Archive Support page, enable the
              <guilabel>Detect archive type from file signature</guilabel>
              option</para>
            </listitem>
          </itemizedlist>
        </answer>
      </qandaentry>

      <qandaentry>
        <question>
          <para>Why do large files sometimes show up as different in the Folder
          Compare window, but identical in the File Compare window?</para>
        </question>

        <answer>
          <para>This is because WinMerge always uses the <guilabel>Quick
          Contents</guilabel> file compare method for large files. This method
          enables WinMerge to compare large files more efficiently. To test if
          this is causing the behavior you're seeing, you can try raising the
          <guilabel>Quick Contents</guilabel> threshold for large files. See the
          discussion of this method in <xref linkend="Compare_dirs_starting" />
          to learn how.</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question>
          <para>When comparing multiple files from Windows Explorer, how can I control which file appears on the left side?<indexterm>
              <primary>Windows Explorer</primary>
              <secondary>file selection order</secondary>
            </indexterm></para>
        </question>

        <answer>
          <para>When multiple files are selected in Windows Explorer, the file you right-click becomes the first (primary) item. The remaining items follow in the order they were selected. Therefore, to make a file appear on the left side in WinMerge, select multiple files and right-click the one you want to compare on the left.</para>
          <para>For more information about this Windows shell behavior, see: <ulink url="https://devblogs.microsoft.com/oldnewthing/20190409-00/?p=102406">The Old New Thing: How does Explorer determine which program to use to open a file if an explicit command is not provided?</ulink>.</para>
        </answer>
      </qandaentry>

    </qandaset>
  </section>

  <section>
    <title>File comparing</title>

    <qandaset>
      <qandaentry>
        <question>
          <para>Why do my files have all lines marked as different (colored),
          even though I know all the lines are not different?</para>
        </question>

        <answer>
          <para>Maybe your files have different line ending styles (for example,
          Windows and Unix). By default, WinMerge compares line ending styles.
          To disable it, click <menuchoice>
              <guimenu>Edit</guimenu>

              <guimenuitem>Options</guimenuitem>
            </menuchoice>. In the Compare page, enable (check) the option,
          <guilabel>Ignore carriage return differences</guilabel>.</para>
        </answer>
      </qandaentry>
    </qandaset>
  </section>

  <section>
    <title>Questions about editor</title>

    <qandaset>
      <qandaentry>
        <question>
          <para>I see question marks instead of letters in files.</para>
        </question>

        <answer>
          <para>This is what we call a <glossterm>lossy
          conversion</glossterm>.</para>
          <!--<para>For Unicode files (UCS-2, UTF-8), use <filename>WinMergeU.exe</filename>.</para>-->

          <para>For ANSI files, this is probably due to code-page problems. To
          troubleshoot, click <menuchoice>
              <guimenu>Edit</guimenu>

              <guimenuitem>Options</guimenuitem>
            </menuchoice>. Then in the Codepages page, see if the option
          <guilabel>Detect codepage info</guilabel> is checked. If it is,
          deselect the option, click <guibutton>OK</guibutton>, and see if that
          helps.</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question>
          <para>I cannot select proportional fonts for editor.</para>
        </question>

        <answer>
          <para>Unfortunately, WinMerge supports only non-proportional
          fonts.</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question>
          <para>What is <glossterm>delay of automatic rescan</glossterm>? Why it
          is needed?</para>
        </question>

        <answer>
          <para>When <guilabel>Automatic Rescan</guilabel> is enabled (in the
          Editor page of Options), WinMerge delays rescanning while you edit
          files. That is, no rescanning occurs until shortly after you stop
          typing. Without this delay, WinMerge would rescan after every typed
          character, making the editing process too slow. The delay especially
          improves editing bigger files, which can take several seconds to
          rescan.</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question>
          <para>Can I print files from the File panes in the Compare Files
          window?</para>
        </question>

        <answer>
          <para>Yes, there is basic printing support: click <menuchoice>
              <guimenu>File</guimenu>

              <guimenuitem>Print</guimenuitem>
            </menuchoice>.</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question>
          <para>Can I hide similar lines in a file comparison, so that only
          different lines are visible?</para>
        </question>

        <answer>
          <para>Yes, you can show only different lines by clicking <menuchoice>
              <guimenu>View</guimenu><guimenuitem>Diff Context</guimenuitem>
              <guimenuitem>0 lines</guimenuitem>
            </menuchoice>.</para>
        </answer>
      </qandaentry>
    </qandaset>
  </section>

  <section>
    <title>WinMerge as external compare or diff-tool</title>

    <qandaset>
      <qandaentry>
        <question>
          <para>I want WinMerge to close with a single <keycap>Esc</keycap>
          press after I'm done?</para>
        </question>

        <answer>
          <para>Open WinMerge from the command line, and include the
          <option>-e</option> switch.</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question>
          <para>I don't want to see the <guilabel>Files Are Identical</guilabel>
          message when I compare identical files, I just want WinMerge to
          quit.</para>
        </question>

        <answer>
          <para>Use the <option>-x</option> command line switch.</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question>
          <para>How can I avoid filling the Select Files or Folders dialog
          history lists with temporary paths?</para>
        </question>

        <answer>
          <para>Have your external program invoke WinMerge with the
          <option>/ub</option> option, which tells WinMerge to not add the files
          to the MRU.</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question>
          <para>But the program I'm using doesn't allow command line
          parameters!</para>
        </question>

        <answer>
          <para>Create a batch file that contains one of these lines (but not
          both):</para>

          <itemizedlist>
            <listitem>
              <screen>CALL "<replaceable>&lt;winmerge path&gt;\WinMerge</replaceable>" /e /u %1 %2 %3</screen>
            </listitem>

            <listitem>
              <screen>start "WinMerge" "<replaceable>&lt;winmerge path&gt;</replaceable>" /e /u %1 %2 %3</screen>
            </listitem>
          </itemizedlist>

          <para>Call this batch file from your program.</para>
        </answer>
      </qandaentry>
    </qandaset>
  </section>

  <section>
    <title>Archive support</title>

    <qandaset>
      <qandaentry>
        <question>
          <para>How can I open the Perry-style patch files that WinMerge
          developers use when submitting patches?<indexterm>
              <primary>patch files, Perry-style</primary>
            </indexterm></para>
        </question>

        <answer>
          <para>Perry-style patches are zip files containing original and
          changed files in different directories. WinMerge has internal support
          (surprise!) for handling these files: just launch a compare operation,
          selecting the zip file for both the left and right sides. WinMerge
          opens the contents of the zip file in a Folder Compare window,
          comparing the original and changed files.</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question>
          <para>Can WinMerge open archive files with non-standard
          file-extensions? (For example .jar files as zip-files)</para>
        </question>

        <answer>
          <para>Yes: click the <guibutton>Options</guibutton> button (or click
          <menuchoice>
              <guimenu>Edit</guimenu>

              <guimenuitem>Options</guimenuitem>
            </menuchoice>). In the Archive Support page, enable the
          <guilabel>Detect archive type from file signature</guilabel>
          option.</para>
        </answer>
      </qandaentry>
    </qandaset>
  </section>

  <section id="Faq_encoding">
    <title>Text encoding (codepages)<indexterm>
        <primary>ANSI</primary>

        <secondary>detecting in files using Notepad</secondary>
      </indexterm></title>

    <qandaset>
      <qandaentry>
        <question id="Faq_detectencoding">
          <para id="Faq_detectencoding_text">How do I tell if my file is coded
          in the local Windows (ANSI) codepage?</para>
        </question>

        <answer>
          <para>Open the file in Windows Notepad (for example, click <menuchoice>
              <guimenu>Start</guimenu>

              <guisubmenu>(All) Programs</guisubmenu>

              <guisubmenu>Accessories</guisubmenu>

              <guimenuitem>Notepad</guimenuitem>
            </menuchoice>). Click <menuchoice>
              <guimenu>File</guimenu>

              <guimenuitem>Save As</guimenuitem>
            </menuchoice>, and in the Save As dialog, scroll to the
          <guilabel>Encoding</guilabel> item at the dropdown list. The possible
          values include:</para>

          <itemizedlist>
            <listitem>
              <para><guilabel>ANSI</guilabel>: The file is apparently in the
              local Windows codepage. If the file is entirely in English and
              normal punctuation, then the file is also in ASCII.</para>
            </listitem>

            <listitem>
              <para><guilabel>Unicode</guilabel>: The file is probably in the
              default Windows Unicode encoding, UCS-2LE.</para>
            </listitem>

            <listitem>
              <para><guilabel>UTF-8</guilabel>: The file is in the
              cross-platform Unicode encoding, UTF-8.</para>
            </listitem>

            <listitem>
              <para><guilabel>Unicode big endian</guilabel>: The file is in a
              different Unicode encoding that is little used or supported in
              Windows, probably UCS-2BE.</para>
            </listitem>
          </itemizedlist>
        </answer>
      </qandaentry>
    </qandaset>
  </section>

  <section>
    <title>Patch files<indexterm>
        <primary>patch files</primary>

        <secondary>creating with diffutils</secondary>
      </indexterm><indexterm>
        <primary>diffutils</primary>

        <secondary>WinMerge patches compatible with</secondary>
      </indexterm></title>

    <qandaset>
      <qandaentry>
        <question>
          <para>Is there way to create patch files from the command line?</para>
        </question>

        <answer>
          <para>No. It might be added in later versions. Until then, you can use
          the Win32 port of <filename>diffutils</filename>. The latest version
          of <filename>diffutils</filename> (and patch) can be downloaded from
          <application>the SourceForge GnuWin32</application> project page:
          <ulink url="https://sourceforge.net/projects/gnuwin32/">
          https://sourceforge.net/projects/gnuwin32</ulink>.</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question>
          <para>Can patches be applied using WinMerge?</para>
        </question>

        <answer>
          <para>You can apply patches using the experimental plugin ApplyPatch.sct.
          The extensions of patches supported by the plugin are .diff or .patch.
          </para>
        </answer>
      </qandaentry>
    </qandaset>
    <para></para>
  </section>
</article>
