teemperor added a comment. In D81001#2199205 <https://reviews.llvm.org/D81001#2199205>, @gedatsu217 wrote:
>> So the way the issue with the single space is now solved is by doing >> CC_REDISPLAY when we're only adding the single space? Isn't that also >> deleting the whole autosuggestion? > > Yes. CC_REDISPLAY can delete all the gray characters left. So, if I would type "b" and then press tab, the autosuggestion would briefly disappear until I type the next character? ================ Comment at: lldb/source/Host/common/Editline.cpp:1081 + if (spaces_to_print > 0) { + std::string spaces = std::string((int)spaces_to_print, ' '); + fputs(spaces.c_str(), m_output_file); ---------------- gedatsu217 wrote: > teemperor wrote: > > The `(int)` cast isn't necessary. > I found that lldb crashed. Sorry, I should have checked more when I uploaded > this. > > I use spaces_to_print as size_t, but this sometimes becomes less than zero. > So, I have to use this as int. > > Yeah I see that spaces_to_print can overflow. How about this code instead that avoids all the casting and overflowing and so on: ``` lang=c++ size_t new_autosuggestion_size = line.size() + to_add->length(); // If the previous command line + autosuggestion was longer than the // current autosuggestion, make sure that the autosuggestion is overwriting // the old output by enough adding trailing spaces. if (new_autosuggestion_size < m_previous_autosuggestion_size) { size_t spaces_to_print = m_previous_autosuggestion_size - new_autosuggestion_size; std::string spaces = std::string(spaces_to_print, ' '); fputs(spaces.c_str(), m_output_file); } m_previous_autosuggestion_size = new_autosuggestion_size; ``` CHANGES SINCE LAST ACTION https://reviews.llvm.org/D81001/new/ https://reviews.llvm.org/D81001 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits