[PATCH] D46511: [llvm-rc] Don't strictly require quotes around external file names

Adrian McCarthy via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 7 11:38:11 PDT 2018


amccarth added inline comments.


================
Comment at: test/tools/llvm-rc/Inputs/include.rc:3
+// Test including filenames without quotes.
+foo BITMAP bitmap.bmp
----------------
mstorsjo wrote:
> amccarth wrote:
> > mstorsjo wrote:
> > > zturner wrote:
> > > > Shouldn't we test both things?
> > > I would have guessed that there are other tests that successfully include files, but otoh the icon/cursor test is still missing its inputs. I'll update this to make it test both.
> > And perhaps some of the more interesting resource types, like RCDATA, that can take either a filename or a block of raw data.
> Well RCDATA isn't supported at all yet.
OK, but it looks like user-defined types are, and they work the same way as RCDATA.


================
Comment at: tools/llvm-rc/ResourceScriptToken.cpp:290
   const char CurChar = Data[Pos];
-  return std::isalnum(CurChar) || CurChar == '_';
+  return std::isalnum(CurChar) || CurChar == '_' || CurChar == '.' || CurChar == '/';
 }
----------------
mstorsjo wrote:
> amccarth wrote:
> > What about backslashes?
> > 
> > ```
> > 101 BITMAP "assets\foo.bmp"
> > ```
> > 
> > 
> I'm not entirely sure how that should be handled, since backslash also is an escape char (and maybe the escape behaviour is different outisde of quotes). I think I'd just ignore backslashes for now...
My example was bad because I shouldn't have had the quotation marks.

```
101 BITMAP assets\foo.bmp
```

Is backslash an escape character outside of strings?  The above line works in Microsoft's rc.exe, and I'm sure I've worked with code that specifies paths like that in resource scripts.


Repository:
  rL LLVM

https://reviews.llvm.org/D46511





More information about the llvm-commits mailing list