| Summary: | app-portage/eix: doesn't support escapes in make.conf | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Michał Górny <mgorny> |
| Component: | Current packages | Assignee: | Martin Väth <martin> |
| Status: | RESOLVED FIXED | ||
| Severity: | minor | CC: | darkside |
| Priority: | High | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: | Patch adjusting the config file reading to match Portage | ||
|
Description
Michał Górny
2010-04-24 11:58:13 UTC
Can you append a reference where this is suggested? From what I know you should use a space or a (real) newline as a separator. Moreover, it seems to be very strange how portage handles escapes: "path1\npath2" seems to be interpreted as "path1 path2" Strangely, "path1\\npath2" also seems to be interpreted the same way, but "path1\\\npath2" seems to be interpreted as 'path1\npath2'. In other words: Escaping of escapes does not work in the "standard" manner. Unless this strange behavior is documented somewhere, I do not think that I will implement such crazy rules (which might depend wildly on the portage version) in eix. I've discussed the issue with Zac, and portage is supposed to work that way. It is imitating 'echo -e' in bash, and yes, it's ugly and braindead. I am working on a patch right now, it should be ready in 1hr. Created attachment 229005 [details, diff]
Patch adjusting the config file reading to match Portage
Here it is. I think I got everything, including behaviour related to backslashes, newlines and variable expansion, exactly the same way Portage does. I've tested most of with with amounts of backslashes up to 9, and I'm pretty sure it works.
However, I don't know whether I've added enough EOF case handling.
Thanks for the patch. It cannot direcly go into varsreaders.cc, because that function is also used to interpret ebuild scripts and files like eixrc in which backslashes should work the usual way. So I will also have to include a new flag to make the patch active only for portage's config files. The modification (with new flag and several new states) is now in eix' svn trunk (>=eix-0.20.5). (In reply to comment #5) > The modification (with new flag and several new states) is now in > eix' svn trunk (>=eix-0.20.5). > in tree |