-void AliasManager::processInput(const BufferInfo &info, const QString &msg_, CommandList &list) {
- QString msg = msg_;
-
- // leading slashes indicate there's a command to call unless there is another one in the first section (like a path /proc/cpuinfo)
- int secondSlashPos = msg.indexOf('/', 1);
- int firstSpacePos = msg.indexOf(' ');
- if(!msg.startsWith('/') || (secondSlashPos != -1 && (secondSlashPos < firstSpacePos || firstSpacePos == -1))) {
- if(msg.startsWith("//"))
- msg.remove(0, 1); // //asdf is transformed to /asdf
- msg.prepend("/SAY "); // make sure we only send proper commands to the core
- } else {
- // check for aliases
- QString cmd = msg.section(' ', 0, 0).remove(0, 1).toUpper();
- for(int i = 0; i < count(); i++) {
- if((*this)[i].name.toUpper() == cmd) {
- expand((*this)[i].expansion, info, msg.section(' ', 1), list);
- return;
- }
+
+void AliasManager::processInput(const BufferInfo &info, const QString &msg_, CommandList &list)
+{
+ QString msg = msg_;
+
+ // leading slashes indicate there's a command to call unless there is another one in the first section (like a path /proc/cpuinfo)
+ // For those habitally tied to irssi, "/ " also makes the rest of the line a literal message
+ int secondSlashPos = msg.indexOf('/', 1);
+ int firstSpacePos = msg.indexOf(' ');
+ if (!msg.startsWith('/') || firstSpacePos == 1 || (secondSlashPos != -1 && (secondSlashPos < firstSpacePos || firstSpacePos == -1))) {
+ if (msg.startsWith("//"))
+ msg.remove(0, 1); // "//asdf" is transformed to "/asdf"
+ else if (msg.startsWith("/ "))
+ msg.remove(0, 2); // "/ /asdf" is transformed to "/asdf"
+ msg.prepend("/SAY "); // make sure we only send proper commands to the core
+ }
+ else {
+ // check for aliases
+ QString cmd = msg.section(' ', 0, 0).remove(0, 1).toUpper();
+ for (int i = 0; i < count(); i++) {
+ if ((*this)[i].name.toUpper() == cmd) {
+ expand((*this)[i].expansion, info, msg.section(' ', 1), list);
+ return;
+ }
+ }