<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jan 24, 2011, at 8:53 PM, Michael Mullin wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Hello<br><br>I might be misunderstanding clang_getCursorUSR.  I believe it's purpose is to facilitate comparing entities across translation units, but Im not quite sure how to exactly go about the comparison.<br><br>Is the client program supposed to recursively descend (visitChildren) the second translation unit, testing clang_getCursorUSR on each cursor against the cursor from the first translation unit it wants to find?<br></blockquote><div><br></div><div>Yes, that's one way. The assumption that libclang makes is that there is some external database that will help perform mappings across </div><br><blockquote type="cite">is there a way to keep this functionality "inside" the libclang api rather than have the client be responsible for it?<br><br>eg<br>since there is a function<br>CXString clang_getCursorUSR( CXCursor );<br><br>
should there be a function<br><br>CXCursor clang_getCursorFromUSR( CXString );<br><br>??<br></blockquote></div><div><br></div>I think that would make a great addition. It's going to require writing the equivalent of a demangler for USRs (mapping from USRs to entity names and such) along with a localized search to find matching USRs, but it would be really useful.<div><br><div><span class="Apple-tab-span" style="white-space:pre">        </span>- Doug</div></div></body></html>