Skip to content

Support for include_next #7

Description

@ochafik

Although jcpp parses #include_next, it doesn't seem to skip the current file's directory.

See http://gcc.gnu.org/onlinedocs/cpp/Wrapper-Headers.html

Here's a fix from JNAerator's fork:

ochafik@823a020

Activity

  1. shevek commented on Dec 28, 2013

    @shevek
    Owner

    That's because I lashed this all up in the mid '90s and didn't read the documentation! I did pretty well, considering! :-)

  2. shevek commented on Dec 28, 2013

    @shevek
    Owner

    I've written enough virtual filesystem handling code in my life to be cautious and nervous about implementing this properly. As I see it, the linked patch prevents reincluding a file which was relative to the parent, but does not correctly implement include_next if both the first and the next header are in the system include directories, nor can it handle a chain of more than one 'next' inclusion.

    I'll have to think about this somewhat more, but I'm reluctant to take the patch into trunk with those weaknesses. Fundamentally, the weakness is in the vfs code, because it doesn't really allow one to identify a file; following which one would have to walk the Source stack and ensure that the proposed source (VirtualFile) was not on the stack already, which would require a change to Source ("Are you this VF?") as well.

    I'll let that settle into our brains for a bit before I come back to it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions