mustache.java icon indicating copy to clipboard operation
mustache.java copied to clipboard

PartialCode dir is looking for last hard-coded forward-slash in Windows OS

Open PietroIaia opened this issue 2 years ago • 1 comments

At constructor of PartialCode.java, in line 23, the slash it looks for is hard-coded to be forward-slash (Used everywhere except Windows):

protected PartialCode(TemplateContext tc, DefaultMustacheFactory df, Mustache mustache, String type, String variable) {
    super(tc, df, mustache, variable, type);

    // Use the  name of the parent to get the name of the partial
    String file = tc.file();
    int dotindex = file.lastIndexOf(".");
    extension = dotindex == -1 ? "" : file.substring(dotindex);
    int slashindex = file.lastIndexOf("/");    <------------------------------ line 23
    dir = file.substring(0, slashindex + 1);
    recrusionLimit = df.getRecursionLimit();
}

When running on Windows OS, the file's path is usually stored using back-slashes and .lastIndexOf("/") will fail to find the correct index.

PietroIaia avatar Oct 04 '23 16:10 PietroIaia

Inside the templates you should only use forward slashes (to make them work cross platform). Is there another way that this gets populated such that a backslash might appear?

spullara avatar Oct 09 '23 18:10 spullara