Subversion Repositories public

Rev

Rev 51 | Rev 61 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 51 Rev 55
Line 60... Line 60...
60
 
60
 
61
void EventDispatcher::Unregister(InotifyWatch* pWatch)
61
void EventDispatcher::Unregister(InotifyWatch* pWatch)
62
{
62
{
63
  IWUT_MAP::iterator it = m_maps.find(pWatch);
63
  IWUT_MAP::iterator it = m_maps.find(pWatch);
64
  if (it == m_maps.end())
64
  if (it == m_maps.end())
65
    return;
-
 
66
   
-
 
67
  m_maps.erase(it);
65
    m_maps.erase(it);
68
}
66
}
69
 
67
 
70
void EventDispatcher::UnregisterAll(UserTable* pTab)
68
void EventDispatcher::UnregisterAll(UserTable* pTab)
71
{
69
{
72
  IWUT_MAP::iterator it = m_maps.begin();
70
  IWUT_MAP::iterator it = m_maps.begin();
Line 157... Line 155...
157
      size_t px = pos + 1;
155
      size_t px = pos + 1;
158
      if (cs[px] == '$') {
156
      if (cs[px] == '$') {
159
        cmd.append(cs.substr(oldpos, pos-oldpos+1));
157
        cmd.append(cs.substr(oldpos, pos-oldpos+1));
160
        oldpos = pos + 2;
158
        oldpos = pos + 2;
161
      }
159
      }
162
      else if (cs[px] == '@') {
-
 
163
        cmd.append(cs.substr(oldpos, pos-oldpos));
-
 
164
        cmd.append(pW->GetPath());
-
 
165
        oldpos = pos + 2;
-
 
166
      }
-
 
167
      else if (cs[px] == '#') {
-
 
168
        cmd.append(cs.substr(oldpos, pos-oldpos));
-
 
169
        cmd.append(rEvt.GetName());
-
 
170
        oldpos = pos + 2;
-
 
171
      }
-
 
172
      else {
160
      else {
173
        cmd.append(cs.substr(oldpos, pos-oldpos));
161
        cmd.append(cs.substr(oldpos, pos-oldpos));
-
 
162
        if (cs[px] == '@') {          // base path
-
 
163
          cmd.append(pW->GetPath());
-
 
164
          oldpos = pos + 2;
-
 
165
        }
-
 
166
        else if (cs[px] == '#') {     // file name
-
 
167
          cmd.append(rEvt.GetName());
-
 
168
          oldpos = pos + 2;
-
 
169
        }
-
 
170
        else if (cs[px] == '%') {     // mask symbols
-
 
171
          std::string s;
-
 
172
          rEvt.DumpTypes(s);
-
 
173
          cmd.append(s);
-
 
174
          oldpos = pos + 2;
-
 
175
        }
-
 
176
        else if (cs[px] == '&') {     // numeric mask
-
 
177
          char* s;
-
 
178
          asprintf(&s, "%u", (unsigned) rEvt.GetMask());
-
 
179
          cmd.append(s);
-
 
180
          free(s);
-
 
181
          oldpos = pos + 2;
-
 
182
        }
-
 
183
        else {
174
        oldpos = pos + 1;
184
          oldpos = pos + 1;
-
 
185
        }
175
      }
186
      }
176
    }
187
    }
177
    else {
188
    else {
178
      cmd.append(cs.substr(oldpos, pos-oldpos));
189
      cmd.append(cs.substr(oldpos, pos-oldpos));
179
      oldpos = pos + 1;
190
      oldpos = pos + 1;
Line 239... Line 250...
239
bool UserTable::PrepareArgs(const std::string& rCmd, int& argc, char**& argv)
250
bool UserTable::PrepareArgs(const std::string& rCmd, int& argc, char**& argv)
240
{
251
{
241
  if (rCmd.empty())
252
  if (rCmd.empty())
242
    return false;
253
    return false;
243
   
254
   
244
  StringTokenizer tok(rCmd, ' ');
255
  StringTokenizer tok(rCmd, ' ', '\\');
245
  std::deque<std::string> args;
256
  std::deque<std::string> args;
246
  while (tok.HasMoreTokens()) {
257
  while (tok.HasMoreTokens()) {
247
    args.push_back(tok.GetNextToken());
258
    args.push_back(tok.GetNextToken());
248
  }
259
  }
249
 
260