<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">On Mar 4, 2019, at 4:03 PM, Robert Goldman <<a href="mailto:rpgoldman@sift.info" class="">rpgoldman@sift.info</a>> wrote:<br class=""><div><blockquote type="cite" class=""><span style="font-family: sans-serif;" class="">That sounds reasonable.  But wouldn't it be equally reasonable to add a </span><code bgcolor="#F7F7F7" class="" style="background-color: rgb(247, 247, 247); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; margin: 0px; padding: 0px 0.4em;">readable-p</code><span style="font-family: sans-serif;" class=""> optional argument to the existing function?  "Readable" isn't </span><em class="" style="font-family: sans-serif;">quite</em><span style="font-family: sans-serif;" class=""> the right term, but the notion is that one can round-trip through </span><code bgcolor="#F7F7F7" class="" style="background-color: rgb(247, 247, 247); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; margin: 0px; padding: 0px 0.4em;">kbd</code><span style="font-family: sans-serif;" class="">, and I call it "readable" by analogy to Common Lisp's </span><code bgcolor="#F7F7F7" class="" style="background-color: rgb(247, 247, 247); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; margin: 0px; padding: 0px 0.4em;">print-readably</code><span style="font-family: sans-serif;" class=""> flag.</span><br class=""></blockquote><div><br class=""></div><div>The definition of that function is "Return a pretty description of key-sequence KEYS”.</div><div><br class=""></div><div>“Pretty” implies human-readable.  Pretty means: not meant for automatic parsing.</div><div><br class=""></div><div>Second, if you do that, how are you going to check if you can call this function that way?  It’s not easy to check for additional parameters, and even if you do, how do you know their semantics?</div><div><br class=""></div><div>You’d still want to call `aquamacs-p’?  Then you’re coding up logic or knowledge about the platform in the client program, and that’s somewhere between inelegant and tacky.</div><div><br class=""></div><blockquote type="cite" class=""><div class=""><div style="font-family:sans-serif" class=""><div style="white-space:normal" class=""><p dir="auto" class="">I'm open to correction, though -- you know far more about the internals of Emacs than I do!  For example, I have no idea if one can effectively use optional arguments in C functions.</p></div></div></div></blockquote><div>Yes, that bit is no problem at all.</div><div><br class=""></div><blockquote type="cite" class=""><div class=""><div class=""><div style="font-family:sans-serif" class=""><div style="white-space:normal" class=""><p dir="auto" class="">Any idea why this function is written in C? It doesn't seem obviously like an inner-loop function.</p>
</div>
</div>
</div>

</div></blockquote></div>Not sure what you mean, but that wouldn’t be the (one) defined criterion.  I haven’t looked at the function.  I think it’s used a lot where the menus are drawn, and that is certainly platform-specific, and used a lot during redisplay.  Calling Lisp functions from there can be problematic.<div class=""><br class=""></div><div class=""><div class="">What is SLIME trying to achieve here?</div><div class="">That’s the first question we need to ask.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">David</div></div></body></html>