title: MSYS2: How to disable automatic translation of pathname to drive letter?
body: <p>I'm facing an issue when testing a C program compiled with mingw in the MSYS2 shell: I wrote a command line parser that accepts options according to the windows convention (starting with <code>/</code>). If I call my program like this to generate an output file:</p>
  
  <pre><code>./example.exe /o test
  </code></pre>
  
  <p>What ends up in <code>argv[1]</code> is actually <code>O:/</code>. It works fine when testing from a console window running <code>CMD.EXE</code>. This truly minimal program demonstrates the behavior:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int main(int argc, char **argv)
  {
      if (argc &gt; 1)
      {
          puts(argv[1]);
      }
      return 0;
  }
  </code></pre>
  
  <pre class="lang-none prettyprint-override"><code>$ ./example.exe /o
  O:/
  </code></pre>
  
  <p>So I guess this is the MSYS2 shell trying to be helpful and replacing something that looks like a one-letter path below root into a drive-letter syntax. Is there a way to disable this behavior? It's a bit of a hassle to always launch <code>CMD.EXE</code> for testing.</p>