--- Log opened Fri Oct 06 00:00:23 2017 20171006 00:08:19-!- sigurdfd [~SigurdFD@dynamic-acs-72-23-110-196.zoominternet.net] has quit [] 20171006 00:32:50< vultraz> is boost::copy functionally different from std::copy? 20171006 00:34:23< vultraz> seems like it's more similar to std::transform? 20171006 00:42:15-!- Ravana_ [~Ravana@unaffiliated/ravana/x-2327071] has quit [Read error: Connection reset by peer] 20171006 00:43:19< vultraz> celticminstrel: would these be equivalent? https://pastebin.com/287e1pZz 20171006 00:58:19< celticminstrel> Of course they're different. Why would boost duplicate a std function? 20171006 00:59:28< celticminstrel> Yeah, I think if you're trying to do away with boost::copy the closest std equivalent here is transform. 20171006 00:59:53< celticminstrel> I guess the nice thing about boost::copy is being able to pipe your iterators through adaptors and filters and stuff. 20171006 01:00:47< vultraz> yeah, we have some cases where it seems simplest to keep the copy 20171006 01:00:49< celticminstrel> I don't think your std::transform line is right though. 20171006 01:00:57< vultraz> the boost::copy* 20171006 01:01:00< celticminstrel> It's returning a functor. 20171006 01:01:15< celticminstrel> It shouldn't compile, in particular. 20171006 01:01:38< celticminstrel> Unless I'm missing something.? 20171006 01:01:42< vultraz> a functor? modevents_entry is a struct 20171006 01:01:52< celticminstrel> Oh, I was missing the removed _for in your transform. 20171006 01:04:08-!- fabi [~fabi@2a02:810c:c840:2e65:b11f:6e35:8308:ae2a] has joined #wesnoth-dev 20171006 01:04:08-!- fabi [~fabi@2a02:810c:c840:2e65:b11f:6e35:8308:ae2a] has quit [Changing host] 20171006 01:04:08-!- fabi [~fabi@wesnoth/developer/fendrin] has joined #wesnoth-dev 20171006 01:08:10-!- fabi_ [~fabi@2a02:810c:c840:2e65:e9db:6011:3296:372e] has quit [Ping timeout: 264 seconds] 20171006 01:10:05-!- irker404 [~irker@uruz.ai0867.net] has joined #wesnoth-dev 20171006 01:10:05< irker404> wesnoth: Charles Dang wesnoth:master 15d09dff07fb / src/saved_game.cpp: Saved Game: formatting cleanup https://github.com/wesnoth/wesnoth/commit/15d09dff07fb63a05f3ded06b618b640515abc6b 20171006 01:10:08< irker404> wesnoth: Charles Dang wesnoth:master de576cd83a85 / src/saved_game.cpp: Saved Game: replaced some uses of boost::copy with simpler std::transform equiva https://github.com/wesnoth/wesnoth/commit/de576cd83a8553ee49560a4ed683d28a0c044efb 20171006 01:23:06< Necrosporus> vultraz, do you have any opinions about unicode in add-ons filenames? Pros: UMC authors will be able whatever they want, for example call file schütze.cfg. Cons: non-ascii in filenames cause problems in many places (like default zip handling on windows and default fat handling on linux). Also since wesnoth is meant to be not limited to specific language it's better for filenames (and everything else except translatible strings) to 20171006 01:23:06< Necrosporus> be in English 20171006 01:23:43< vultraz> oh come ON 20171006 01:23:53< vultraz> WHY IS THIS A THING WE'RE DISCUSSING 20171006 01:24:13< Necrosporus> I don't know 20171006 01:24:15< vultraz> you've listed enough reason why it should not be so 20171006 01:24:21< vultraz> so why are you bringing it up 20171006 01:24:30< Necrosporus> Well, Jyrki disagrees 20171006 01:25:19< vultraz> I don't care if someone wants to name their files (╯°□°)╯︵ ┻━┻.cfg WE DON'T NEED TO SUPPORT IT 20171006 01:25:58< celticminstrel> That's not the point of Unicode support at all. 20171006 01:26:06< Necrosporus> Agree. What about special characters? '() & ,[] 20171006 01:26:07< shadowm> I hope you two realize that save files already have names that may contain non-ASCII characters depending on the translation in use OR the characters found in the sceneario title even in the English original. 20171006 01:26:38< shadowm> I'm not saying anything, I'm just pointing out that this is a thing that hasn't stopped being true or anything. 20171006 01:26:45-!- TheJJ [~rofl@ipbcc36896.dynamic.kabel-deutschland.de] has quit [Read error: Connection reset by peer] 20171006 01:26:53< Necrosporus> Save files is different beast, though perhaps it would be better to have them always in ascii as well and translate only in UI 20171006 01:27:02< shadowm> Did you read the last part? 20171006 01:27:19< shadowm> > OR the characters found in the scenario title even in the English original. 20171006 01:27:27< Necrosporus> yes, I know 20171006 01:27:52-!- TheJJ [~rofl@ipbcc36896.dynamic.kabel-deutschland.de] has joined #wesnoth-dev 20171006 01:28:03< irker404> wesnoth: Charles Dang wesnoth:master 85179772a6f1 / src/ (8 files in 6 dirs): Use config::clear over assignment to default-constructed object https://github.com/wesnoth/wesnoth/commit/85179772a6f1c969c638c536797428d39ff8b4f7 20171006 01:28:50< shadowm> Also, who cares about zip archives exactly? 20171006 01:28:57< shadowm> Because Wesnoth cannot and does not use those. 20171006 01:29:13< celticminstrel> The point of Unicode support is to allow names such as "La_forêt_des_voleurs.cfg" or "Лес_воров.cfg" or "泥棒の森.cfg". (Disclaimer: these were produced by Google Translate and as such might not be accurate, but the point still stands.) 20171006 01:30:00< celticminstrel> shadowm: While what you say about saves is true, is it really relevant for the addon server? 20171006 01:30:03< vultraz> good luck having anyone know what those files mean if they don't speak the languages 20171006 01:30:15< celticminstrel> Why should people need to know what those files mean? 20171006 01:30:27< Necrosporus> because they might be browsing source code 20171006 01:30:34< vultraz> because people always browse other people's addons 20171006 01:30:40< celticminstrel> I don't think this requires them to know what the filenames mean. 20171006 01:30:42< shadowm> I already said that I find this pillow-padding to be excessive. 20171006 01:30:45< vultraz> or other people take over maintenance 20171006 01:31:01< celticminstrel> Admittedly it would be helpful for them to know, but they could totally figure out what they mean simply by browsing the source. 20171006 01:31:04< vultraz> or other people may collaborate 20171006 01:31:18< celticminstrel> "Oh, this is included from here and contains unit definitions. It's probably roughly equivalent to unts.cfg." 20171006 01:31:47 * celticminstrel isn't sure what shadowm means by pillow-padding. 20171006 01:31:49< Necrosporus> People are already required to know some English to write WML 20171006 01:31:50< shadowm> Everyone can agree that anything Windows can't handle (which is a superset of what POSIX platforms can't) should be blacklisted. 20171006 01:31:57< Necrosporus> So they can name filenames in english as well 20171006 01:32:24< Necrosporus> Controversial characters are '() & ,[] 20171006 01:32:30< shadowm> Which Windows can handle. 20171006 01:32:31< vultraz> Imaging the confusion see {add-ons/my_addon/macros/泥棒の森.cfg} in some WML 20171006 01:32:33< shadowm> POSIX can handle those as well. 20171006 01:32:44< celticminstrel> Why is that confusing? 20171006 01:33:12< celticminstrel> As long as the preprocessor can handle it, why forbid it? 20171006 01:33:13< shadowm> It's command shellsthat tend to have "problems" with those which can be easily avoided. 20171006 01:33:24< celticminstrel> Right, and command shells are largely irrelevant here. 20171006 01:33:25< vultraz> alright, i suppose one can just go look for the file but still 20171006 01:33:27< vultraz> this is overkill 20171006 01:33:43< celticminstrel> Okay, so maybe some people work from a shell when editing their scenarios, but... they're probably in the minority. 20171006 01:33:57< Necrosporus> Problem with special chars also comes from WML tools 20171006 01:34:40< shadowm> (Also, I can't help but be a little irritated when people who have abandoned bigger responsibilities before only become active to promote changes that do not really move anything forward.) 20171006 01:34:59< shadowm> (That's referring to AI, not anyone else.) 20171006 01:36:16< Necrosporus> Well, he did also fix a bug in wmlscope 20171006 01:36:24< Necrosporus> recently 20171006 01:37:18< celticminstrel> I personally think a blacklist of characters should be sufficient. Just forbid all the characters Windows doesn't allow, plus tilde and space. 20171006 01:37:34< Necrosporus> Why Windows? 20171006 01:37:36< celticminstrel> (I'm not actually in favour of forbidding space, mind you, but I can live with it.) 20171006 01:37:44< shadowm> What's wrong with tildes? 20171006 01:37:44< celticminstrel> Because Windows forbids more characters than Linux. 20171006 01:37:52< celticminstrel> Tildes are used by IPFs. 20171006 01:37:54< vultraz> Because Windows is the most used OS 20171006 01:38:04< celticminstrel> That too, but that's a secondary consideration here. 20171006 01:38:08< shadowm> Oh, right, and by the WML preprocessor. 20171006 01:38:13< celticminstrel> Huh? 20171006 01:38:15< shadowm> And also by wesnoth.dofile. 20171006 01:38:31< celticminstrel> Oh right, in the ~add-ons prefix. 20171006 01:39:03< Necrosporus> Also $[,] have use in WML 20171006 01:39:11< shadowm> Technically, it's just the leading ~. It doesn't *have* to be followed by "add-ons", but that's the only path that makes sense with the current design because there's nothing else in the /data dir most of the time. 20171006 01:39:17< shadowm> Necrosporus I already said this. 20171006 01:39:17< Necrosporus> in particular [,~] is used for range expansion 20171006 01:39:20< shadowm> Not all WML is event code. 20171006 01:39:24< shadowm> Not all WML is animation code. 20171006 01:39:28< celticminstrel> I don't think the use of $[.] in WML is super-relevant to filenames. 20171006 01:39:39< shadowm> Also, not all WML files have to be addressed by name. 20171006 01:39:42< shadowm> (Shocking.) 20171006 01:40:01< celticminstrel> I can agree that using [,] in image filenames is not ideal due to the animation syntax. Whether that's a reason to forbid them outright is less clear. 20171006 01:40:56< shadowm> Anyway, if someone wants an easy PR to tack on to the rest as an afterthought, consider also blacklisting the default reserved DOS device names Windows users. 20171006 01:40:59< shadowm> uses 20171006 01:41:05< Necrosporus> If they are not forbidden than some UMC authors can use them and then get surprise errors in their scenarios 20171006 01:41:17< celticminstrel> It seems fair to blacklist the DOS device names, yeah. 20171006 01:41:18< shadowm> CON, NUL, AUX, PRN, COM[1-4], LPT[1-4] and MAILSLOT. 20171006 01:41:30< celticminstrel> Plus those with any file extension. 20171006 01:41:35< celticminstrel> eg CON.txt 20171006 01:41:40< celticminstrel> Also case-insensitive. 20171006 01:41:45< shadowm> They can't be on either side of the dot. 20171006 01:41:49< celticminstrel> Ah. 20171006 01:41:51< Necrosporus> I'm not sure. Will nul.cfg fail to load ? 20171006 01:42:01< shadowm> It will not. 20171006 01:42:03< celticminstrel> Though COM4 can't even fit on the right side of the dot. 20171006 01:42:11< celticminstrel> Necrosporus: It would load as an empty file presumably. 20171006 01:42:16< shadowm> Exactly. 20171006 01:42:17 * celticminstrel assumes it's the DOS equivalent of /dev/null 20171006 01:42:22< shadowm> Also celticminstrel, yes, COM4 does fit. 20171006 01:42:33< celticminstrel> Not in DOS 8.3 format though? 20171006 01:42:39< Necrosporus> Why not to test it? 20171006 01:42:41< shadowm> Any Windows version with LFN support can have more than 3 characters on either side of the dot. 20171006 01:42:59< celticminstrel> Actually wait, if you try to open /dev/null, wouldn't the program hang because it has no end? 20171006 01:43:07< Necrosporus> Nope 20171006 01:43:17< Necrosporus> it will read as zero-length byte 20171006 01:43:18< shadowm> Okay, actually, it's okay on the right side of the dot, just checked. 20171006 01:43:43< shadowm> But you definitely can't have a file named .foo. 20171006 01:43:45< celticminstrel> So /dev/null effectively yields EOF on all reads? 20171006 01:43:46< Necrosporus> /dev/zero is other thing 20171006 01:43:54< Necrosporus> yes 20171006 01:44:55< Necrosporus> I think there is no need to make code and filename rules too complex 20171006 01:45:17< Necrosporus> Simple whitelist + disallowing trailing dot and other weird dot combos should be enough 20171006 01:45:22< celticminstrel> Personally I think "block Windows-forbidden stuff" is about as simple as you can get. 20171006 01:45:34< celticminstrel> Okay, so it might be a little complicated in implementation, but... 20171006 01:45:35< Necrosporus> Why focus on windows 20171006 01:45:47< Necrosporus> just whitelist everything which definitely don't have problems 20171006 01:45:49< celticminstrel> Because Windows forbids a lot of stuff, while Linux barely forbids anything. 20171006 01:45:53< shadowm> (And to rectify that list, MAILSLOT is not reserved. But CONIN$ and CONOUT$ are.) 20171006 01:46:41< celticminstrel> (Linux should really forbid more stuff, but that's a separate issue.) 20171006 01:47:26< Necrosporus> Well, it would be as hard to convince Linus to forbid stuff as it is to convince shadowm, if not harder 20171006 01:47:44< celticminstrel> I dunno about that? 20171006 01:47:56< shadowm> Linus isn't relevant for this. 20171006 01:47:57< celticminstrel> There are very good arguments for forbidding control characters in filenames. 20171006 01:48:20< shadowm> The people who are actually relevant would disagree simply on the golden rule of not breaking userspace. 20171006 01:48:22< celticminstrel> It's frankly incredible that Linux allows them at all IMO. 20171006 01:48:24< Necrosporus> Anyway recently shell handling of weird filenames was improved, options such as -print0 exist in most utils 20171006 01:48:26< shadowm> *on the basis of 20171006 01:48:39< shadowm> Why do you keep bringing back the shell argument? 20171006 01:48:57< celticminstrel> The arguments against control characters in filenames include security issues. 20171006 01:49:00< shadowm> Shells have "problems" with whitespace too and I can handle files with namespace in my daily life without any problems. 20171006 01:49:13< shadowm> It just takes some actual understanding of how to operate your shell. 20171006 01:49:16< Necrosporus> Because shell is the main interface which technical people use 20171006 01:49:29< Necrosporus> I for one don't even have a GUI filemananger installed at all 20171006 01:49:34< shadowm> Hi. I'm a technical people. 20171006 01:49:38< shadowm> I can handle whitespace in my filenames. 20171006 01:49:51< celticminstrel> Handling whitespace in filenames is trivial. 20171006 01:49:57< celticminstrel> Some\ long\ filename.cfg 20171006 01:50:01< celticminstrel> Or "Some long filename.cfg" 20171006 01:50:05< Necrosporus> Unless they are trailing or leading 20171006 01:50:08< celticminstrel> Or 'Some long filename.cfg' 20171006 01:50:16< shadowm> It applies to trailing and leading as well. 20171006 01:50:18< Necrosporus> "file with whitespaces " 20171006 01:50:29< celticminstrel> What I just said applies to any whitespace, not just internal whitespace. 20171006 01:50:42< Necrosporus> it depends how you process files 20171006 01:50:54< shadowm> If you are processing files wrong, you're processing files wrong. 20171006 01:51:00< celticminstrel> Leading and trailing whitespace do present additional problems, true. 20171006 01:51:01< Necrosporus> if you read a list with read one per line then 20171006 01:51:09< shadowm> It's not Wesnoth's mission to teach you how to do it right. 20171006 01:51:16< celticminstrel> Well, that's wrong because filenames can contain newlines. 20171006 01:51:18< shadowm> It's a game, not a babysitter. 20171006 01:52:35< shadowm> (I know this thing will be approved and pushed eventually regardless, but it's very frustrating to watch the broken arguments and circular logic being used to justify it.) 20171006 01:52:41< Necrosporus> So the main problem with all that is that even though filenames could be passed through pipe as null-delimited list, shell script becomes more complex 20171006 01:52:44< Necrosporus> That's all 20171006 01:52:52< celticminstrel> I'll continue to push against it though. 20171006 01:53:07< celticminstrel> Null-delimited lists are quite unfriendly IMO. 20171006 01:53:39< celticminstrel> I'm of the opinion that non-printable characters should be entirely forbidden in filenames. (I don't count space as a non-printable character, just FTR.) 20171006 01:53:55< Necrosporus> What about nbsp? 20171006 01:54:06< celticminstrel> I have no problem with nbsp either. 20171006 01:54:11< shadowm> Non-breaking space is printable just like regular space. 20171006 01:54:28< shadowm> It's zero-width space and several other members of the Space household that aren't printable. 20171006 01:54:39< celticminstrel> Sure. 20171006 01:54:50< celticminstrel> I guess ZWS and co can't really be called printable. 20171006 01:56:47< shadowm> I just find all this really absurd because I am the one person who got hit by the whitespace in filenames issue long before someone else decided to ban them, because I inherited someone else's broken script and took me a while to realize that what it was doing was wrong. 20171006 01:56:57< shadowm> And you know how I dealt with the issue? I fixed the script. 20171006 01:57:09< shadowm> I didn't alter the add-ons server's behaviour to suit my laziness. 20171006 01:57:26< celticminstrel> I'm in favour of re-allowing spaces on the addons server. 20171006 01:58:45< Necrosporus> shadowm, did you fix the script before or after spaces were banned? 20171006 01:58:57< shadowm> I just said before. 20171006 01:59:06< Necrosporus> and they were banned anyway 20171006 01:59:08< Necrosporus> hmph 20171006 01:59:30< celticminstrel> The whole reason for the addon server rules (as I see it) is interoperability between systems. 20171006 01:59:42< celticminstrel> With that reason in hand, there's no reason to forbid anything that would be allowed on Windows. 20171006 01:59:54< Necrosporus> Why not MacOS? 20171006 02:00:01< Necrosporus> IT has its own rules too 20171006 02:00:13< celticminstrel> Because everything allowed on Windows (with the possible exception of some edge cases) is allowed on MacOS? 20171006 02:00:30< Necrosporus> For example, extended latin chars have to be decomposed to be stored in HFS 20171006 02:00:45< celticminstrel> Okay, that's a fair point. 20171006 02:00:52< Necrosporus> Like è stored as e + combining ` 20171006 02:01:01< celticminstrel> Yeah, I understood already. 20171006 02:01:10< shadowm> Ew. 20171006 02:01:18< celticminstrel> ^ 20171006 02:01:21< shadowm> Wait, is that HFS+ or HFS? 20171006 02:01:27< Necrosporus> Will they be composed back when Mac writes to FAT? 20171006 02:01:30< celticminstrel> Probably HFS+ 20171006 02:01:32< Necrosporus> I think both 20171006 02:01:43< celticminstrel> Does HFS even support Unicode? 20171006 02:01:51< Necrosporus> then HFS+ 20171006 02:01:52< celticminstrel> Isn't it HFS that limits names to 31 characters? 20171006 02:02:11< celticminstrel> I assume Mac would indeed write them composed on a FAT32 drive. 20171006 02:02:22< celticminstrel> I don't know any way to test it though. 20171006 02:02:42< Necrosporus> And if mac wesnoth uploads them will it compose them back? 20171006 02:03:08< shadowm> Loop-mount a FAT32 filesystem from a file, write funny names into it, then check the on-file structure of the filesystem. 20171006 02:03:25< shadowm> The last point isn't trivial, I know. 20171006 02:04:06< Necrosporus> I did that with GNU/Linux and have found out that FAT is mounted in iso8859-1 by default 20171006 02:04:20< Necrosporus> While the rest of userspace assumes utf-8 20171006 02:04:27 * celticminstrel wishes people would stop saying FAT when they (presumably) mean FAT32. 20171006 02:04:34< Necrosporus> vfat 20171006 02:04:48< shadowm> They mean all the filesystems the Linux vfat module handles. 20171006 02:04:48< Necrosporus> It applies to both FAT16 and FAT32 20171006 02:04:51< shadowm> FAT12, FAT16, FAT32. 20171006 02:05:19< Necrosporus> I didn't test fat12, but probably that too 20171006 02:05:22< shadowm> Also, it can mount them with any encoding by default. 20171006 02:05:25< celticminstrel> Do people even use FAT12 and FAT16 anymore? 20171006 02:05:47< Necrosporus> Windows creates FAT16 on certain volume sizes by default 20171006 02:05:53< shadowm> For example, I noticed years ago that Debian's stock kernels used UTF-8 where Ubuntu's used ISO 8859-1. 20171006 02:05:54< Necrosporus> I guess <502M 20171006 02:06:14-!- aidanhs [~aidanhs@81.4.110.234] has quit [Ping timeout: 255 seconds] 20171006 02:06:23< Necrosporus> Anyway in order to correctly handle LFN, utf8 mount option should be supplied 20171006 02:06:35< shadowm> It just depends on who you ask and at what particular time (i.e. package version). 20171006 02:06:41-!- pydsigner [~pydsigner@unaffiliated/pydsigner] has quit [Ping timeout: 255 seconds] 20171006 02:07:14< shadowm> Not... really. 20171006 02:07:31< Necrosporus> or iocharset=utf8 or both 20171006 02:07:41< shadowm> I don't know about any LFN specifics, but UTF-8 used to cause the filesystem to be handled case-sensitively until an additional option was introduced. 20171006 02:08:07< Necrosporus> This option is utf8 (just utf8) 20171006 02:08:08< shadowm> Which used to kind of break FAT's intended semantics. 20171006 02:08:12-!- senkwich [~senkwich@cpe-24-28-70-56.austin.res.rr.com] has quit [Ping timeout: 260 seconds] 20171006 02:08:22< shadowm> That option was introduced less than 2 years ago somehow. 20171006 02:08:32< Necrosporus> Nope 20171006 02:08:33< shadowm> The filesystem's been around for decades. 20171006 02:08:39< Necrosporus> It was introduced in 2.5.0 20171006 02:08:49< Necrosporus> However 20171006 02:08:57< shadowm> iocharset then? 20171006 02:09:14< Necrosporus> In 4.6 a new config option was introduced, which allows to use "utf8" by default 20171006 02:09:25< Necrosporus> In may 2016 or something 20171006 02:09:36< shadowm> That's what I'm thinking of then. 20171006 02:09:49< Necrosporus> but utf8 itself (however disabled by default) was in 2.5.0 already 20171006 02:10:09< shadowm> The kernel's defaults mean nothing, by the way. 20171006 02:10:34< shadowm> Again, distributions have their own ideas, and I've seen that Ubuntu's in particular are a bit eccentric at times. 20171006 02:10:39-!- senkwich [~senkwich@cpe-24-28-70-56.austin.res.rr.com] has joined #wesnoth-dev 20171006 02:10:42< Necrosporus> Most distros inherit them when distribution kernels are built 20171006 02:11:03-!- fabi_ [~fabi@2a02:810c:c840:2e65:f9bf:c869:881:1a1c] has joined #wesnoth-dev 20171006 02:11:07< Necrosporus> Fedora uses fat_iocharset default "ascii" 20171006 02:11:42-!- higgins` [~higgins@68.ip-149-56-14.net] has joined #wesnoth-dev 20171006 02:11:47< Necrosporus> Which means that files mounted by simply "mount /dev/sdb /mnt" without options will have any non-ascii chars displayed as ??? 20171006 02:12:15< Necrosporus> But if you use "mount /dev/sdb /mnt -o utf8" they will be OK 20171006 02:12:38-!- higgins [~higgins@68.ip-149-56-14.net] has quit [Quit: Leaving] 20171006 02:12:38-!- ChipmunkV[m] [chipmunkvm@gateway/shell/matrix.org/x-qjwtdatzwvkawdxa] has quit [Ping timeout: 255 seconds] 20171006 02:12:38-!- new_one [~new_one@2604:a880:1:20::22e:d001] has quit [Ping timeout: 255 seconds] 20171006 02:12:54< Necrosporus> But if you use "mount /dev/sdb /mnt -o iocharset=utf8" they will also be OK, but perhaps filesystem will be case-sensitive (needs testing) 20171006 02:13:22-!- pydsigner [~pydsigner@unaffiliated/pydsigner] has joined #wesnoth-dev 20171006 02:13:23-!- aidanhs [~aidanhs@81.4.110.234] has joined #wesnoth-dev 20171006 02:13:34< Necrosporus> "mount /dev/sdb /mnt -o iocharset=utf8,utf8" should also work 20171006 02:14:49-!- fabi [~fabi@wesnoth/developer/fendrin] has quit [Ping timeout: 258 seconds] 20171006 02:15:05-!- new_one [~new_one@162.243.146.104] has joined #wesnoth-dev 20171006 02:15:12-!- senkwich [~senkwich@cpe-24-28-70-56.austin.res.rr.com] has quit [Ping timeout: 260 seconds] 20171006 02:17:10-!- ChipmunkV[m] [chipmunkvm@gateway/shell/matrix.org/x-xhnmcegtqwiwspqv] has joined #wesnoth-dev 20171006 02:17:43-!- senkwich [~senkwich@cpe-24-28-70-56.austin.res.rr.com] has joined #wesnoth-dev 20171006 02:20:45< celticminstrel> I have no idea what you're trying to get at here. 20171006 02:20:49-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Ping timeout: 248 seconds] 20171006 02:23:27-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20171006 02:24:45< Necrosporus> Just describing my recent findings 20171006 02:35:59-!- heirecka [~heirecka@exherbo/developer/heirecka] has quit [Ping timeout: 255 seconds] 20171006 02:38:23-!- heirecka [~heirecka@exherbo/developer/heirecka] has joined #wesnoth-dev 20171006 02:44:14-!- Gambit [~derek@wesnoth/developer/grickit] has quit [Quit: No Ping reply in 180 seconds.] 20171006 02:45:21-!- Gambit [~derek@wesnoth/developer/grickit] has joined #wesnoth-dev 20171006 03:15:45< vultraz> ceeeeeelllllmin 20171006 03:17:23< vultraz> what be meant by this: "game_launcher.obj : error LNK2001: unresolved external symbol "class std::basic_string,class std::allocator > __cdecl filesystem::base_name(class std::basic_string,class std::allocator > const &)" (?base_name@filesystem@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV23@@Z)" 20171006 03:17:36< vultraz> all i did was add a default argument to base_name.. 20171006 03:17:58< shadowm> Do you have an implementation of base_name() that actually takes all those arguments? 20171006 03:18:10< vultraz> yes 20171006 03:18:24< shadowm> Was the containing unit rebuilt? 20171006 03:19:07< vultraz> as far as I can tell 20171006 03:19:32-!- fabi [~fabi@2a02:810c:c840:2e65:d944:d615:c984:1c87] has joined #wesnoth-dev 20171006 03:19:40-!- fabi [~fabi@2a02:810c:c840:2e65:d944:d615:c984:1c87] has quit [Changing host] 20171006 03:19:41-!- fabi [~fabi@wesnoth/developer/fendrin] has joined #wesnoth-dev 20171006 03:20:02< celticminstrel> And it's declared with the exact same arguments in the header and in the source file? 20171006 03:20:19< celticminstrel> A missing const or & in one place can cause link errors. 20171006 03:20:25< celticminstrel> For example. 20171006 03:20:34< vultraz> yes, same 20171006 03:20:53< celticminstrel> const std::string& 20171006 03:20:56< celticminstrel> ? 20171006 03:21:08< vultraz> yes 20171006 03:21:50< celticminstrel> Well, you could try forcibly recompiling game_launcher.cpp, I guess. 20171006 03:21:56< celticminstrel> (Or just do a full rebuild.) 20171006 03:22:11< celticminstrel> Wait, you added that string argument? 20171006 03:22:49< vultraz> no, the bool argument 20171006 03:23:06< celticminstrel> There's no bool argument in that symbol. 20171006 03:23:12-!- fabi_ [~fabi@2a02:810c:c840:2e65:f9bf:c869:881:1a1c] has quit [Ping timeout: 246 seconds] 20171006 03:23:33< vultraz> but it's in the declaration :/ 20171006 03:23:34< celticminstrel> So that's the problem, I guess. Does game_launcher.cpp not include that header (directly or indirectly)? 20171006 03:23:46< celticminstrel> Or, wait... 20171006 03:23:47< vultraz> it does 20171006 03:24:00< celticminstrel> ...yeah, just add and delete a space in game_launcher and see if that fixes it. 20171006 03:24:23< vultraz> or use the right-click->compile menu but yeah that fixes it 20171006 03:24:28< celticminstrel> Yeah, that too. 20171006 03:24:35< celticminstrel> Or press Ctrl+F7 in MSVC. 20171006 03:24:40< vultraz> I am using MSVC 20171006 03:25:17< irker404> wesnoth: Charles Dang wesnoth:master b2fcc8d86231 / src/ (2 files in 2 dirs): Minor tweaks to user map/scenario default descriptions https://github.com/wesnoth/wesnoth/commit/b2fcc8d862316d6e3a94f1f6b0a53b94b9b42b5d 20171006 03:25:20< irker404> wesnoth: Charles Dang wesnoth:master 04175cddc6ad / src/ (filesystem.hpp filesystem_boost.cpp): Filesystem: added optional remove_extension parameter to base_name https://github.com/wesnoth/wesnoth/commit/04175cddc6ad05bdc5cf59be53c2ca1bd740e501 20171006 03:25:24< irker404> wesnoth: Charles Dang wesnoth:master 5d896eb6ba73 / src/editor/map/map_context.cpp: Editor: don't include file extension in default scenario id/name (fixes #1840) https://github.com/wesnoth/wesnoth/commit/5d896eb6ba734dc40926faeee48ff4c5aa96a4ba 20171006 03:30:22-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20171006 03:53:09< mattsc> celticminstrel: are you willing and have time (sometime) to look into adding a ‘hidden’ attribute to [ai] ? 20171006 03:53:51< celticminstrel> Maybe? 20171006 03:54:22< mattsc> How did I guess that I’d get an entirely non-commital answer? ;) 20171006 03:55:40< mattsc> Anyway, I’ll take that as not a ‘no’, so that’s good as far as I am concerned. 20171006 04:24:00-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Quit: mattsc] 20171006 04:27:58-!- fabi_ [~fabi@2a02:810c:c840:2e65:c132:8b35:f028:a021] has joined #wesnoth-dev 20171006 04:32:02-!- fabi [~fabi@wesnoth/developer/fendrin] has quit [Ping timeout: 255 seconds] 20171006 04:43:22-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20171006 05:05:09-!- JyrkiVesterinen [~JyrkiVest@85-23-197-3.bb.dnainternet.fi] has joined #wesnoth-dev 20171006 05:05:13< JyrkiVesterinen> 20171006 01:23:06< Necrosporus> vultraz, do you have any opinions about unicode in add-ons filenames? Pros: UMC authors will be able whatever they want, for example call file schütze.cfg. Cons: non-ascii in filenames cause problems in many places (like default zip handling on windows and default fat handling on linux). 20171006 05:05:16< JyrkiVesterinen> (cut) 20171006 05:05:28< JyrkiVesterinen> You're omitting the most important point: backwards compatibility. 20171006 05:05:38< JyrkiVesterinen> There are already add-ons that use Unicode in filenames. 20171006 05:06:14< JyrkiVesterinen> Sure, if we were making the initial implementation of the add-on server now, then disallowing Unicode in filenames would be a good idea. 20171006 05:06:25< JyrkiVesterinen> But we are not. We are making changes after-the-fact. 20171006 05:06:52< JyrkiVesterinen> And IMO, you can't implement stricter validation after-the-fact, barring extreme cases. 20171006 05:06:58< celticminstrel> Like the ? 20171006 05:07:12< JyrkiVesterinen> Exactly. 20171006 05:11:08< galegosimpatico> You have this Steam targeting thing. Go for ASCII and use that as a pretext? 20171006 05:11:37< JyrkiVesterinen> I don't understand what you're rying to say. 20171006 05:11:40< JyrkiVesterinen> *trying 20171006 05:12:33< galegosimpatico> I was thinking loudly. Gotta go catch up later. 20171006 05:18:39< JyrkiVesterinen> 20171006 01:48:20< shadowm> The people who are actually relevant would disagree simply on the golden rule of not breaking userspace. 20171006 05:18:46< JyrkiVesterinen> I wish we had the same rule. 20171006 05:18:50< JyrkiVesterinen> See: this discussion. 20171006 05:21:49< Necrosporus> JyrkiVesterinen, if we decided $[,] are legitimate characters for filenames, does it not mean that means for escaping them are necessarily (see my last comment last line)? 20171006 05:22:20< Necrosporus> What if you want to use progressive string for files which have [,] 20171006 05:25:02< JyrkiVesterinen> For them, I'm choosing option 4. 20171006 05:25:25< JyrkiVesterinen> Allow the characters in filenames, don't make the server check if filename contains such a character. 20171006 05:25:39< JyrkiVesterinen> But don't introduce new escaping rules either. 20171006 05:26:46< JyrkiVesterinen> I haven't checked, but you should already be able to refer to square brackets in filenames if you use << stronger quoting >>. 20171006 05:27:39< Necrosporus> And are you able to mix literal square brakets and progressive strings? 20171006 05:28:32< JyrkiVesterinen> What's a progressive string? 20171006 05:32:17< Necrosporus> https://wiki.wesnoth.org/AnimationWML 20171006 05:32:26< Necrosporus> [1~5] and like that 20171006 05:32:46< zookeeper> an animation thing that specifies a value shift over time, like alpha=0.0~1.0:200 or similar 20171006 05:32:54< zookeeper> assuming that's what you meant, anyway. 20171006 05:33:31< zookeeper> oh, you were talking about filenames only, i guess. nevermind. 20171006 05:35:23-!- fabi [~fabi@wesnoth/developer/fendrin] has joined #wesnoth-dev 20171006 05:35:31< JyrkiVesterinen> As far as I can see, it's possible to mix progressive strings with square brackets, although it requires a bit more work. 20171006 05:35:58< JyrkiVesterinen> Put a string that contains square brackets inside a variable, then put that variable inside your final string with variable substitution. 20171006 05:36:23< celticminstrel> ... 20171006 05:36:37< celticminstrel> Progressive syntax is evaluated before variable substitution? 20171006 05:37:08< JyrkiVesterinen> I don't know what the order is. 20171006 05:38:10< celticminstrel> I don't know what \177 is. 20171006 05:38:13< JyrkiVesterinen> But it doesn't really matter, because "${SQUARE_BRACKET}death[0~5].png" *is* mixing of progressive strings and square brackets. 20171006 05:39:31-!- fabi_ [~fabi@2a02:810c:c840:2e65:c132:8b35:f028:a021] has quit [Ping timeout: 255 seconds] 20171006 05:45:53-!- celticminstrel [~celmin@unaffiliated/celticminstrel] has quit [Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] 20171006 05:47:34-!- JyrkiVesterinen [~JyrkiVest@85-23-197-3.bb.dnainternet.fi] has quit [Quit: Going to work] 20171006 06:06:21< Necrosporus> \177 is ascii character which comes after ~. Not printable. 20171006 06:07:40< Necrosporus> Has binary code of 01111111, so it was used to erase a symbol from punchcard 20171006 06:08:37< shadowm> I'm pretty sure variable substitution would kick in first since it's a feature of the WML container in use (vconfig) and not the code reading attributes from it. 20171006 06:08:52< shadowm> Unless the code was really, *really* doing it wrong. 20171006 06:11:01< shadowm> But for the umpteenth time, not all file references in WML are animation frames, not all file references in WML are subject to variable interpolation (because not all WML is event engine code), not all file references are in WML, not all file references are in the WML preprocessor, and not all code is WML. 20171006 06:11:41< shadowm> And not all file references actually need to mention the file being included because not all WML file substitutions are on a singular filename basis. 20171006 06:12:34< shadowm> And not all files are code or resources or intended for Wesnoth to read. 20171006 06:21:09< Necrosporus> shadowm, why do you keep repeating it? 20171006 06:30:13-!- JyrkiVesterinen [~JyrkiVest@195-192-251-124.s1networks.fi] has joined #wesnoth-dev 20171006 06:30:33< shadowm> Because you keep bringing up those characters. 20171006 06:40:46< zookeeper> is there some kind of real reason why you people keep talking about allowed characters? 20171006 06:41:15< JyrkiVesterinen> https://github.com/wesnoth/wesnoth/pull/2070#issuecomment-334664524 20171006 06:41:47-!- fabi_ [~fabi@2a02:810c:c840:2e65:759a:bdab:3d87:4cef] has joined #wesnoth-dev 20171006 06:42:16< zookeeper> right, thanks 20171006 06:45:40-!- fabi [~fabi@wesnoth/developer/fendrin] has quit [Ping timeout: 255 seconds] 20171006 07:47:13-!- fabi [~fabi@wesnoth/developer/fendrin] has joined #wesnoth-dev 20171006 07:51:23-!- fabi_ [~fabi@2a02:810c:c840:2e65:759a:bdab:3d87:4cef] has quit [Ping timeout: 255 seconds] 20171006 07:52:30< Necrosporus> fabi, hello 20171006 08:44:30-!- vn971 [~vasya@94.158.103.15] has left #wesnoth-dev ["ISON Rogach NickServ "] 20171006 08:50:21-!- sevu [~Shiki@p54854E71.dip0.t-ipconnect.de] has joined #wesnoth-dev 20171006 08:56:37-!- fabi_ [~fabi@2a02:810c:c840:2e65:44a7:1e58:2b4b:9ca7] has joined #wesnoth-dev 20171006 09:00:40-!- fabi [~fabi@wesnoth/developer/fendrin] has quit [Ping timeout: 255 seconds] 20171006 09:06:03-!- JyrkiVesterinen [~JyrkiVest@195-192-251-124.s1networks.fi] has quit [Quit: .] 20171006 09:13:10-!- Ravana_ [~Ravana@unaffiliated/ravana/x-2327071] has joined #wesnoth-dev 20171006 09:56:15-!- JyrkiVesterinen [~JyrkiVest@195-192-251-124.s1networks.fi] has joined #wesnoth-dev 20171006 10:06:03-!- fabi [~fabi@2a02:810c:c840:2e65:9dc7:e267:f95c:299f] has joined #wesnoth-dev 20171006 10:06:03-!- fabi [~fabi@2a02:810c:c840:2e65:9dc7:e267:f95c:299f] has quit [Changing host] 20171006 10:06:03-!- fabi [~fabi@wesnoth/developer/fendrin] has joined #wesnoth-dev 20171006 10:09:59-!- fabi_ [~fabi@2a02:810c:c840:2e65:44a7:1e58:2b4b:9ca7] has quit [Ping timeout: 255 seconds] 20171006 10:37:38-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20171006 10:37:44-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth-dev 20171006 10:39:19< AI0867> 23:59 < Necrosporus> I know that long filenames on flash drives formatted in Windows (modern versions, XP+) tend to break when mounted without supplying proper codepage... Now you say that FAT32 supports unicode... ← it supports single and double-byte codepages, possibly with UTF-16 (or more likely, UCS-2) among them. I never claimed anything else 20171006 10:41:35< Necrosporus> AI0867, I have figured it out 20171006 10:42:15< Necrosporus> Short file names are in cp437 and other IBM/DOS encodings, it's set with codepage parameter 20171006 10:44:21< Necrosporus> Long file names are always in USC2 / UTF-16 (not sure). Problem with broken characters comes because Linux uses iso8859-1 as default iocharset, while applications usually assume UTF-8, so file name gets interpreted as iso while it's utf-8, and then is encoded to utf-16 20171006 10:44:22-!- Oebele [~quassel@143.177.58.202] has joined #wesnoth-dev 20171006 10:44:43< Necrosporus> Mount option utf8 enables proper handling of UTF-16 20171006 10:45:42< Necrosporus> iocharset=utf8 should work too, but allows creating case-duplicates in non-ascii 20171006 10:46:18< JyrkiVesterinen> It's quite strange that Linux even bothers to read short filenames. Long names are always in UCS-2 and aren't subject to that problem. 20171006 10:46:35< Necrosporus> It doesn't bother, I guess 20171006 10:46:42< Necrosporus> unless you mount as -t msdos 20171006 10:46:50< Necrosporus> then short names will be used and displayed 20171006 10:47:18< JyrkiVesterinen> I mean that Linux should just read the long name and interpret it as UCS-2 and display it. 20171006 10:47:26< JyrkiVesterinen> That would always work. 20171006 10:48:49< Necrosporus> It does that 20171006 10:49:05< Necrosporus> The problem is that it doesn't know what encoding Userspace wants 20171006 10:49:21< Necrosporus> And assumes iso8859-1 unless specified otherwise 20171006 10:50:08< Necrosporus> By setting LC_* and LANG variables it is possible to set different programs to different encodings (and languages) 20171006 10:50:51< Necrosporus> In modern distros *.UTF-8 locale is used almost exclusively, but vanilla kernel config has not been adapted to that 20171006 10:50:59< JyrkiVesterinen> That... sounds quite strange. Why doesn't it occur on ext4, then? 20171006 10:51:30< Necrosporus> Because Ext*, XFS, and others are encoding-agnostic 20171006 10:51:43< Necrosporus> They store / -delimited \0 terminated bytestreams 20171006 10:52:20< Necrosporus> So if App1 has LANG=en_US.UTF-8 it will read and write filenames in UTF-8 20171006 10:52:45-!- irker404 [~irker@uruz.ai0867.net] has quit [Quit: transmission timeout] 20171006 10:53:04< Necrosporus> if App2 has LANG=ru_RU.KOI8-R it will read and write filenames in KOI8-R 20171006 10:53:35< Necrosporus> Of course App1's non-ascii filenames will appear broken for App2 and wise-versa 20171006 10:54:05< Necrosporus> Though Gtk Glib ignores locale and always assumes UTF-8 20171006 10:54:11< Necrosporus> Qt respects 20171006 10:54:36< Necrosporus> But as locale almost always is set to UTF-8 this problem doesn't arise in practice 20171006 10:56:17< JyrkiVesterinen> Okay... I see. An ext4 file name isn't a string, it's a byte stream. 20171006 10:56:35< Necrosporus> C-string 20171006 10:56:46< Necrosporus> Because 0-terminated 20171006 10:56:55< JyrkiVesterinen> And the reason why Windows doesn't have problems with Unicode on FAT32 is that Windows uses UCS-2 through and through. It just passes the filename to the program unmodified. 20171006 10:57:44< JyrkiVesterinen> According to https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Linear_.28Classic.29_Directories ext4 stores filename length separately. 20171006 10:57:53< JyrkiVesterinen> Although NULs are disallowed anyway. 20171006 11:00:15< Necrosporus> so theoretically directory or file names with \0 are possible 20171006 11:00:29< Necrosporus> i guess they could be created with debugfs or hex-editor 20171006 11:01:02< Necrosporus> The problem is that such filenames will be absolutely impossible to pass as command-line parameters 20171006 11:01:28< Necrosporus> argv is array of char pointers, which point to 0-terminated strings 20171006 11:01:41< JyrkiVesterinen> Right. 20171006 11:02:04< JyrkiVesterinen> TBH, other control characters aren't much better. They cause nothing but trouble in filenames. 20171006 11:02:23< JyrkiVesterinen> IMHO, GNU/Linux should block them. Even after the fact. 20171006 11:02:39< Necrosporus> And what problems? 20171006 11:02:45< Necrosporus> I think most are mitigated 20171006 11:03:09< Necrosporus> \n problem is mitigated by using -print0, xargs -0 and so on 20171006 11:03:17< JyrkiVesterinen> I recall seeing an article about it. I'll see if I can find it. 20171006 11:03:25< Necrosporus> i have read it too 20171006 11:04:11< Necrosporus> Another problem is trailing and leading spaces, they get stripped by `read` shell builtin unless special measures are taken 20171006 11:04:58< Necrosporus> So you can have `cat filelist.txt | while read var; do ... ; done` unless you make sure there are no \n in names 20171006 11:05:32< Necrosporus> Though it's relatively easy to run find and check whenever you have \n or not 20171006 11:06:08< Necrosporus> find / -name $'*\n*' 20171006 11:06:26< Necrosporus> I don't have any 20171006 11:06:54< Necrosporus> neither this: find / -name ' *' -o -name '* ' 20171006 11:07:27< Necrosporus> Thankfull Linux shell is very easy to use compared to Windows Explorer or CMD 20171006 11:07:34< JyrkiVesterinen> OK, found the article: https://www.dwheeler.com/essays/fixing-unix-linux-filenames.html 20171006 11:08:59< Necrosporus> I did read it, yes. I even knew you meant this one 20171006 11:10:21< Necrosporus> So problems are that they make writing shell scripts harder. If you want inter-shell portability (like so they work not only in bash but also in dash, ash, pdksh...) then maybe even impossible 20171006 11:11:10< Necrosporus> Mostly mitigated. For example modern coreutils ls spit special chars in escaped form 20171006 11:11:27< Necrosporus> So it could be used for pipe even if you have \n filenames 20171006 11:11:32< JyrkiVesterinen> For control characters an especially important point is this: 20171006 11:11:42< JyrkiVesterinen> "First: Why the heck are the ASCII control characters (byte values 1 through 31, as well as 127) permitted in filenames? The point of filenames is to create human-readable names for collections of information, but since these characters aren’t readable, the whole point of having filenames is lost." 20171006 11:11:46< Necrosporus> They could be mistaken for terminal controls 20171006 11:12:20< JyrkiVesterinen> I actually disagree with the author on most things and wouldn't want to ban even leading dashes in filenames. 20171006 11:12:28-!- fabi_ [~fabi@2a02:810c:c840:2e65:2930:c7d9:6263:a506] has joined #wesnoth-dev 20171006 11:12:32< Necrosporus> ./* 20171006 11:12:35< JyrkiVesterinen> But control characters? They are 1) extremely prolematic and 2) useless. 20171006 11:12:51< Necrosporus> Just never start shell patterns from metacharacters and you are safe 20171006 11:13:10< Necrosporus> I think most controls are not very problematic 20171006 11:13:27< JyrkiVesterinen> You can't see them. 20171006 11:13:35< JyrkiVesterinen> They are difficult to enter. 20171006 11:13:37< Necrosporus> it depends how you look 20171006 11:13:48< Necrosporus> ^@ is impossible to enter in bash 20171006 11:13:58< Necrosporus> other controls could be entered 20171006 11:14:00< JyrkiVesterinen> They are disallowed on Windows, and therefore need to be removed if you need to transfer files to Windows systems. 20171006 11:14:14< Necrosporus> That's true, but who cares about windows 20171006 11:14:24< Necrosporus> I have all my USB thumbdrives in ext4 20171006 11:14:36< JyrkiVesterinen> Are you trying to troll or what? 20171006 11:15:02< Necrosporus> OK, I agree that you need to strip them IF you want transfer to windows 20171006 11:15:04< JyrkiVesterinen> If you're making "who cares about [OS]" argument, then in this project the first OS to go is the one that has least developers. 20171006 11:15:12< JyrkiVesterinen> In other words, GNU/Linux. 20171006 11:15:53< Necrosporus> I do not think that they are useful 20171006 11:16:06< Necrosporus> But how would you end up having them in filenames in first place? 20171006 11:16:28< Necrosporus> I can't recall when I got them except when I created them myself for experiments 20171006 11:16:35-!- fabi [~fabi@wesnoth/developer/fendrin] has quit [Ping timeout: 255 seconds] 20171006 11:16:53< JyrkiVesterinen> Pretty much the only possibility I can think of is attempting security exploits/social engineering/whatever. 20171006 11:17:37< JyrkiVesterinen> Which is an argument in favor of *banning* control characters, not allowing them. 20171006 11:18:05< Necrosporus> OK, you can ban them, if you want to 20171006 11:18:26< JyrkiVesterinen> Well, I'm not in the position to do that. 20171006 11:18:41< JyrkiVesterinen> [14:02:21] IMHO, GNU/Linux should block them. Even after the fact. 20171006 11:18:55< Necrosporus> Maybe. 20171006 11:19:33< Necrosporus> I don't mind, I don't use them 20171006 11:19:39< Necrosporus> But I don't mind keeping them either 20171006 11:20:00< Necrosporus> Though... maybe somebody has legitimate uses we don't know? 20171006 11:20:40< JyrkiVesterinen> The article touches that too. 20171006 11:21:24< JyrkiVesterinen> "A few people noted that they used the filesystem as a keystore, and found it handy to use filenames as arbitrary-value keys. That’s fine, but filesystems already impose naming limitations; you can’t use \0 in them, and you can’t use ‘/’ as a key value in the same way, even on a traditional Unix filesystem. And as noted above, many filesystems impose more restrictions anyway. So even people who use the filesystem 20171006 11:21:25< JyrkiVesterinen> as a keystore, with arbitrary key values, must do some kind of encoding of filenames. Since you have to encode anyway, you can use an encoding that is easier to work with and less likely to cause subtle problems... like one that forbids control characters." 20171006 11:21:27< Necrosporus> By the way can you test AI0867 code for windows? 20171006 11:21:40< JyrkiVesterinen> In which pull request? 20171006 11:22:13< Necrosporus> https://github.com/AI0867/wesnoth/tree/windows-case-check 20171006 11:22:19< Necrosporus> I don't know if it's in PR's 20171006 11:22:21< Necrosporus> I guess not 20171006 11:22:36< Necrosporus> It has a single small patch currently 20171006 11:22:40< AI0867> it's not a PR yet 20171006 11:22:46< AI0867> I'd like to make sure it even compiles first 20171006 11:22:54< AI0867> I've tried appveyor, but that was inconclusive 20171006 11:23:01< JyrkiVesterinen> Sure, I can test it in the weekend. 20171006 11:23:15< AI0867> (that is, it helped me fix some stupid problems, but I still don't have executables) 20171006 11:24:24< Necrosporus> AI0867, c >= 0xD800 maybe leave at that? 20171006 11:24:50< Necrosporus> AI0867, btw Wine 20171006 11:24:54< Necrosporus> and mingw 20171006 11:25:08< Necrosporus> You can test there unless it's too much troubles installing thme 20171006 11:25:09< AI0867> yeah, I don't have that set up, and I can't add remotes on the jenkins build slave 20171006 11:25:38< AI0867> as for beyond BMP, that's a policy decision that wasn't made yet 20171006 11:26:14< Necrosporus> Did anybody test how does FAT work with astral planes? 20171006 11:26:51< AI0867> exFAT should work fine, other FATs, not so much 20171006 11:26:52< JyrkiVesterinen> IIRC, everyone here is in favor of disallowing astral planes. 20171006 11:29:11< AI0867> well, that would mean disallowing >= 0x10000 20171006 11:29:23< AI0867> there are some characters (besides private use ones) beyond the surrogates 20171006 11:29:45< JyrkiVesterinen> Huh. I just tested to create a folder called 🍰 in a FAT32 partition, and it seems to work fine. 20171006 11:29:58< JyrkiVesterinen> No idea what kind of black magic is going on. 20171006 11:33:44-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20171006 11:44:32-!- travis-ci [~travis-ci@ec2-54-205-216-16.compute-1.amazonaws.com] has joined #wesnoth-dev 20171006 11:44:33< travis-ci> AI0867/wesnoth#37 (blacklist-filename-chars - a968c01 : Alexander van Gessel): The build has errored. 20171006 11:44:33< travis-ci> Build details : https://travis-ci.org/AI0867/wesnoth/builds/284150246 20171006 11:44:33-!- travis-ci [~travis-ci@ec2-54-205-216-16.compute-1.amazonaws.com] has left #wesnoth-dev [] 20171006 11:45:03< JyrkiVesterinen> Ah. I realized how astral planes can work on FAT32. 20171006 11:45:19< JyrkiVesterinen> Surrogate pairs. That's how astral planes are supported in UCS-2. 20171006 11:45:26< JyrkiVesterinen> I had forgotten about it. 20171006 11:45:36< AI0867> not 'supported', but 'storable' 20171006 11:45:52< AI0867> UCS-2 sees 2 codepoints 20171006 11:46:30< AI0867> this was probably a design requirement for UTF-16, as UCS-2 was already widely deployed at the time 20171006 11:47:49-!- Kwandulin [~Kwandulin@pD9FD50F1.dip0.t-ipconnect.de] has joined #wesnoth-dev 20171006 11:51:00< JyrkiVesterinen> Indeed. Microsoft chose to use UCS-2 in Windows NT. (At the time UTF-8 didn't exist, and UCS-2 looked like the most future-proof option.) 20171006 11:51:33< JyrkiVesterinen> So obviously backwards compatibility with UCS-2 became somewhat important. 20171006 11:51:37< AI0867> it was utterly stupid 20171006 11:51:38< Necrosporus> It was introduced in 1992 or 1993 20171006 11:51:42< AI0867> 16 bits = 64k characters 20171006 11:51:49< AI0867> that's not even enough to encode all chinese characters 20171006 11:51:59< JyrkiVesterinen> Indeed. 20171006 11:52:26< Necrosporus> JyrkiVesterinen, is surrogate pair a black magic? 20171006 11:52:29< JyrkiVesterinen> And UCS-2 relied on Han unification to save code points. It's politically an extremely charged topic. 20171006 11:52:44< JyrkiVesterinen> https://en.wikipedia.org/wiki/Han_unification 20171006 11:52:45< Necrosporus> I mean, how is FAT32 different from NTFS for this regard? 20171006 11:52:54< Necrosporus> Both has USC2 underneath 20171006 11:53:08< AI0867> Necrosporus: NTFS supports UTF-16, that is, it understands that a character may take either 2 or 4 bytes 20171006 11:53:16< JyrkiVesterinen> Well, I just forgot that it's possible to store surrogate pairs in UCS-2. 20171006 11:53:24< AI0867> FAT32 in UCS-2 mode asserts that each character takes 2 bytes 20171006 11:53:34< Necrosporus> And what is difference in practice? 20171006 11:53:45< Necrosporus> Both store chars as two 16-bit integers 20171006 11:54:01< AI0867> Necrosporus: surrogate pairs are as follows: you declare a range of UCS-2 characters to be "invalid" and then use pairs of them to encode the characters that don't fit in 16 bits 20171006 11:54:09< AI0867> that's essentially what UTF-16 is 20171006 11:54:10< Necrosporus> Right 20171006 11:54:18< Necrosporus> I know that 20171006 11:54:29< Necrosporus> What is difference between NTFS and FAT in this regard? 20171006 11:54:45< Necrosporus> Both can create filenames using 16-bit slots 20171006 11:54:58< AI0867> the big problem is that programs written for UCS-2 (or written using the windows 'tchar' system) assume that every pair of bytes is a character on its own 20171006 11:55:18< Necrosporus> And what is problem with that? 20171006 11:55:37< AI0867> well, try using a text editor that thinks there is a valid place for a cursor in the middle of a character 20171006 11:55:41< Necrosporus> Calculating width to display? 20171006 11:56:06< Necrosporus> Actually it's the case in bash Ctrl-R backward search 20171006 11:56:19< Necrosporus> You need to press backspace two times to remove utf-8 char 20171006 11:56:22< AI0867> and yes, the problems are frequently minor enough that they STILL HAVEN'T BEEN FIXED in many parts of the windows and java ecosystems 20171006 12:06:56< Necrosporus> JyrkiVesterinen, can you test if replacing / to \ in image/sound references still matches images? 20171006 12:07:08< Necrosporus> Or we only need to care about filename inclusions 20171006 12:07:27< JyrkiVesterinen> I can test uít in the weekend. 20171006 12:07:36< Necrosporus> AI0867, did you see uit? 20171006 12:07:50< JyrkiVesterinen> My guess would be that it does, as \ is the directory separator on Windows. 20171006 12:08:11< JyrkiVesterinen> We don't have code to block backslashes as far as I know. 20171006 12:10:51< sevu> We don't. I came along an add-on on the server which has this problem (A New Land Era). Impossible to load it. luckily it has this problem only in two places, while the rest is fine. 20171006 12:11:24< AI0867> 14:07 < Necrosporus> AI0867, did you see uit? ← ? do you mean in JyrkiVesterinen's line? I saw 'uít' 20171006 12:12:48< Necrosporus> I think I run into ANLEra when looking for weird filenames 20171006 12:14:20< Necrosporus> ANLEra/images/units/drakes/worker-fly-1-(2).png 20171006 12:14:32< Necrosporus> Why did they copy file from core anyway? 20171006 12:14:49< Necrosporus> I'm pretty sure it's either file from core or its very minor edit 20171006 12:15:02< JyrkiVesterinen> Editing is the most likely possibility. 20171006 12:15:24< Necrosporus> And they thought they need to copy all animations 20171006 12:16:40< JyrkiVesterinen> Maybe for consistency. 20171006 12:17:17< sevu> it's a little mess there. 20171006 12:19:54-!- fabi__ [~fabi@2a02:810c:c840:2e65:fd96:e098:169d:5219] has joined #wesnoth-dev 20171006 12:20:29< Necrosporus> What if use whitelist, and allow extended latin, greek and cyrillic scripts? 20171006 12:20:54< Necrosporus> Plus non-combining punctuation stuff such as proper apostrophe, double ticks and so on 20171006 12:21:59< Necrosporus> In other words, character ranges which we know for certain are printable and displayable 20171006 12:22:36< JyrkiVesterinen> If we allowed extended Latin, Greek and Cyrillic scripts, it would be kind of hard to justify why they're allowed but CJK isn't. 20171006 12:23:32< Necrosporus> Because there are too many CJK's, but if there are easy range filters for cjk (to filter out control sequences and stuff) maybe allow it too 20171006 12:23:42< Necrosporus> Though CJK is partially outside of BMP 20171006 12:24:05-!- fabi_ [~fabi@2a02:810c:c840:2e65:2930:c7d9:6263:a506] has quit [Ping timeout: 255 seconds] 20171006 12:24:19< Necrosporus> Another reason is that not everybody has fonts for CJK 20171006 12:24:55< Necrosporus> Only allow characters which has graphical glyphs in fonts which come with wesnoth? 20171006 12:25:18< JyrkiVesterinen> The parts in astral planes are rare. There's a reason why not all characters made it to the BMP. 20171006 12:26:03< Necrosporus> BMP has limited space is one of them 20171006 12:26:04< JyrkiVesterinen> The font argument doesn't matter much. Players aren't supposed to browse add-on directories. 20171006 12:26:48< Necrosporus> I think that either we assume that addon directories is sort of programming-stuff-not-for-mere-users 20171006 12:27:05< Necrosporus> Then restrict them to known-safe set 20171006 12:27:51< Necrosporus> Can WML tags be like [боец] 20171006 12:27:54< Necrosporus> ? 20171006 12:28:02< Necrosporus> or they have to be latin? 20171006 12:28:20< JyrkiVesterinen> As I said, restricting to a known-safe set would be a good idea... 20171006 12:28:30< JyrkiVesterinen> ...if we didn't have backwards compatibility to deal with. 20171006 12:29:00< JyrkiVesterinen> The add-on system is in production. This is no time to add restrictions, barring very important ones. 20171006 12:29:34< Necrosporus> OK, how about if we see affected add-ons and check which have no major problems aside from characters 20171006 12:29:39< JyrkiVesterinen> AFAIK, WML tags can be arbitrary Unicode. 20171006 12:29:49< Necrosporus> Then characters they use we add to whitelist 20171006 12:30:02< Necrosporus> But if add-ons are messy anyway, then they don't count 20171006 12:30:16< JyrkiVesterinen> Well, I still want to keep the restrictions sensible. 20171006 12:30:51< JyrkiVesterinen> "Allow Cyrillic but not CJK, just because someone has happened to upload an add-on that uses Cyrillic in filenames" isn't a very sensible restriction IMO. 20171006 12:31:17< Necrosporus> By the way there's one or two CJK files in 1.10 20171006 12:31:26< Necrosporus> I didn't include them in my analysis 20171006 12:31:43< Necrosporus> Somehow, 1.10 has much more use of weird characters than 1.12 and 1.13 20171006 12:31:56< JyrkiVesterinen> I bet it's because 1.10 allowed spaces. 20171006 12:32:32< Necrosporus> And you think that when people removed spaces they also corrected other filenames just in case? 20171006 12:32:32< JyrkiVesterinen> Disallowing spaces essentially sent a message "the filenames are restricted, better not try anything strange". 20171006 12:34:01-!- mattsc [~mattsc@wesnoth/developer/mattsc] has joined #wesnoth-dev 20171006 12:34:20-!- travis-ci [~travis-ci@ec2-54-205-216-16.compute-1.amazonaws.com] has joined #wesnoth-dev 20171006 12:34:21< travis-ci> AI0867/wesnoth#38 (blacklist-filename-chars - a95567f : Alexander van Gessel): The build passed. 20171006 12:34:22< travis-ci> Build details : https://travis-ci.org/AI0867/wesnoth/builds/284151004 20171006 12:34:22-!- travis-ci [~travis-ci@ec2-54-205-216-16.compute-1.amazonaws.com] has left #wesnoth-dev [] 20171006 12:34:47< Necrosporus> What do you think is worse in filenames, ' (ascii apostrophe) or ' (single quote, somewhere in unicode) 20171006 12:35:02< sevu> It's maybe not the worst time to add restrictions. After the steam launch the number of add-ons with issues may increase. 20171006 12:35:35< Necrosporus> * ’ 20171006 12:35:56< JyrkiVesterinen> sevu: I agree, but only in case of significant problems. 20171006 12:36:16< AI0867> now that we've shown that unicode at least sort-of works on FAT32, do we really want to restrict parts of it? 20171006 12:36:39< AI0867> we basically have 3 options: ASCII-only, BMP-only or the full set 20171006 12:36:49< Necrosporus> AI0867, I think yes. C1 control sets for example 20171006 12:36:50< AI0867> and BMP-only just became less necessary 20171006 12:36:54< JyrkiVesterinen> For example, the square bracket issue has been blown way out of proportion. It only affects files which are 1) accessed 2) from WML 3) without using strict quoting and 4) without the author noticing. 20171006 12:37:13< Necrosporus> What is strict quoting? 20171006 12:37:17< AI0867> Necrosporus: that's a different restriction, which is already included in the blacklist PR 20171006 12:37:19< JyrkiVesterinen> << this >> 20171006 12:37:19< Necrosporus> I thought WML only supports " " 20171006 12:37:34< Necrosporus> Where in the wiki I can read it? 20171006 12:37:40< Necrosporus> I didn't know WML has it 20171006 12:37:55< Necrosporus> AI0867, you have added C0 I think 20171006 12:38:00< Necrosporus> I'm talking about C1 20171006 12:38:00< JyrkiVesterinen> https://wiki.wesnoth.org/SyntaxWML#Special_Attribute_Values 20171006 12:38:15< Necrosporus> 0x80 to 0x8F or something 20171006 12:38:16< AI0867> right, C1 20171006 12:38:23< AI0867> I agree with blacklisting those too 20171006 12:38:28< AI0867> I'll even add them to the PR 20171006 12:39:11< Necrosporus> There is a lot of stuff beside C1 20171006 12:39:20< Necrosporus> Unicode has several ranges of control chars 20171006 12:39:46< Necrosporus> That's why I'm in favor of banning all unicode or whitelisting some characters temporarily 20171006 12:40:14< Necrosporus> Compromise. Whitelist everything which is used already in non-broken add-ons 20171006 12:40:27< Necrosporus> Ask add-on authors to rename stuff 20171006 12:41:00< Necrosporus> When they upload newer versions of their add-ons which do not use special/non-ascii, remove it from whitelist 20171006 12:41:40< Necrosporus> Don't mention that those chars are allowed in server message 20171006 12:42:56< Necrosporus> Or better, whitelist on server, but add a warning 20171006 12:43:14< Necrosporus> So they are only suggested to correct filenames but not forced 20171006 12:45:30< sevu> Basically you talk both about the same thing. JyrkiVesterinen doesn't want to break compatibility with the existing add-os, Necrosporus doesn't want to break compatibility with filesystems 20171006 12:47:54< Necrosporus> I don't want to reduce complexity 20171006 12:48:13< Necrosporus> I mean I want to reduce complexity of code 20171006 12:48:43< Necrosporus> Make writing scripts which handle WML easier by making WML stricter 20171006 12:48:43< JyrkiVesterinen> How exactly? 20171006 12:48:55< JyrkiVesterinen> UMC authors aren't exactly forced to use special characters in filenames. 20171006 12:49:21< Necrosporus> I mean, you do not want to force UMC authors to rename stuff if it worked before 20171006 12:49:29< JyrkiVesterinen> The idea of "making WML stricter" isn't a very convincing argument, either. 20171006 12:49:43< Necrosporus> It's a side point 20171006 12:49:50< JyrkiVesterinen> WML strings (especially ones intended for display) are going to contain special character anyway. 20171006 12:49:57< JyrkiVesterinen> *characters 20171006 12:50:24< Necrosporus> That's not a problem when the characters are always interpreted in same way 20171006 12:50:58< Necrosporus> For example you want to find progressive strings. Would be nice if you could safely assume that anything with [] inside quotes is a progressive string 20171006 12:51:02< Necrosporus> Stuff like that 20171006 12:51:31< JyrkiVesterinen> And then someone wants to use square parentheses in dialogue... 20171006 12:51:56< Necrosporus> Hmph.. ok, assume that everything in quotes in fields expecting images 20171006 12:52:06< Necrosporus> like profile=... 20171006 12:52:19< JyrkiVesterinen> That's pretty much impossible to determine programmatically. 20171006 12:52:31< Necrosporus> That's the problem 20171006 12:52:31< JyrkiVesterinen> For one thing, image paths can be variable. 20171006 12:52:50-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Quit: mattsc] 20171006 12:52:54< Necrosporus> Anyway, the less special cases to worry about the easier 20171006 12:53:24< Necrosporus> Less rules to remember the better 20171006 12:53:30< JyrkiVesterinen> Disallowing special characters in filenames simply doesn't help here, I'm afraid. 20171006 12:53:35< JyrkiVesterinen> File names are just strings. 20171006 12:53:44< JyrkiVesterinen> And we need special characters in strings. 20171006 12:53:59< Necrosporus> We are going to a circle now 20171006 12:55:17< Necrosporus> What will WML do if you set profile="portraits/death_warrior-[1,5].png" and file death_warrior-[1,5].png exists? 20171006 12:55:30< Necrosporus> Can you say it without looking up or trying? 20171006 12:55:51< JyrkiVesterinen> It's going to try square bracket expansion. 20171006 12:56:11< Necrosporus> What if death_warrior-5.png also exists 20171006 12:56:49< JyrkiVesterinen> I don't really know how profile= reacts if you pass it multiple comma-separated images. 20171006 12:57:03< JyrkiVesterinen> (That's what the square bracket expansion produces.) 20171006 12:57:38< Necrosporus> So if you want literal thing you use profile=<> 20171006 12:57:50< JyrkiVesterinen> Yes. 20171006 12:58:14< JyrkiVesterinen> And I'd guess that a UMC author is more likely to just remove brackets and comma from the filename. 20171006 12:59:35< Necrosporus> So my concern is that unsuspecting UMC author will name name a file as `death_warrior-[1,5].png`, put it into profile= inside regular double quotes and then think long and hard what is he doing wrong or maybe wesnoth is broken 20171006 13:00:24< JyrkiVesterinen> It's a valid concern, sure. 20171006 13:00:51< JyrkiVesterinen> But still a fairly minor problem, as UMC authors are unlikely to use brackets and commas in filenames anyway. 20171006 13:01:17< JyrkiVesterinen> And you'd want that "disallow brackets and commas" code to file loading, not to the add-on server. 20171006 13:01:41< Necrosporus> I'd start with add-on server, then add something to file loading later 20171006 13:01:59< JyrkiVesterinen> Because I think a developer who runs into this problem isn't going to first think "Gee, I'll upload the add-on to thse server, maybe it will give me an error message that tells me what's wrong". ;) 20171006 13:02:05< Necrosporus> Because you know, I would still like to be able to play existing add-ons 20171006 13:02:42< Necrosporus> Developer might read which characters are disallowed in filenames when looking up WML syntax 20171006 13:03:09< Necrosporus> If links to allowed characters are added to wiki pages which mention file loading 20171006 13:03:25< JyrkiVesterinen> If we were to disallow brackets and commas, I'd add the restriction to the server and file loading code at the same time. 20171006 13:03:41< Necrosporus> Something like https://wiki.wesnoth.org/Filenames 20171006 13:04:02< Necrosporus> Then add a command line or preference option to allow it? 20171006 13:04:21-!- mattsc [~mattsc@wesnoth/developer/mattsc] has joined #wesnoth-dev 20171006 13:04:38< Necrosporus> Though that's probably OK 20171006 13:04:38< JyrkiVesterinen> Yeah, such an option would be fine for me. 20171006 13:05:43-!- Kwandulin [~Kwandulin@pD9FD50F1.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20171006 13:05:55-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20171006 13:08:24< Necrosporus> Anyway, what about apostrophe, which is worse in filename? 20171006 13:08:42< Necrosporus> Ascii one creates one kind of problems, unicode one other kind of problems 20171006 13:08:57< JyrkiVesterinen> The ASCII apostrophe IMO. It's sometimes used as a quoting character. 20171006 13:09:19< JyrkiVesterinen> Still, I find neither character problematic enough to justify banning it. 20171006 13:12:54< Necrosporus> + has 4759 uses, @ has 38 uses, ' has 36 uses 20171006 13:13:21< Necrosporus> It's not same as count of affected add-ons 20171006 13:24:47< Necrosporus> Most popular character in add-on names appears to be n: 451589 times 20171006 13:26:52< JyrkiVesterinen> Hmm. That's not what I'd have guessed based on https://en.wikipedia.org/wiki/Letter_frequency#Relative_frequencies_of_letters_in_the_English_language 20171006 13:27:23-!- fabi [~fabi@wesnoth/developer/fendrin] has joined #wesnoth-dev 20171006 13:31:35-!- fabi__ [~fabi@2a02:810c:c840:2e65:fd96:e098:169d:5219] has quit [Ping timeout: 255 seconds] 20171006 13:35:12-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20171006 13:41:59< galegosimpatico> It could be started by comparing to names of literary works instead, as you drift to fantasy finally in UMC repos of fantasy games numbers could be more expected to converge. 20171006 13:42:43< Necrosporus> You still have a chance to guess least used characters (aside from covered in github) 20171006 13:43:03< Necrosporus> Actually full statistics is just 2 irc lines 20171006 13:43:08< JyrkiVesterinen> Q? 20171006 13:44:38< Necrosporus> No 20171006 13:44:48< Necrosporus> 2110q 1828K 1523V 1297Y 1274U 521J 344Q 335Z 307) 307( 239X 42' 26@ 10, 6þ 6& 6? 5$ 3] 3[ 3! 2и 2ä 2’ 1ы 1р 1О 1н 1л 1г 1а 1è 1é 20171006 13:44:53< Necrosporus> That's tail 20171006 13:45:36< JyrkiVesterinen> So X is the least common Latin letter. 20171006 13:48:26< Necrosporus> But q is least common small letter 20171006 13:50:15-!- sevu [~Shiki@p54854E71.dip0.t-ipconnect.de] has left #wesnoth-dev ["Verlassend"] 20171006 13:50:28< Necrosporus> Though 263 out of 307 uses of ( comes from single pair of addons 20171006 13:51:32< Necrosporus> Altered_New_Sprites/units/valons/cuirasseurs/Valon-Uhlan-(media).cfg 20171006 13:51:50< Necrosporus> Do you have any idea where that (media) thing came from? 20171006 13:51:55< Necrosporus> Just curious 20171006 14:02:53-!- JyrkiVesterinen [~JyrkiVest@195-192-251-124.s1networks.fi] has quit [Quit: .] 20171006 14:05:30< AI0867> 14:57 < Necrosporus> So if you want literal thing you use profile=<> ← that's not going to do anything. It just prevents preprocessor expansion, but frame expansion is done by the animation engine 20171006 14:06:05< AI0867> so you see why I *really* don't want $[,] in filenames 20171006 14:09:51< Necrosporus> AI0867, do you have any objections to WL '() ? 20171006 14:10:04< Necrosporus> I do not know if they have special meaning in WML in similar way 20171006 14:10:13< Necrosporus> I didn't dig into formula ai 20171006 14:11:01< Necrosporus> Also they see more use each than all other special chars combined 20171006 14:11:48< AI0867> I don't like '` just out of principle, but it doesn't directly cause problems as far as I see 20171006 14:12:14< AI0867> hmm, formula stuff 20171006 14:12:33< AI0867> well, that requires a $ 20171006 14:12:47< Necrosporus> So without $ they are not special? 20171006 14:12:52< Necrosporus> or they could be special? 20171006 14:13:03< AI0867> I don't *think* they're special, but I might be forgetting something 20171006 14:16:45< AI0867> well, ` and ' can cause all sorts of funny stuff with scripts, but they won't directly affect WML processing, AFAICT 20171006 14:22:04-!- DeFender1031 [~DeFender1@46-116-196-40.bb.netvision.net.il] has quit [Quit: I'm not back now.] 20171006 14:34:48-!- fabi_ [~fabi@2a02:810c:c840:2e65:69c9:8d15:ce6a:de73] has joined #wesnoth-dev 20171006 14:35:22-!- Kwandulin [~Kwandulin@pD9FD50F1.dip0.t-ipconnect.de] has joined #wesnoth-dev 20171006 14:37:24-!- Kwandulin [~Kwandulin@pD9FD50F1.dip0.t-ipconnect.de] has quit [Client Quit] 20171006 14:39:05-!- fabi [~fabi@wesnoth/developer/fendrin] has quit [Ping timeout: 255 seconds] 20171006 14:53:55-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Quit: mattsc] 20171006 15:06:24-!- vultraz [uid24821@wesnoth/developer/vultraz] has quit [Quit: Connection closed for inactivity] 20171006 15:19:48-!- mattsc [~mattsc@wesnoth/developer/mattsc] has joined #wesnoth-dev 20171006 15:24:38< Necrosporus> AI0867, what about `&` ? 20171006 15:24:57< Necrosporus> Is it special in any way in WML or lua ? 20171006 15:27:46< Ravana_> it is somewhat special in WML 20171006 15:28:03< Ravana_> at least using it results in warning to stderr 20171006 15:28:26< Necrosporus> In Pango marcup 20171006 15:41:13-!- fabi [~fabi@wesnoth/developer/fendrin] has joined #wesnoth-dev 20171006 15:45:13-!- fabi_ [~fabi@2a02:810c:c840:2e65:69c9:8d15:ce6a:de73] has quit [Ping timeout: 255 seconds] 20171006 15:53:18< AI0867> it's special in shell 20171006 16:05:55< zookeeper> shell is just a word. the reality is much, much worse. 20171006 16:07:42< zookeeper> aww. i misremembered, it's s/just/only 20171006 16:09:32-!- Oebele [~quassel@143.177.58.202] has quit [Remote host closed the connection] 20171006 16:13:23-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20171006 16:21:18-!- wedge010 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20171006 16:24:50-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Ping timeout: 255 seconds] 20171006 16:24:50-!- wedge010 is now known as wedge009 20171006 16:48:38-!- fabi_ [~fabi@2a02:810c:c840:2e65:ec64:2bc7:691f:c179] has joined #wesnoth-dev 20171006 16:52:43-!- fabi [~fabi@wesnoth/developer/fendrin] has quit [Ping timeout: 255 seconds] 20171006 16:52:52-!- boucman [~rosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20171006 16:53:28-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20171006 17:39:00-!- irker753 [~irker@uruz.ai0867.net] has joined #wesnoth-dev 20171006 17:39:00< irker753> wesnoth: galegosimpatico wesnoth:master 8b0d7e67998f / .gitignore CMakeLists.txt INSTALL.md SConstruct projectfiles/VC12/README.md: On Boost: update build scripts and documentation. https://github.com/wesnoth/wesnoth/commit/8b0d7e67998fa0382b4b6f53c8beb11b7f3e8744 20171006 17:39:11< Necrosporus> Reached enemy keep and killed everything but leader and one recruit in 19 turns, while turn limit is 50 20171006 17:45:21-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has joined #wesnoth-dev 20171006 17:58:02-!- fabi [~fabi@2a02:810c:c840:2e65:6dec:5f95:162b:9f2] has joined #wesnoth-dev 20171006 17:58:03-!- fabi [~fabi@2a02:810c:c840:2e65:6dec:5f95:162b:9f2] has quit [Changing host] 20171006 17:58:03-!- fabi [~fabi@wesnoth/developer/fendrin] has joined #wesnoth-dev 20171006 18:02:02-!- fabi_ [~fabi@2a02:810c:c840:2e65:ec64:2bc7:691f:c179] has quit [Ping timeout: 255 seconds] 20171006 18:27:56-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Quit: So long and thanks for all the fish.] 20171006 18:34:03-!- JyrkiVesterinen [~JyrkiVest@85-23-197-3.bb.dnainternet.fi] has joined #wesnoth-dev 20171006 19:05:27-!- fabi_ [~fabi@2a02:810c:c840:2e65:a82b:e4a6:6969:95b] has joined #wesnoth-dev 20171006 19:09:32-!- fabi [~fabi@wesnoth/developer/fendrin] has quit [Ping timeout: 255 seconds] 20171006 19:49:08-!- travis-ci [~travis-ci@ec2-54-205-216-16.compute-1.amazonaws.com] has joined #wesnoth-dev 20171006 19:49:08< travis-ci> wesnoth/wesnoth#15193 (master - 8b0d7e6 : galegosimpatico): The build has errored. 20171006 19:49:09< travis-ci> Build details : https://travis-ci.org/wesnoth/wesnoth/builds/284317009 20171006 19:49:09-!- travis-ci [~travis-ci@ec2-54-205-216-16.compute-1.amazonaws.com] has left #wesnoth-dev [] 20171006 19:54:28-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has quit [Quit: Connection closed for inactivity] 20171006 20:12:54-!- fabi__ [~fabi@2a02:810c:c840:2e65:91e4:16f:da90:5e80] has joined #wesnoth-dev 20171006 20:16:56-!- JyrkiVesterinen [~JyrkiVest@85-23-197-3.bb.dnainternet.fi] has quit [Quit: .] 20171006 20:17:01-!- fabi_ [~fabi@2a02:810c:c840:2e65:a82b:e4a6:6969:95b] has quit [Ping timeout: 255 seconds] 20171006 20:27:49-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has quit [Ping timeout: 255 seconds] 20171006 20:33:57-!- vultraz [uid24821@wesnoth/developer/vultraz] has joined #wesnoth-dev 20171006 20:39:34-!- irker753 [~irker@uruz.ai0867.net] has quit [Quit: transmission timeout] 20171006 21:02:56-!- gfgtdf [~chatzilla@x4e368d4f.dyn.telefonica.de] has joined #wesnoth-dev 20171006 21:03:08-!- louis94 [~~louis94@91.138-200-80.adsl-dyn.isp.belgacom.be] has joined #wesnoth-dev 20171006 21:03:36< gfgtdf> vultraz: boost copy is the same as std::copy exact that boost::copy takes a contianer object while std::copy takes iterators. 20171006 21:04:43< gfgtdf> vultraz: taking a container object is a advantage since you don't need to put the contains in a local variable if you have a function that returns a container ibject 20171006 21:04:55< vultraz> true 20171006 21:05:40< gfgtdf> vultraz: std::copy(get_container(), get_container(), ... ) for example would call get_container() twice... , if the container is already a local variable it doesn't matter. 20171006 21:06:03< gfgtdf> std::copy(get_container().begin(), get_container().end(), ... i meant 20171006 21:06:58< gfgtdf> vultraz: you can see where that it just calls std::copy https://github.com/boostorg/range/blob/develop/include/boost/range/algorithm/copy.hpp#L34 20171006 21:07:17< vultraz> huh 20171006 21:10:26< vultraz> gfgtdf: what is this about nested container attributes? 20171006 21:10:48< gfgtdf> vultraz: you made i store variables as var=content 20171006 21:10:59< gfgtdf> but var migth be of the form a.b 20171006 21:11:07< vultraz> hmmmm 20171006 21:11:17< vultraz> no, i didn't test that :/ 20171006 21:11:18< gfgtdf> vultraz: so it might generate wml like [options] a.b = content 20171006 21:11:26< vultraz> is that illegal? 20171006 21:11:35< gfgtdf> i think it is. 20171006 21:11:46< gfgtdf> not sure which cioes exactly check that. 20171006 21:11:50< gfgtdf> codes 20171006 21:12:20< gfgtdf> i don't think config::operator[] will fail, but writign/readon from disk may 20171006 21:13:43< vultraz> what would you recommend 20171006 21:14:37< vultraz> i mean you wanted to make this change yourself remember 20171006 21:14:38< vultraz> :/ 20171006 21:18:22< gfgtdf> vultraz: yes i remember, and the i stopped it becasue if that problem.. ut ofc you coudl also store in the the [options] in the form [options][a]b=content, that is do the variable_access_create... stuff in mp_options_helper.cpp and then only to a config append in save_game.cpp 20171006 21:19:23-!- fabi [~fabi@2a02:810c:c840:2e65:781d:c63a:10f1:7ef2] has joined #wesnoth-dev 20171006 21:19:41-!- fabi [~fabi@2a02:810c:c840:2e65:781d:c63a:10f1:7ef2] has quit [Changing host] 20171006 21:19:41-!- fabi [~fabi@wesnoth/developer/fendrin] has joined #wesnoth-dev 20171006 21:20:25< vultraz> hmmm 20171006 21:20:30< vultraz> that seems very complicated : 20171006 21:20:32< vultraz> :/ 20171006 21:23:37-!- fabi__ [~fabi@2a02:810c:c840:2e65:91e4:16f:da90:5e80] has quit [Ping timeout: 255 seconds] 20171006 22:02:09-!- louis94 [~~louis94@91.138-200-80.adsl-dyn.isp.belgacom.be] has quit [Quit: Konversation terminated!] 20171006 22:02:22-!- louis94 [~~louis94@91.138-200-80.adsl-dyn.isp.belgacom.be] has joined #wesnoth-dev 20171006 22:07:29-!- louis94 [~~louis94@91.138-200-80.adsl-dyn.isp.belgacom.be] has quit [Ping timeout: 248 seconds] 20171006 23:17:28-!- boucman [~rosen@wesnoth/developer/boucman] has quit [Remote host closed the connection] 20171006 23:57:24-!- gfgtdf [~chatzilla@x4e368d4f.dyn.telefonica.de] has quit [Quit: ChatZilla 0.9.93 [Firefox 55.0.3/20170824053622]] 20171006 23:57:58-!- fabi_ [~fabi@2a02:810c:c840:2e65:89ed:3583:27a5:4858] has joined #wesnoth-dev --- Log closed Sat Oct 07 00:00:24 2017