| 185 break; |
185 break; |
| 186 |
186 |
| 187 case SVRC_UPDATE: |
187 case SVRC_UPDATE: |
| 188 process_server_updates (packet); |
188 process_server_updates (packet); |
| 189 break; |
189 break; |
| 190 |
|
| 191 case SVRC_TOOMANYTABCOMPLETES: |
|
| 192 { |
|
| 193 unsigned int numCompletions = packet.read_short(); |
|
| 194 print ("%1 completions for '%2'.\n", |
|
| 195 int (numCompletions), m_lastTabComplete); |
|
| 196 } |
|
| 197 break; |
|
| 198 |
|
| 199 case SVRC_TABCOMPLETE: |
|
| 200 { |
|
| 201 StringList completes; |
|
| 202 |
|
| 203 for (signed int i = packet.read_byte(); i > 0; --i) |
|
| 204 completes << packet.read_string(); |
|
| 205 |
|
| 206 if (completes.size() == 1) |
|
| 207 Interface::tab_complete (m_lastTabComplete, completes[0]); |
|
| 208 else if (not completes.is_empty()) |
|
| 209 { |
|
| 210 print ("Completions for '%1':\n", m_lastTabComplete); |
|
| 211 |
|
| 212 for (int i = 0; i < completes.size(); i += 8) |
|
| 213 { |
|
| 214 Range<int> spliceRange (i, min (i + 8, completes.size() - 1)); |
|
| 215 StringList splice (completes.splice (spliceRange)); |
|
| 216 print ("- %1\n", splice.join (", ")); |
|
| 217 } |
|
| 218 } |
|
| 219 } |
|
| 220 break; |
|
| 221 } |
190 } |
| 222 } |
191 } |
| 223 } |
192 } |
| 224 catch (std::exception& e) |
193 catch (std::exception& e) |
| 225 { |
194 { |
| 369 METHOD |
338 METHOD |
| 370 RCONSession::level() const -> const String& |
339 RCONSession::level() const -> const String& |
| 371 { |
340 { |
| 372 return m_level; |
341 return m_level; |
| 373 } |
342 } |
| 374 |
|
| 375 // ------------------------------------------------------------------------------------------------- |
|
| 376 // |
|
| 377 METHOD |
|
| 378 RCONSession::request_tab_complete (const String& part) -> void |
|
| 379 { |
|
| 380 if (m_serverProtocol >= 4) |
|
| 381 { |
|
| 382 Bytestream packet; |
|
| 383 packet.write_byte (CLRC_TABCOMPLETE); |
|
| 384 packet.write_string (part); |
|
| 385 send (packet); |
|
| 386 bump_last_ping(); |
|
| 387 m_lastTabComplete = part; |
|
| 388 } |
|
| 389 else |
|
| 390 print ("Server protocol is %1, cannot tab-complete\n", m_serverProtocol); |
|
| 391 } |
|