aboutsummaryrefslogtreecommitdiffstats
path: root/pbx
AgeCommit message (Collapse)AuthorFilesLines
2010-03-02Merged revisions 249912 via svnmerge from lmadsen1-23/+76
https://origsvn.digium.com/svn/asterisk/trunk ........ r249912 | lmadsen | 2010-03-02 14:21:19 -0500 (Tue, 02 Mar 2010) | 6 lines Convert some DUNDI functions to XML documentation. (closes issue #16798) Reported by: snuffy Patches: xml_dundi.diff uploaded by snuffy (license 35) ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@249916 f38db490-d61c-443f-a65b-d21fe96a405b
2010-01-24Merged revisions 242521 via svnmerge from tilghman1-1/+1
https://origsvn.digium.com/svn/asterisk/trunk ................ r242521 | tilghman | 2010-01-24 00:40:31 -0600 (Sun, 24 Jan 2010) | 15 lines Merged revisions 242520 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r242520 | tilghman | 2010-01-24 00:33:01 -0600 (Sun, 24 Jan 2010) | 8 lines Only rebuild bison and flex source files on demand, if bison and flex are detected by the configure script. Changed after discussion on the -dev list about possible unnecessary build failures, due to checkouts/untars causing these special source files to possibly be newer than their resulting C files. This should additionally ensure that nobody need learn about extra Makefile arguments to ensure the proper files get rebuilt when changes are made to these special source files. ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@242522 f38db490-d61c-443f-a65b-d21fe96a405b
2009-12-04Merged revisions 233093 via svnmerge from mnick1-4/+20
https://origsvn.digium.com/svn/asterisk/trunk ........ r233093 | mnick | 2009-12-04 11:15:47 -0600 (Fri, 04 Dec 2009) | 8 lines Parse global variables or expressions in hint extensions Parse global variables or expressions in hint extensions. Like: exten => 400,hint,DAHDI/i2/${GLOBAL(var)} (closes issue #16166) Reported by: rmudgett Tested by: mnick, rmudgett ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@233240 f38db490-d61c-443f-a65b-d21fe96a405b
2009-11-30Backport a tiny fix from trunk that makes GCC 4.4.x happier.kpfleming1-2/+2
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@231695 f38db490-d61c-443f-a65b-d21fe96a405b
2009-11-25Merged revisions 231189 via svnmerge from mnicholson1-1/+1
https://origsvn.digium.com/svn/asterisk/trunk ........ r231189 | mnicholson | 2009-11-25 09:42:48 -0600 (Wed, 25 Nov 2009) | 4 lines Load pbx_lua with global symbols to allow linking with other lua libraries. Found by Maxim Litnitskiy. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@231191 f38db490-d61c-443f-a65b-d21fe96a405b
2009-08-30Merged revisions 214819 via svnmerge from tilghman1-0/+6
https://origsvn.digium.com/svn/asterisk/trunk ........ r214819 | tilghman | 2009-08-30 01:43:04 -0500 (Sun, 30 Aug 2009) | 4 lines If lua is detected with the lua5.1 prefix (or not), adjust the include path accordingly. Based upon feedback to a release announcement on the -users list. See http://lists.digium.com/pipermail/asterisk-users/2009-August/236954.html ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@214822 f38db490-d61c-443f-a65b-d21fe96a405b
2009-08-25Merged revisions 213975 via svnmerge from tilghman1-25/+26
https://origsvn.digium.com/svn/asterisk/trunk ........ r213975 | tilghman | 2009-08-25 01:51:12 -0500 (Tue, 25 Aug 2009) | 6 lines DUNDILOOKUP function in 1.6 should use comma delimiters. (closes issue #15322) Reported by: chappell Patches: dundilookup-0015322.patch uploaded by chappell (license 8) ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@213978 f38db490-d61c-443f-a65b-d21fe96a405b
2009-08-10AST-2009-005tilghman4-19/+19
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@211580 f38db490-d61c-443f-a65b-d21fe96a405b
2009-08-01Merged revisions 209760-209761 via svnmerge from kpfleming1-1/+2
https://origsvn.digium.com/svn/asterisk/trunk ................ r209760 | kpfleming | 2009-07-31 20:03:07 -0500 (Fri, 31 Jul 2009) | 13 lines Merged revisions 209759 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r209759 | kpfleming | 2009-07-31 19:52:00 -0500 (Fri, 31 Jul 2009) | 7 lines Minor changes inspired by testing with latest GCC. The latest GCC (what will become 4.5.x) has a few new warnings, that in these cases found some either downright buggy code, or at least seriously poorly designed code that could be improved. ........ ................ r209761 | kpfleming | 2009-07-31 20:04:06 -0500 (Fri, 31 Jul 2009) | 1 line Revert accidental Makefile change. ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@209816 f38db490-d61c-443f-a65b-d21fe96a405b
2009-07-27Just replacing typos "recieved" with "received".dbrooks1-1/+1
From issue #15360, forgot to apply to trunk and other branches. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@209063 f38db490-d61c-443f-a65b-d21fe96a405b
2009-07-24Merged revisions 208709 via svnmerge from russell1-177/+177
https://origsvn.digium.com/svn/asterisk/trunk ........ r208709 | russell | 2009-07-24 16:12:43 -0500 (Fri, 24 Jul 2009) | 2 lines Remove trailing whitespace. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@208710 f38db490-d61c-443f-a65b-d21fe96a405b
2009-07-21Merged revisions 207680 via svnmerge from kpfleming1-2/+2
https://origsvn.digium.com/svn/asterisk/trunk ................ r207680 | kpfleming | 2009-07-21 08:28:04 -0500 (Tue, 21 Jul 2009) | 18 lines Merged revisions 207647 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r207647 | kpfleming | 2009-07-21 08:04:44 -0500 (Tue, 21 Jul 2009) | 12 lines Ensure that user-provided CFLAGS and LDFLAGS are honored. This commit changes the build system so that user-provided flags (in ASTCFLAGS and ASTLDFLAGS) are supplied to the compiler/linker *after* all flags provided by the build system itself, so that the user can effectively override the build system's flags if desired. In addition, ASTCFLAGS and ASTLDFLAGS can now be provided *either* in the environment before running 'make', or as variable assignments on the 'make' command line. As a result, the use of COPTS and LDOPTS is no longer necessary, so they are no longer documented, but are still supported so as not to break existing build systems that supply them when building Asterisk. ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@207685 f38db490-d61c-443f-a65b-d21fe96a405b
2009-06-18Merged revisions 201678 via svnmerge from dvossel1-6/+3
https://origsvn.digium.com/svn/asterisk/trunk ........ r201678 | dvossel | 2009-06-18 11:37:42 -0500 (Thu, 18 Jun 2009) | 11 lines fixes some memory leaks and redundant conditions (closes issue #15269) Reported by: contactmayankjain Patches: patch.txt uploaded by contactmayankjain (license 740) memory_leak_stuff.trunk.diff uploaded by dvossel (license 671) Tested by: contactmayankjain, dvossel ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@201679 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-29Merged revisions 191136 via svnmerge from dbrooks1-66/+0
https://origsvn.digium.com/svn/asterisk/trunk ........ r191136 | dbrooks | 2009-04-29 13:32:58 -0500 (Wed, 29 Apr 2009) | 3 lines Removing crufty code that is no longer necessary. Code cleanup. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@191139 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-27Merged revisions 184630 via svnmerge from russell1-1/+1
https://origsvn.digium.com/svn/asterisk/trunk ........ r184630 | russell | 2009-03-27 09:00:18 -0500 (Fri, 27 Mar 2009) | 2 lines Change g_eid to ast_eid_default. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@184632 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-11Fix malloc debug macros to work properly with h323.jpeeler1-1/+1
The main problem here was that cstdlib was undefining free thereby causing the proper debug macros to not be used. ast_h323.cxx has been changed to call ast_free instead to avoid the issue. A few other issues were addressed: - There were a few instances of functions improperly passing ast_free instead of ast_free_ptr. - Some clean up was done to avoid the debug macros intentionally being redefined. (copied below from Kevin's commit, appreciate the help) - disable astmm.h from doing anything when STANDALONE is defined, which is used by the tools in the utils/ directory that use parts of Asterisk header files in hackish ways; also ensure that utils/extconf.c and utils/conf2ael.c are compiled with STANDALONE defined. (closes issue #13593) Reported by: pj git-svn-id: http://svn.digium.com/svn/asterisk/trunk@181135 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-03Convert pbx_spool to use string fields instead of statically-sized buffers.mmichelson1-33/+41
In tests run after making this conversion, I noticed an approximate 85% reduction in memory usage for call file processing. Review: http://reviewboard.digium.com/r/168/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@179745 f38db490-d61c-443f-a65b-d21fe96a405b
2009-02-04Ensure that commas placed in the middle of extension character classes do nottilghman1-1/+31
interfere with correct parsing of the extension. Also, if an unterminated character class DOES make its way into the pbx core (through some other method), ensure that it does not crash Asterisk. (closes issue #14362) Reported by: Nick_Lewis Patches: 20090129__bug14362.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76 git-svn-id: http://svn.digium.com/svn/asterisk/trunk@173311 f38db490-d61c-443f-a65b-d21fe96a405b
2009-01-22Merged revisions 170158 via svnmerge from tilghman1-0/+4
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r170158 | tilghman | 2009-01-22 11:18:07 -0600 (Thu, 22 Jan 2009) | 6 lines Allow global variables after substitution to be as long as other variables. (closes issue #14263) Reported by: markd Patches: 20090120__bug14263.diff.txt uploaded by Corydon76 (license 14) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@170165 f38db490-d61c-443f-a65b-d21fe96a405b
2009-01-17Change intializer types. Found while working on asterisk-cpp. I have a newseanbright1-8/+7
favorite error message from g++: pbx_dundi.c:4580: sorry, unimplemented: non-trivial designated initializers not supported I like it when compilers are apologetic. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@169116 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-18Numerous documentation updates.file1-1/+1
(closes issue #13970) Reported by: pkempgen Patches: __20081217_cli_usage_fixes.patch.txt uploaded by blitzrage (license 10) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@165792 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-17A possibly "horrible fix" for a "horribly broken"murf1-0/+5
situation. As stuff shifts around in the asterisk code, the miscellaneous inclusions from the standalone stuff gets broken. There's no easy fix for this situation. I made sure that everything in utils builds without problem ***AND*** that aelparse runs the regressions correctly with the following make menuselect options both on and off: DONT_OPTIMIZE DEBUG_THREADS DEBUG_CHANNEL_LOCKS MALLOC_DEBUG MTX_PROFILE DEBUG_SCHEDULER DEBUG_THREADLOCALS DETECT_DEADLOCKS CHANNEL_TRACE I think from now on, I'm going to #undef all these features in the various utils native files; I guess I could do the same for the copied-in files, surrounded by STANDALONE ifdef. A standalone isn't going to care about threads, mutexes, etc. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@165071 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-17fixed the regressionsmurf2-77/+77
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@165039 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-16Be more detailed about why the include did not get included.file1-1/+25
(closes issue #14071) Reported by: kshumard Patches: pbx_config.patch.improvederroroutput.txt uploaded by kshumard (license 92) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@164733 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-15Allow disabling pattern match searches within the Realtime dialplan switch.tilghman1-3/+18
(closes issue #13698) Reported by: fhackenberger Patches: 20081211__bug13698.diff.txt uploaded by Corydon76 (license 14) Tested by: fhackenberger git-svn-id: http://svn.digium.com/svn/asterisk/trunk@164485 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-15When a reload is issued, always process the configuration for dundi.conf.russell1-3/+2
The reason is that a reload can be used to refresh DNS lookups for defined peers. Even if the config file hasn't changed, we want to process it for that purpose. (closes issue #13776) Reported by: kombjuder git-svn-id: http://svn.digium.com/svn/asterisk/trunk@164272 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-12Merged revisions 163511 via svnmerge from russell1-15/+15
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r163511 | russell | 2008-12-12 08:40:31 -0600 (Fri, 12 Dec 2008) | 5 lines Specify uint32_t for variables storing a CRC32 so that it is actually 32 bits on 64-bit machines, as well. (inspired by issue #13879) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@163512 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-11Merged revisions 163316 via svnmerge from mnicholson1-1/+41
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r163316 | mnicholson | 2008-12-11 16:44:31 -0600 (Thu, 11 Dec 2008) | 9 lines Clean up the dundi cache every 5 minutes. (closes issue #13819) Reported by: adomjan Patches: pbx_dundi.c-clearcache.patch uploaded by adomjan (license 487) dundi_clearecache3.diff uploaded by mnicholson (license 96) Tested by: adomjan ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@163317 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-05Janitor, use ARRAY_LEN() when possible.eliel3-6/+6
(closes issue #13990) Reported by: eliel Patches: array_len.diff uploaded by eliel (license 64) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@161218 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-03Merged revisions 160558 via svnmerge from tilghman1-2/+6
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r160558 | tilghman | 2008-12-03 11:34:34 -0600 (Wed, 03 Dec 2008) | 7 lines If an entry is added to the directory during a scan when another entry expires, then that new entry will not be processed promptly, but must wait for either a future entry to start or a current entry's retry to occur. If no other entries exist in the directory (other than the new entries) when a bunch expire, then the new entries must wait until another new entry is added to be processed. This was a rather weird race condition, really. Fixes AST-147. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@160559 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-03Merged revisions 160551 via svnmerge from tilghman1-1/+7
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r160551 | tilghman | 2008-12-03 10:58:34 -0600 (Wed, 03 Dec 2008) | 4 lines Don't start scanning the directory until all modules are loaded, because some required modules (channels, apps, functions) may not yet be in memory yet. Fixes AST-149. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@160552 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-25Don't actually do anything with a negative priority, because we ignore it intilghman1-0/+6
the result, anyway. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@159189 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-20Merged revisions 157859 via svnmerge from kpfleming1-1/+1
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r157859 | kpfleming | 2008-11-19 15:34:47 -0600 (Wed, 19 Nov 2008) | 7 lines the gcc optimizer frequently finds broken code (use of uninitalized variables, unreachable code, etc.), which is good. however, developers usually compile with the optimizer turned off, because if they need to debug the resulting code, optimized code makes that process very difficult. this means that we get code changes committed that weren't adequately checked over for these sorts of problems. with this build system change, if (and only if) --enable-dev-mode was used and DONT_OPTIMIZE is turned on, when a source file is compiled it will actually be preprocessed (into a .i or .ii file), then compiled once with optimization (with the result sent to /dev/null) and again without optimization (but only if the first compile succeeded, of course). while making these changes, i did some cleanup work in Makefile.rules to move commonly-used combinations of flag variables into their own variables, to make the file easier to read and maintain ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@157974 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-19Fix checking for CONFIG_STATUS_FILEINVALID so that modules don't crash upon ↵twilson1-1/+1
trying to parse an invalid config git-svn-id: http://svn.digium.com/svn/asterisk/trunk@157818 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-12This commit does two things:mvanbaak2-90/+3
- Add CLI aliases module to asterisk. - Remove all deprecated CLI commands from the code Initial work done by file. Junk-Y and lmadsen did a lot of work and testing to get the list of deprecated commands into the configuration file. Deprecated CLI commands are now handled by this new module, see cli_aliases.conf for more info about that. ok russellb@ via reviewboard (closes issue #13735) Reported by: mvanbaak git-svn-id: http://svn.digium.com/svn/asterisk/trunk@156120 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-07correct logic error noticed by rmudgett (thanks!)kpfleming1-1/+3
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@155206 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-06coding style/guidelines cleanup, plus use new side-effect safe S_ORkpfleming1-88/+87
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@155080 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-02bring over all the fixes for the warnings found by gcc 4.3.x from the 1.4 ↵kpfleming3-5/+18
branch, and add the ones needed for all the new code here too git-svn-id: http://svn.digium.com/svn/asterisk/trunk@153616 f38db490-d61c-443f-a65b-d21fe96a405b
2008-10-20 Do NOT attempt to do anything with the ast_config struct when it's been ↵bweschke1-1/+1
returned as INVALID by the config file interpreter. (closes issue #13741) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@151246 f38db490-d61c-443f-a65b-d21fe96a405b
2008-10-14Add additional memory debugging to several core APIs, and fix several memorytilghman1-0/+5
leaks found with these changes. (Closes issue #13505, closes issue #13543) Reported by: mav3rick, triccyx Patches: 20081001__bug13505.diff.txt uploaded by Corydon76 (license 14) Tested by: mav3rick, triccyx git-svn-id: http://svn.digium.com/svn/asterisk/trunk@149199 f38db490-d61c-443f-a65b-d21fe96a405b
2008-10-10Reset continuation items at the beginning of each context (suggested bytilghman1-1/+9
kpfleming). git-svn-id: http://svn.digium.com/svn/asterisk/trunk@148329 f38db490-d61c-443f-a65b-d21fe96a405b
2008-10-10Add keyword "same", which allows you to create multiple steps in a dialplan,tilghman1-8/+17
without needing to respecify an extension pattern multiple times. (closes issue #13632) Reported by: blitzrage Patches: 20081006__bug13632.diff.txt uploaded by Corydon76 (license 14) Tested by: blitzrage, Corydon76 git-svn-id: http://svn.digium.com/svn/asterisk/trunk@148325 f38db490-d61c-443f-a65b-d21fe96a405b
2008-09-27Merged revisions 144924-144925 via svnmerge from kpfleming1-1/+3
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r144924 | kpfleming | 2008-09-27 10:00:48 -0500 (Sat, 27 Sep 2008) | 6 lines improve header inclusion process in a few small ways: - it is no longer necessary to forcibly include asterisk/autoconfig.h; every module already includes asterisk.h as its first header (even before system headers), which serves the same purpose - astmm.h is now included by asterisk.h when needed, instead of being forced by the Makefile; this means external modules will build properly against installed headers with MALLOC_DEBUG enabled - simplify the usage of some of these headers in the AEL-related stuff in the utils directory ........ r144925 | kpfleming | 2008-09-27 10:13:30 -0500 (Sat, 27 Sep 2008) | 2 lines fix some minor issues with rev 144924 ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@144949 f38db490-d61c-443f-a65b-d21fe96a405b
2008-09-26(closes issue #13564)murf1-5/+48
Reported by: mnicholson Patches: pbx_lua9.diff uploaded by mnicholson (license 96) Many thanks to Matt for his upgrade to the lua dialplan option! the Description from the bug: This patch adds a stack trace to errors encountered while executing lua extensions. The patch also handles out of memory errors reported by lua. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@144681 f38db490-d61c-443f-a65b-d21fe96a405b
2008-09-25(closes issue #13559)murf1-0/+1
Reported by: mnicholson Patches: pbx_lua8.diff uploaded by mnicholson (license 96) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@144563 f38db490-d61c-443f-a65b-d21fe96a405b
2008-09-25I added a little verbage to hashtab for the hashtab_destroy func.murf1-1/+77
It was pretty sparsely documented. This update fleshes out the pbx_lua module, to add the switch statements to the extensions in the extensions.lua file, as well as removing them when the module is unloaded. Many thanks to Matt Nicholson for his fine contribution! git-svn-id: http://svn.digium.com/svn/asterisk/trunk@144523 f38db490-d61c-443f-a65b-d21fe96a405b
2008-09-25(closes issue #13558)murf1-19/+16
Reported by: mnicholson Considering that the example extensions.lua used nothing but ["12345"] notation, and that the resulting error message: [Sep 24 17:01:16] ERROR[12393]: pbx_lua.c:1204 exec: Error executing lua extension: attempt to call a nil value is not very informative as to the nature of the problem, I think this bug fix is a big win! git-svn-id: http://svn.digium.com/svn/asterisk/trunk@144482 f38db490-d61c-443f-a65b-d21fe96a405b
2008-09-04Merged revisions 141094 via svnmerge from murf3-20/+34
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: http://svn.digium.com/svn/asterisk/trunk@141115 f38db490-d61c-443f-a65b-d21fe96a405b
2008-08-08Merged revisions 136726 via svnmerge from murf5-288/+286
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r136726 | murf | 2008-08-07 18:15:34 -0600 (Thu, 07 Aug 2008) | 32 lines (closes issue #13236) Reported by: korihor Wow, this one was a challenge! I regrouped and ran a new strategy for setting the ~~MACRO~~ value; I set it once per extension, up near the top. It is only set if there is a switch in the extension. So, I had to put in a chunk of code to detect a switch in the pval tree. I moved the code to insert the set of ~~exten~~ up to the beginning of the gen_prios routine, instead of down in the switch code. I learned that I have to push the detection of the switches down into the code, so everywhere I create a new exten in gen_prios, I make sure to pass onto it the values of the mother_exten first, and the exten next. I had to add a couple fields to the exten struct to accomplish this, in the ael_structs.h file. The checked field makes it so we don't repeat the switch search if it's been done. I also updated the regressions. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@136746 f38db490-d61c-443f-a65b-d21fe96a405b
2008-08-07Start moving in changes from my resolve-shadow-warnings branch. Going to doseanbright3-24/+24
this in pieces so the diffs are a little bit smaller and more reviewable. pbx/ and formats/ first. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@136298 f38db490-d61c-443f-a65b-d21fe96a405b