On Sunday 02 June 2013 04:39:32 Michał Górny wrote: > Dnia 2013-06-02, o godz. 03:29:33 Mike Frysinger napisał(a): > > On Sunday 02 June 2013 03:16:53 Michał Górny wrote: > > > Dnia 2013-06-02, o godz. 03:09:31 Mike Frysinger napisał(a): > > > > On Sunday 02 June 2013 02:51:34 Michał Górny wrote: > > > > > Dnia 2013-06-01, o godz. 23:03:20 Mike Frysinger napisał(a): > > > > > > simple set of helpers to save/restore a variable in a limited > > > > > > section of code > > > > > > > > > > > > you can see an example of it in action at the end of the file > > > > > > where i need to tweak epatch (and no, doing `LC_COLLATE=C set -- > > > > > > ....` does not work). > > > > > > > > > > Why the ugly hackery instead of proper 'local' scope? > > > > > > > > there's no way to undo the local thus it affects the rest of the > > > > func. this makes sure the change is actually localized to where it > > > > is needed. > > > > > > By use of global variables and a bunch of additional code and evals. > > > > the implementation details of estack_* doesn't matter > > It's not beautiful language with proper local scopes, so it *does* > matter. then go ahead and propose something different. otherwise you're pointlessly twisting in the wind. > > > Also, do you really want the collation to be changed only in this one > > > place? This looks weird to me. > > > > yes, i only want to force it here, because it's the only place where > > collation matters in the func currently. > > So, effectively, changing it once in the beginning of the function > would be simpler and wouldn't cost anything. most likely, *today*, yes. in the future, who knows. but since this is the only place in the func where we need to force a specific sorting, it makes sense to localize the change to that. i snipped the rest of your e-mail because it wasn't worth responding to -mike