<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Sun, Nov 27, 2016 at 1:00 AM Achim Gratz <<a href="mailto:Stromeko@nexgo.de">Stromeko@nexgo.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Eric S. Raymond writes:<br class="gmail_msg">
> OK, there are two ways we can handle this.<br class="gmail_msg">
<br class="gmail_msg">
The third way is building a hash table that maps each possible unique<br class="gmail_msg">
prefix to the actual full-length command.<br class="gmail_msg"><br class="gmail_msg"></blockquote><div><br></div><div>I was on a project years ago that did that (minimal length matching of command strings).</div><div><br></div><div>Someone on team dug up an amazing little utility that ingested a list of strings, and emitted a human-unreadable table-driven maximally efficient C function that implemented some computer science magic state machine character parser that took as a parameter char* and returned a integer or enum that designated one of the target strings that was minimal matched by the input.</div><div><br></div><div>We then made running this code generator a Makefile production, and compiled the generator itself as another dependent Makefile production.</div><div><br></div><div>I'm struggling now to remember it's name...</div><div><br></div><div><br></div><div>...m</div><div><br></div></div></div>