Eric,

When I use the default value of c-mode semantic-ectag-lang-extra-flags, I get the message "split-string: Wrong type argument: stringp, nil"
The output in the buffer " *Semantic ECTags*" shows the following:
ctags.exe: Warning: unknown regex flag: 'i'
ctags.exe: Warning: unknown regex flag: 'i'
ctags.exe: Warning: unknown regex flag: 'i'
ctags.exe: Warning: unknown regex flag: 'i'
ctags.exe: Warning: unknown regex flag: 'i'
ctags.exe: Warning: unknown regex flag: 'i'
ctags.exe: Warning: regcomp ^[     ]*#[     ]*include[     ]*[<"]([\\: Unmatched [ or [^
ctags.exe: Warning: unknown regex flag: 'i'
ctags.exe: Warning: unknown regex flag: 'i'
ctags.exe: Warning: unknown regex flag: 'i'
ctags.exe: Warning: unknown regex flag: 'i'
ctags.exe: Warning: unknown regex flag: 'i'
ctags.exe: Warning: unknown regex flag: 'i'
ctags.exe: Warning: regcomp ^[     ]*#[     ]*include[     ]*[<"]([\\: Unmatched [ or [^

The implication here is that the "\\/a-z" part of the regex strings is getting to ctags as "\\/a-z", and so ctags interprets the '/' as a regexp delimiter, not as a member of "[\\/a-zA-Z0-9_.-]" character set.

The following regex setting works w/o errors when I used ctags in WinXP's cmd.exe:
     --regex-c="/^[ \t]*#[ \t]*include[ \t]*[<\"]([\/a-zA-Z0-9_.-]+)[\"^>]/\1/i,include/"

using ctags' --verbose switch, this setting is redisplayed as:
  Option: --regex-c=/^[ \t]*#[ \t]*include[ \t]*[<"]([\/a-zA-Z0-9_.-]+)["^>]/\1/i,include/

(since the C & C++ regex strings are the same, I'm only giving one)
(BTW, the --verbose switch doesn't give any additional info in cases of malformed regex strings.)

There are 3 issues in the Win/cmd scenario:
  - the regex strings need to be enclosed in '"' and so the these and the other "embedded" '"'s need to be escaped
  - the '>' needs to be escaped, or else CMD interprets it as a redirect (CMD does not require escaping '<'.  I don't know why...)  BTW, it seems like an obscure twist from MS that the '"', '^', '<' and '\' characters get escaped using the '\' character, while '>' gets escaped with '^'
  - the '\' characters before the "/a-z" and the "1/i..." need to get to ctags as just a single '\'

I cannot, however, figure out how to set c-mode semantic-ectag-lang-extra-flags such that the "successful" string gets to ctags.
In my best effort, I configure semantic-ectag-lang-extra-flags as so:
"--regex-c=\"/^[ \t]*#[ \t]*include[ \t]*[<\\\"]([\\\/a-zA-Z0-9_.-]+)[\\\"^>]/\\1/i,include/\""

but I get the following results at the start of the  *Semantic ECTags* buffer:
ctags.exe: Warning: /^[     ]*#[     ]*include[     ]*[<"]([\\/a-zA-Z0-9_.-]+)["^>]/\\1/i,include/: regexp missing name pattern
ctags.exe: Warning: /^[     ]*#[     ]*include[     ]*[<"]([\\/a-zA-Z0-9_.-]+)["^>]/\\1/i,include/: regexp missing final separator
ctags.exe: Warning: /^[     ]*#[     ]*include[     ]*[<"]([\\/a-zA-Z0-9_.-]+)["^>]/\\1/i,include/: regexp missing name pattern
ctags.exe: Warning: /^[     ]*#[     ]*include[     ]*[<"]([\\/a-zA-Z0-9_.-]+)["^>]/\\1/i,include/: regexp missing final separator

the '"'s show up as desired at ctags, but the "[\\/a" and "\\1" are unchanged.
This suggests that the '\' escaping before the '"' chars is handled differently than the escaping before the '/' and the '1'.

If I change the regex string to try fixing the "\\/" and "\\1" problems (trying additional or fewer escapes,) then I end up with either too many or no '\'s in ctags.  And there's also the case where I configure "...\\\1...", but semantic-ectag-lang-extra-flags gets stored as "...\\^A..."

I haven't seen any other discussion on this, but I wouldn't think it should be specific to me.  Any thoughts?

I'm using
- CVS CEDET
- emacs 23.0.95
- ctags 5.7

--
Thanks,

Nate