GithubHelp home page GithubHelp logo

Comments (1)

wsfulton avatar wsfulton commented on July 28, 2024

The proposed fix in #10 uses test -e to see if the 'option' is a path or a file and then handle appropriately. This may not work if the file does not exist and a file/path was actually intended. I've got grave doubts about trying to generically interpret forward slash options to try and do the right thing. It's a can of worms I don't want to open up. The Unix-like operating systems already have ways to deal with paths and it's best for users to utilise that support, for example, the cygpath tool, mixed paths (such as c:/folder/file) or MSYS's automated Posix path conversions.

Instead, I propose removing the code that slightly modifies an option beginning '/'. Currently these are replaced by the system specific separator (/ on cygwin and - on MSYS based systems). I propose all options beginning / are completely unmodified.

cccl's goal is to be simple and lightweight and the proposal fits in with that. There is effectively no change on cygwin based systems. However, not on MSYS based systems.

On MSYS based systems, the upside is:

  • Full support is gained for using absolute (full) posix paths, for example cccl /c/code/main.cpp will now correctly be passed on as cl /c/code/main.cpp. Note that MSYS converts/corrects the /c/code/main.cpp to c:\code\main.cpp before passing to the cl executable.
  • Fit in and work with MSYS and its path handling as well as its forward slash option handling.

On MSYS based systems, the downside is:

  • Change in behaviour when passing / to cccl. Currently options starting with / get converted to the option starting with -. cccl is a Unix cc emulator and so this is not likely to be something that is used much and / options are fraught with problems on MSYS based systems, presumably largely avoided. They largely work when using // instead as MSYS will translate this back to just /. These cccl / options were always intended to be passed through to cl unmodified and on MSYS // is what is expected to be used instead. In summary, anyone currently passing options beginning / to cccl will have to change them to begin with - or //.

from cccl.

Related Issues (10)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.