Skip to content
Snippets Groups Projects
  1. Sep 09, 2008
  2. Sep 08, 2008
  3. Sep 07, 2008
  4. Sep 06, 2008
  5. Sep 05, 2008
  6. Sep 04, 2008
    • Steve Murphy's avatar
      Merged revisions 141094 via svnmerge from · ec25f4be
      Steve Murphy authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r141094 | murf | 2008-09-04 17:15:07 -0600 (Thu, 04 Sep 2008) | 70 lines
      
      (closes issue #13357)
      Reported by: pj
      Tested by: murf
      
      (closes issue #13416)
      Reported by: yarns
      Tested by: murf
      
      If you find this message overly verbose, relax, it's probably
      not meant for you. This message is meant for probably only
      two people in the whole world: me, or the poor schnook that
      has to maintain this code because I'm either dead or unavailable
      at the moment.
      
      This fix solves two reports, both having to do with embedding
      a function call in a ${} construct. It was tricky because the
      funccall syntax has parenthesis () in it. And up till now,
      the 'word' token in the flex stuff didn't allow that, because
      it would tend to steal the LP and RP tokens. To be truthful,
      the "word" token was the trickiest, most unstable thing in
      the whole lexer. I was lucky it made this long without complaints.
      I had to choose every character in the pattern with extreme
      care, and I knew that someday I'd have to revisit it. Well,
      the day has come.
      
      So, my brilliant idea (and I'm being modest), was to use the 
      surrounding ${} construct to make a state machine and capture 
      everything in it, no matter what it contains. But, I have to now
      treat the word token like I did with comments, in that I turn
      the whole thing into a state-machine sort of spec, with new
      contexts "curlystate", "wordstate", and "brackstate".
      
      Wait a minute, "brackstate"? Yes, well, it didn't take very many
      regression tests to point out if I do this for ${} constructs,
      I also have to do it with the $[] constructs, too.
      
      I had to create a separate pcbstack2 and pcbstack3 because
      these constructs can occur inside macro argument lists, and
      when we have two state machines operating on the same structures
      we'd get problems otherwise. I guess I could have stopped at
      pcbstack2 and had the brackstate stuff share it, but it doesn't
      hurt to be safe. So, the pcbpush and pcbpop routines also now
      have versions for "2" and "3".
      
      I had to add the {KEYWORD} construct to the initial pattern for
      "word", because previously word would match stuff like "default7",
      because it was a longer match than the keyword "default". But,
      not any more, because the word pattern only matches only one or
      two characters now, and it will always lose. So, I made it the
      winner again by making an optional match on any of the keywords
      before it's normal pattern.
      
      I added another regression test to make sure we don't
      lose this in future edits, and had to fix just one regression,
      where it no longer reports a 'cascaded' error, which I guess
      is a plus.
      
      I've given some thought as to whether to apply these fixes to
      1.4 and the 1.6.x releases, vs trunk; I decided to put it in
      1.4 because one of the bug reports was against 1.4; and it
      is unexpected that AEL cannot handle this situation. It actually
      reduced the amount of useless "cascade" error messages that
      appeared in the regressions (by one line, ehhem). There is
      a possible side-effect in that it does now do more careful
      checking of what's in those ${} constructs, as far as matching
      parens, and brackets are concerned. Some users may find a an
      insidious problem and correct it this way. This should be 
      exceedingly rare, I hope.
      
      
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@141115 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      ec25f4be
    • Jeff Peeler's avatar
      Merged revisions 141028 via svnmerge from · f7efe4a1
      Jeff Peeler authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r141028 | jpeeler | 2008-09-04 12:00:29 -0500 (Thu, 04 Sep 2008) | 7 lines
      
      (closes issue #11979)
      Fixes multiple parking problems:
      Crash when executing a park on an extension dialed by AGI due to not returning the proper return code.
      Crash when using a builtin feature that was a subset of a enabled dynamic feature.
      Crash due to always hanging up the peer despite the fact that the peer was supposed to be parked.
      
      
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@141039 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      f7efe4a1
  7. Sep 03, 2008
  8. Sep 02, 2008
Loading