summaryrefslogtreecommitdiffstats
path: root/src/cmdmapper.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2012-06-10 09:28:22 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2012-06-10 09:28:22 (GMT)
commit0ce3aea886f4e95da56d164b3944fd54d3d68f89 (patch)
tree6709ddc7b1764dc3b20bbac7eb36c05edcc91e03 /src/cmdmapper.cpp
parent1983c30b71bf92b3fa6bfedbb98451c3b7f74498 (diff)
downloadDoxygen-0ce3aea886f4e95da56d164b3944fd54d3d68f89.zip
Doxygen-0ce3aea886f4e95da56d164b3944fd54d3d68f89.tar.gz
Doxygen-0ce3aea886f4e95da56d164b3944fd54d3d68f89.tar.bz2
Release-1.8.1.1
Diffstat (limited to 'src/cmdmapper.cpp')
-rw-r--r--src/cmdmapper.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/cmdmapper.cpp b/src/cmdmapper.cpp
index c4379e3..9a723c2 100644
--- a/src/cmdmapper.cpp
+++ b/src/cmdmapper.cpp
@@ -18,6 +18,13 @@
#include "cmdmapper.h"
+/** Call representing a mapping from a command name to a command ID. */
+struct CommandMap
+{
+ const char *cmdName;
+ int cmdId;
+};
+
CommandMap cmdMap[] =
{
{ "a", CMD_EMPHASIS },
@@ -198,6 +205,25 @@ CommandMap htmlTagMap[] =
Mapper *Mappers::cmdMapper = new Mapper(cmdMap,TRUE);
Mapper *Mappers::htmlTagMapper = new Mapper(htmlTagMap,FALSE);
+int Mapper::map(const char *n)
+{
+ QCString name=n;
+ if (!m_cs) name=name.lower();
+ int *result;
+ return !name.isEmpty() && (result=m_map.find(name)) ? *result: 0;
+}
+
+Mapper::Mapper(const CommandMap *cm,bool caseSensitive) : m_map(89), m_cs(caseSensitive)
+{
+ m_map.setAutoDelete(TRUE);
+ const CommandMap *p = cm;
+ while (p->cmdName)
+ {
+ m_map.insert(p->cmdName,new int(p->cmdId));
+ p++;
+ }
+}
+
void Mappers::freeMappers()
{
delete cmdMapper; cmdMapper = 0;