comparison lisp/ChangeLog @ 52719:20d4f4a911a6

*** empty log message ***
author Richard M. Stallman <rms@gnu.org>
date Wed, 01 Oct 2003 15:13:52 +0000
parents 6c29fe6ca401
children af47e48ae6e1
comparison
equal deleted inserted replaced
52718:6c29fe6ca401 52719:20d4f4a911a6
1799 1799
1800 * progmodes/cc-menus.el (cc-imenu-init): Do not set 1800 * progmodes/cc-menus.el (cc-imenu-init): Do not set
1801 `imenu-create-index-function' if the second argument is left 1801 `imenu-create-index-function' if the second argument is left
1802 out. This bug broke the imenu support in C, C++ and Java modes. 1802 out. This bug broke the imenu support in C, C++ and Java modes.
1803 1803
1804 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1805
1806 * progmodes/cc-engine.el, progmodes/cc-align.el 1804 * progmodes/cc-engine.el, progmodes/cc-align.el
1807 (c-add-stmt-syntax, c-lineup-arglist) 1805 (c-add-stmt-syntax, c-lineup-arglist)
1808 (c-lineup-arglist-close-under-paren): Fixes to cope with 1806 (c-lineup-arglist-close-under-paren): Fixes to cope with
1809 special brace lists in Pike. 1807 special brace lists in Pike.
1810 1808
1814 ensure syntax-table props at loading. 1812 ensure syntax-table props at loading.
1815 1813
1816 * progmodes/cc-fonts.el: Put (cc-require-when-compile 'cc-awk) 1814 * progmodes/cc-fonts.el: Put (cc-require-when-compile 'cc-awk)
1817 to eliminate compile-time errors. 1815 to eliminate compile-time errors.
1818 1816
1819 2003-07-03 Alan Mackenzie <bug-cc-mode@gnu.org>
1820
1821 * progmodes/cc-awk.el, progmodes/cc-engine.el: Add code to 1817 * progmodes/cc-awk.el, progmodes/cc-engine.el: Add code to
1822 analyze AWK top-level forms properly (c-guess-basic-syntax 1818 analyze AWK top-level forms properly (c-guess-basic-syntax
1823 CASE 5P), c-awk-backward-syntactic-ws. 1819 CASE 5P), c-awk-backward-syntactic-ws.
1824 1820
1825 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org> 1821 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1826 1822
1827 * progmodes/cc-fix.el: cc-mode-19.el has been renamed to 1823 * progmodes/cc-fix.el: cc-mode-19.el has been renamed to
1828 progmodes/cc-fix.el since it now contains compatibility stuff 1824 progmodes/cc-fix.el since it now contains compatibility stuff
1829 for later versions than (X)Emacs 19. 1825 for later versions than (X)Emacs 19.
1830 1826
1831 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1832
1833 * progmodes/cc-langs.el (c-paren-nontype-kwds): New language constant. 1827 * progmodes/cc-langs.el (c-paren-nontype-kwds): New language constant.
1834 1828
1835 (c-other-decl-kwds, c-postfix-decl-spec-kwds): Add compiler 1829 (c-other-decl-kwds, c-postfix-decl-spec-kwds): Add compiler
1836 specific declspec keywords: __attribute__ for gcc and 1830 specific declspec keywords: __attribute__ for gcc and
1837 __declspec for msvc. 1831 __declspec for msvc.
1841 contexts to cope with msvc '__declspec'. 1835 contexts to cope with msvc '__declspec'.
1842 1836
1843 * progmodes/cc-engine.el (c-forward-keyword-clause): 1837 * progmodes/cc-engine.el (c-forward-keyword-clause):
1844 Support `c-paren-nontype-kwds'. 1838 Support `c-paren-nontype-kwds'.
1845 1839
1846 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1847
1848 * progmodes/cc-langs.el (c-primary-expr-regexp): Don't match a 1840 * progmodes/cc-langs.el (c-primary-expr-regexp): Don't match a
1849 bare period as a float. 1841 bare period as a float.
1850
1851 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1852 1842
1853 * progmodes/cc-bytecomp.el (cc-bytecomp-setup-environment): 1843 * progmodes/cc-bytecomp.el (cc-bytecomp-setup-environment):
1854 Do not cover functions that have been bound. 1844 Do not cover functions that have been bound.
1855 1845
1856 (cc-external-require): New macro to use for requiring external 1846 (cc-external-require): New macro to use for requiring external
1858 1848
1859 * progmodes/cc-defs.el, progmodes/cc-fix.el, 1849 * progmodes/cc-defs.el, progmodes/cc-fix.el,
1860 progmodes/cc-fonts.el, progmodes/cc-mode.el: Replaced external 1850 progmodes/cc-fonts.el, progmodes/cc-mode.el: Replaced external
1861 require's with `cc-external-require'. 1851 require's with `cc-external-require'.
1862 1852
1863 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1864
1865 * progmodes/cc-engine.el (c-beginning-of-member-init-list) 1853 * progmodes/cc-engine.el (c-beginning-of-member-init-list)
1866 (c-guess-basic-syntax): Fixes in handling of bitfields. 1854 (c-guess-basic-syntax): Fixes in handling of bitfields.
1867 1855
1868 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1869
1870 * progmodes/cc-langs.el (comment-end): Put a space in front of 1856 * progmodes/cc-langs.el (comment-end): Put a space in front of
1871 the comment ender in C, as it was before the move from cc-mode.el. 1857 the comment ender in C, as it was before the move from cc-mode.el.
1872 1858
1873 2003-07-03 Alan Mackenzie <bug-cc-mode@gnu.org> 1859 2003-07-03 Alan Mackenzie <bug-cc-mode@gnu.org>
1874 1860
1875 * progmodes/cc-fonts.el: Do not load progmodes/cc-awk.elc or 1861 * progmodes/cc-fonts.el: Do not load progmodes/cc-awk.elc or
1876 awk-font-lock-keywords unless there is an AWK Mode buffer. 1862 awk-font-lock-keywords unless there is an AWK Mode buffer.
1877
1878 2003-07-03 Alan Mackenzie <bug-cc-mode@gnu.org>
1879 1863
1880 * progmodes/cc-awk.el: New file that implements AWK support, 1864 * progmodes/cc-awk.el: New file that implements AWK support,
1881 superseding the old separate derived mode in awk-mode.el. 1865 superseding the old separate derived mode in awk-mode.el.
1882 1866
1883 * progmodes/cc-vars.el, cc-mode-19.el, progmodes/cc-langs.el, 1867 * progmodes/cc-vars.el, cc-mode-19.el, progmodes/cc-langs.el,
1889 1873
1890 * progmodes/cc-engine.el, progmodes/cc-langs.el 1874 * progmodes/cc-engine.el, progmodes/cc-langs.el
1891 (c-decl-block-key, c-search-uplist-for-classkey): Check that 1875 (c-decl-block-key, c-search-uplist-for-classkey): Check that
1892 the modifier is followed by "{" in Pike before considering it 1876 the modifier is followed by "{" in Pike before considering it
1893 to start a class-like block. 1877 to start a class-like block.
1894
1895 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1896 1878
1897 * progmodes/cc-mode.el (c-initialize-cc-mode): Add some 1879 * progmodes/cc-mode.el (c-initialize-cc-mode): Add some
1898 compatibility to make this function behave somewhat more as 1880 compatibility to make this function behave somewhat more as
1899 documented for derived modes. It's still not enough to make 1881 documented for derived modes. It's still not enough to make
1900 the old AWK mode behave reasonably, but it's been like this a 1882 the old AWK mode behave reasonably, but it's been like this a
1901 long time now so fixing it more might cause trouble 1883 long time now so fixing it more might cause trouble
1902 elsewhere. :P 1884 elsewhere. :P
1903 1885
1904 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1905
1906 * progmodes/cc-fonts.el (c-remove-font-lock-face): New macro 1886 * progmodes/cc-fonts.el (c-remove-font-lock-face): New macro
1907 to remove a font lock face properly (especially in XEmacs). 1887 to remove a font lock face properly (especially in XEmacs).
1908 1888
1909 * progmodes/cc-bytecomp.el (cc-bytecomp-obsolete-fun): 1889 * progmodes/cc-bytecomp.el (cc-bytecomp-obsolete-fun):
1910 Add the same kludge as in `cc-bytecomp-obsolete-var' to avoid a 1890 Add the same kludge as in `cc-bytecomp-obsolete-var' to avoid a
1915 1895
1916 * progmodes/cc-fonts.el (c-constant-face-name): Add face name variable 1896 * progmodes/cc-fonts.el (c-constant-face-name): Add face name variable
1917 to avoid the use of `font-lock-constant-face' for constants in 1897 to avoid the use of `font-lock-constant-face' for constants in
1918 emacsen that doesn't have it. 1898 emacsen that doesn't have it.
1919 1899
1920 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1921
1922 * progmodes/cc-styles.el, progmodes/cc-vars.el, 1900 * progmodes/cc-styles.el, progmodes/cc-vars.el,
1923 progmodes/cc-cmds.el: Fixes for the syntactic symbols for 1901 progmodes/cc-cmds.el: Fixes for the syntactic symbols for
1924 module and composition blocks. 1902 module and composition blocks.
1925 1903
1926 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1927
1928 * progmodes/cc-mode.el (c-basic-common-init): 1904 * progmodes/cc-mode.el (c-basic-common-init):
1929 Use `open-paren-in-column-0-is-defun-start' if it exists and works. 1905 Use `open-paren-in-column-0-is-defun-start' if it exists and works.
1930 1906
1931 * progmodes/cc-vars.el (c-emacs-features): Add `col-0-paren' 1907 * progmodes/cc-vars.el (c-emacs-features): Add `col-0-paren'
1932 to detect when `open-paren-in-column-0-is-defun-start' exists 1908 to detect when `open-paren-in-column-0-is-defun-start' exists
1933 and actually works. 1909 and actually works.
1934
1935 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1936
1937 * progmodes/cc-align.el (c-lineup-argcont, c-lineup-gcc-asm-reg):
1938 Don't quote nil in docstrings.
1939
1940 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1941 1910
1942 * progmodes/cc-vars.el, progmodes/cc-langs.el 1911 * progmodes/cc-vars.el, progmodes/cc-langs.el
1943 (c-primitive-type-kwds, c-font-lock-extra-types): "complex" 1912 (c-primitive-type-kwds, c-font-lock-extra-types): "complex"
1944 and "imaginary" aren't keywords in C99, only macros that 1913 and "imaginary" aren't keywords in C99, only macros that
1945 expand to the keywords "_Complex" and "_Imaginary", so make 1914 expand to the keywords "_Complex" and "_Imaginary", so make
1947 `c-font-lock-extra-types' instead. There are also "bool" and 1916 `c-font-lock-extra-types' instead. There are also "bool" and
1948 "_Bool" that work the same way. 1917 "_Bool" that work the same way.
1949 (c-constant-kwds): "false" and "true" are standard constant 1918 (c-constant-kwds): "false" and "true" are standard constant
1950 macros in C99. 1919 macros in C99.
1951 1920
1952 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1953
1954 * progmodes/cc-menus.el, progmodes/cc-langs.el, 1921 * progmodes/cc-menus.el, progmodes/cc-langs.el,
1955 progmodes/cc-engine.el, progmodes/cc-fonts.el, 1922 progmodes/cc-engine.el, progmodes/cc-fonts.el,
1956 progmodes/cc-cmds.el: Fixed various regexps to use POSIX char 1923 progmodes/cc-cmds.el: Fixed various regexps to use POSIX char
1957 classes when that is supported. 1924 classes when that is supported.
1958 1925
1959 * progmodes/cc-defs.el (c-alpha, c-alnum, c-digit, c-upper, c-lower): 1926 * progmodes/cc-defs.el (c-alpha, c-alnum, c-digit, c-upper, c-lower):
1960 New constants to make it easier to create regexps 1927 New constants to make it easier to create regexps
1961 that use POSIX char classes in emacsen that support them. 1928 that use POSIX char classes in emacsen that support them.
1962 1929
1963 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1964
1965 * progmodes/cc-vars.el (c-emacs-features): Detect in the 1930 * progmodes/cc-vars.el (c-emacs-features): Detect in the
1966 regexp engine understands POSIX char classes. 1931 regexp engine understands POSIX char classes.
1967
1968 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1969 1932
1970 * progmodes/cc-mode.el (c-after-change): Add kludge for bug 1933 * progmodes/cc-mode.el (c-after-change): Add kludge for bug
1971 where this function sometimes gets positions outside the 1934 where this function sometimes gets positions outside the
1972 buffer range. 1935 buffer range.
1973 1936
1974 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1975
1976 * progmodes/cc-engine.el (c-beginning-of-member-init-list): 1937 * progmodes/cc-engine.el (c-beginning-of-member-init-list):
1977 Better handling of paretheses in unexpected places. 1938 Better handling of paretheses in unexpected places.
1978 1939
1979 * progmodes/cc-engine.el (c-forward-<>-arglist-recur): Fix a 1940 * progmodes/cc-engine.el (c-forward-<>-arglist-recur): Fix a
1980 regexp match order problem that could cause empty template 1941 regexp match order problem that could cause empty template
1981 args on the form "<>" to be missed. 1942 args on the form "<>" to be missed.
1982 1943
1983 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1984
1985 * progmodes/cc-engine.el (c-parse-state): Add kludge to 1944 * progmodes/cc-engine.el (c-parse-state): Add kludge to
1986 avoid an infinite loop when Emacs' open-paren-in-column-zero 1945 avoid an infinite loop when Emacs' open-paren-in-column-zero
1987 rule kicks in and causes the sexp functions to misbehave. 1946 rule kicks in and causes the sexp functions to misbehave.
1988 1947
1989 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1990
1991 * progmodes/cc-engine.el (c-beginning-of-member-init-list): 1948 * progmodes/cc-engine.el (c-beginning-of-member-init-list):
1992 Fix bug when C++-like code is encountered in non-C++ mode. 1949 Fix bug when C++-like code is encountered in non-C++ mode.
1993 1950
1994 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
1995
1996 * progmodes/cc-defs.el (c-make-keywords-re): Add option to 1951 * progmodes/cc-defs.el (c-make-keywords-re): Add option to
1997 specify the language to look up `c-nonsymbol-key' in. 1952 specify the language to look up `c-nonsymbol-key' in.
1998
1999 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2000 1953
2001 * progmodes/cc-cmds.el, progmodes/cc-engine.el 1954 * progmodes/cc-cmds.el, progmodes/cc-engine.el
2002 (c-auto-newline-analysis): New dynamically bound variable to 1955 (c-auto-newline-analysis): New dynamically bound variable to
2003 turn off the topmost-intro-cont/statement-cont kludge for 1956 turn off the topmost-intro-cont/statement-cont kludge for
2004 brace lists during the analysis for the auto newline feature. 1957 brace lists during the analysis for the auto newline feature.
2005 This fixes some cases where the setting for `brace-list-open' 1958 This fixes some cases where the setting for `brace-list-open'
2006 on `c-hanging-braces-alist' didn't have any effect. 1959 on `c-hanging-braces-alist' didn't have any effect.
2007 1960
2008 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2009
2010 * progmodes/cc-langs.el (c-literal-start-regexp): Yet another 1961 * progmodes/cc-langs.el (c-literal-start-regexp): Yet another
2011 language variable. 1962 language variable.
2012 1963
2013 * progmodes/cc-fonts.el (c-font-lock-doc-comments) 1964 * progmodes/cc-fonts.el (c-font-lock-doc-comments)
2014 (c-find-invalid-doc-markup, javadoc-font-lock-keywords): 1965 (c-find-invalid-doc-markup, javadoc-font-lock-keywords):
2024 faces at positions easier. 1975 faces at positions easier.
2025 1976
2026 * progmodes/cc-defs.el (c-safe-scan-lists): New wrapper macro 1977 * progmodes/cc-defs.el (c-safe-scan-lists): New wrapper macro
2027 to avoid the warnings with too many args to `scan-lists' in Emacs. 1978 to avoid the warnings with too many args to `scan-lists' in Emacs.
2028 1979
2029 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2030
2031 * progmodes/cc-engine.el (c-syntactic-skip-backward): 1980 * progmodes/cc-engine.el (c-syntactic-skip-backward):
2032 New function to make syntactic searches in the backward direction 1981 New function to make syntactic searches in the backward direction
2033 easier. 1982 easier.
2034 1983
2035 (c-beginning-of-statement-1): Optimize skipping over large paren 1984 (c-beginning-of-statement-1): Optimize skipping over large paren
2036 sexps somewhat. 1985 sexps somewhat.
2037 1986
2038 (c-safe-position): Remove the odd macro handling which was 1987 (c-safe-position): Remove the odd macro handling which was
2039 centered around the point instead of the passed position. 1988 centered around the point instead of the passed position.
2040
2041 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2042 1989
2043 * progmodes/cc-engine.el (c-in-knr-argdecl): Do not trip up on 1990 * progmodes/cc-engine.el (c-in-knr-argdecl): Do not trip up on
2044 initialization expressions. 1991 initialization expressions.
2045 1992
2046 * progmodes/cc-align.el (c-lineup-arglist) 1993 * progmodes/cc-align.el (c-lineup-arglist)
2047 (c-lineup-close-paren, c-lineup-arglist-close-under-paren): 1994 (c-lineup-close-paren, c-lineup-arglist-close-under-paren):
2048 Tune the "macro block" heuristics to work better in nested 1995 Tune the "macro block" heuristics to work better in nested
2049 arglist situations. 1996 arglist situations.
2050 1997
2051 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2052
2053 * progmodes/cc-styles.el (c-set-offset): Don't find a default 1998 * progmodes/cc-styles.el (c-set-offset): Don't find a default
2054 syntactic element through syntactic analysis if called outside 1999 syntactic element through syntactic analysis if called outside
2055 a CC Mode buffer. 2000 a CC Mode buffer.
2056
2057 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2058 2001
2059 * progmodes/cc-mode.el (c-basic-common-init): 2002 * progmodes/cc-mode.el (c-basic-common-init):
2060 Install `c-fill-paragraph' on `fill-paragraph-function'. 2003 Install `c-fill-paragraph' on `fill-paragraph-function'.
2061 Although it's not the normal way to call it in a CC Mode buffer it 2004 Although it's not the normal way to call it in a CC Mode buffer it
2062 makes a direct call to `fill-paragraph' work better. 2005 makes a direct call to `fill-paragraph' work better.
2063
2064 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2065 2006
2066 * progmodes/cc-vars.el, progmodes/cc-mode.el 2007 * progmodes/cc-vars.el, progmodes/cc-mode.el
2067 (c-require-final-newline): Make this variable an alist to 2008 (c-require-final-newline): Make this variable an alist to
2068 specify a value for each language. The default value causes 2009 specify a value for each language. The default value causes
2069 `require-final-newline' to be set to t only in languages where 2010 `require-final-newline' to be set to t only in languages where
2070 the standard requires a final newline. 2011 the standard requires a final newline.
2071 2012
2072 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2073
2074 * progmodes/cc-mode.el, progmodes/cc-vars.el 2013 * progmodes/cc-mode.el, progmodes/cc-vars.el
2075 (c-require-final-newline): Add a variable to make the 2014 (c-require-final-newline): Add a variable to make the
2076 initialization of `require-final-newline' more configurable. 2015 initialization of `require-final-newline' more configurable.
2077 2016
2078 * progmodes/cc-vars.el (c-mode-common-hook): Do not change the 2017 * progmodes/cc-vars.el (c-mode-common-hook): Do not change the
2079 format string to "CC Mode Common Hook" since that causes 2018 format string to "CC Mode Common Hook" since that causes
2080 confusion (although it is a more accurate name). 2019 confusion (although it is a more accurate name).
2081 2020
2082 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2083
2084 * progmodes/cc-fonts.el (javadoc-font-lock-keywords) 2021 * progmodes/cc-fonts.el (javadoc-font-lock-keywords)
2085 (autodoc-font-lock-keywords): Support for Javadoc and Pike 2022 (autodoc-font-lock-keywords): Support for Javadoc and Pike
2086 Autodoc doc comments. 2023 Autodoc doc comments.
2087 2024
2088 * progmodes/cc-vars.el (c-doc-comment-style): New variable to 2025 * progmodes/cc-vars.el (c-doc-comment-style): New variable to
2089 control the fontification of documentation comments on top of 2026 control the fontification of documentation comments on top of
2090 the normal mode font lock. 2027 the normal mode font lock.
2091
2092 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2093 2028
2094 * progmodes/cc-langs.el, progmodes/cc-fonts.el 2029 * progmodes/cc-langs.el, progmodes/cc-fonts.el
2095 (c-primary-expr-regexp, c-font-lock-declarations): Avoid false 2030 (c-primary-expr-regexp, c-font-lock-declarations): Avoid false
2096 recognition of parens as casts when they are followed by an 2031 recognition of parens as casts when they are followed by an
2097 operator that is both prefix and infix. 2032 operator that is both prefix and infix.
2098 2033
2099 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2100
2101 * progmodes/cc-cmds.el (c-guess-fill-prefix): Tune the 2034 * progmodes/cc-cmds.el (c-guess-fill-prefix): Tune the
2102 heuristics of when to use `c-block-comment-prefix' for an 2035 heuristics of when to use `c-block-comment-prefix' for an
2103 unclosed block comment. 2036 unclosed block comment.
2104
2105 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2106 2037
2107 * progmodes/cc-engine.el, progmodes/cc-langs.el 2038 * progmodes/cc-engine.el, progmodes/cc-langs.el
2108 (c-nonsymbol-sexp-kwds, c-forward-keyword-clause): 2039 (c-nonsymbol-sexp-kwds, c-forward-keyword-clause):
2109 Handle keywords like "extern" that can be followed by e.g. a string 2040 Handle keywords like "extern" that can be followed by e.g. a string
2110 literal. 2041 literal.
2111 2042
2112 * progmodes/cc-defs.el (c-make-keywords-re): Make a regexp 2043 * progmodes/cc-defs.el (c-make-keywords-re): Make a regexp
2113 correctly with one submatch when adorn is set and the list is empty. 2044 correctly with one submatch when adorn is set and the list is empty.
2114
2115 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2116 2045
2117 * progmodes/cc-fonts.el (c-font-lock-declarations): Fix a 2046 * progmodes/cc-fonts.el (c-font-lock-declarations): Fix a
2118 search that could go far past the relevant region and cause 2047 search that could go far past the relevant region and cause
2119 slowness. Do not limit the declaration detection to the 2048 slowness. Do not limit the declaration detection to the
2120 fontified region since that can cause misfontification in 2049 fontified region since that can cause misfontification in
2122 2051
2123 * progmodes/cc-engine.el (c-find-decl-spots): Add limit 2052 * progmodes/cc-engine.el (c-find-decl-spots): Add limit
2124 argument to handle declarations spanning the fontification 2053 argument to handle declarations spanning the fontification
2125 limit better. 2054 limit better.
2126 2055
2127 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2128
2129 * progmodes/cc-engine.el (c-in-literal, c-literal-limits) 2056 * progmodes/cc-engine.el (c-in-literal, c-literal-limits)
2130 (c-literal-limits-fast, c-beginning-of-inheritance-list): 2057 (c-literal-limits-fast, c-beginning-of-inheritance-list):
2131 Use the paren cache instead of the impaired ad hoc in 2058 Use the paren cache instead of the impaired ad hoc in
2132 `beginning-of-defun', so that these functions doesn't trip up 2059 `beginning-of-defun', so that these functions doesn't trip up
2133 on "{" in the first column inside strings or comments. 2060 on "{" in the first column inside strings or comments.
2134 2061
2135 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2136
2137 * progmodes/cc-vars.el (c-hanging-braces-alist): 2062 * progmodes/cc-vars.el (c-hanging-braces-alist):
2138 Add `statement-cont' and made it auto newline free by default. 2063 Add `statement-cont' and made it auto newline free by default.
2139 2064
2140 * progmodes/cc-cmds.el (c-electric-brace): 2065 * progmodes/cc-cmds.el (c-electric-brace):
2141 Add `statement-cont' to the list of syntactic symbols to consider 2066 Add `statement-cont' to the list of syntactic symbols to consider
2142 for auto newlines since it can be used for in-statement brace lists. 2067 for auto newlines since it can be used for in-statement brace lists.
2143 2068
2144 * progmodes/cc-vars.el (c-emacs-features): There's no need to 2069 * progmodes/cc-vars.el (c-emacs-features): There's no need to
2145 have this constant autoloaded. 2070 have this constant autoloaded.
2146
2147 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2148 2071
2149 * progmodes/cc-fonts.el (c-font-lock-declarations): 2072 * progmodes/cc-fonts.el (c-font-lock-declarations):
2150 Use `c-recognize-typeless-decls' to avoid fontifying some macro 2073 Use `c-recognize-typeless-decls' to avoid fontifying some macro
2151 constructs as declarations in languages where a preceding type 2074 constructs as declarations in languages where a preceding type
2152 is mandatory. 2075 is mandatory.
2153 2076
2154 * progmodes/cc-langs.el (c-recognize-typeless-decls): 2077 * progmodes/cc-langs.el (c-recognize-typeless-decls):
2155 New language variable. 2078 New language variable.
2156 2079
2157 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2158
2159 * progmodes/cc-align.el (c-lineup-close-paren): 2080 * progmodes/cc-align.el (c-lineup-close-paren):
2160 Use `c-syntactic-eol' when checking if the open paren ends its line. 2081 Use `c-syntactic-eol' when checking if the open paren ends its line.
2161 2082
2162 * progmodes/cc-langs.el (c-syntactic-eol): Handle a line 2083 * progmodes/cc-langs.el (c-syntactic-eol): Handle a line
2163 continuation backslash. 2084 continuation backslash.
2164 2085
2165 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2166
2167 * progmodes/cc-align.el (c-snug-do-while): Compatibility fix 2086 * progmodes/cc-align.el (c-snug-do-while): Compatibility fix
2168 for changed structure in `c-syntactic-context'. 2087 for changed structure in `c-syntactic-context'.
2169
2170 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2171 2088
2172 * progmodes/cc-engine.el (c-parse-state): Filter angle bracket 2089 * progmodes/cc-engine.el (c-parse-state): Filter angle bracket
2173 arglist parens in a better way than disabling the syntax table 2090 arglist parens in a better way than disabling the syntax table
2174 properties completely. 2091 properties completely.
2175 2092
2177 continuations in cpp expressions. Do not fontify symbols after 2094 continuations in cpp expressions. Do not fontify symbols after
2178 #ifdef etc as variables since that isn't consistent with how 2095 #ifdef etc as variables since that isn't consistent with how
2179 the face is used elsewhere (i.e. only for the definition of 2096 the face is used elsewhere (i.e. only for the definition of
2180 the symbol). 2097 the symbol).
2181 2098
2182 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2183
2184 * progmodes/cc-mode.el: Add autoload directives for the 2099 * progmodes/cc-mode.el: Add autoload directives for the
2185 interface functions in cc-langs. 2100 interface functions in cc-langs.
2186
2187 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2188 2101
2189 * progmodes/cc-fonts.el (c-font-lock-declarations): Add a 2102 * progmodes/cc-fonts.el (c-font-lock-declarations): Add a
2190 property to handle refontication in multiline declaration 2103 property to handle refontication in multiline declaration
2191 arglists better. 2104 arglists better.
2192 (c-font-lock-<>-arglists): Fix to handle recursive template 2105 (c-font-lock-<>-arglists): Fix to handle recursive template
2201 aspect explicitly. 2114 aspect explicitly.
2202 (c-forward-name, c-forward-type): Changes in the handling of 2115 (c-forward-name, c-forward-type): Changes in the handling of
2203 recursive template arglists. Fixes to cope with the new 'known 2116 recursive template arglists. Fixes to cope with the new 'known
2204 type classification. 2117 type classification.
2205 2118
2206 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2207
2208 * progmodes/cc-mode.el (c-basic-common-init): Add the new 2119 * progmodes/cc-mode.el (c-basic-common-init): Add the new
2209 char property `c-type' to `text-property-default-nonsticky'. 2120 char property `c-type' to `text-property-default-nonsticky'.
2210 2121
2211 * progmodes/cc-defs.el (c-put-char-property) 2122 * progmodes/cc-defs.el (c-put-char-property)
2212 (c-get-char-property, c-clear-char-property) 2123 (c-get-char-property, c-clear-char-property)
2214 `c-get-char-syntax' to handle any property. 2125 `c-get-char-syntax' to handle any property.
2215 2126
2216 * progmodes/cc-bytecomp.el (cc-bytecomp-defun): Fix bug that 2127 * progmodes/cc-bytecomp.el (cc-bytecomp-defun): Fix bug that
2217 caused existing function definitions to be overridden by 2128 caused existing function definitions to be overridden by
2218 phonies when the bytecomp environment is restored. 2129 phonies when the bytecomp environment is restored.
2219
2220 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2221 2130
2222 * progmodes/cc-cmds.el (c-mask-paragraph): Masking is 2131 * progmodes/cc-cmds.el (c-mask-paragraph): Masking is
2223 necessary in normal code too to avoid getting a fill prefix 2132 necessary in normal code too to avoid getting a fill prefix
2224 from a nearby comment. Change the name from `c-mask-comment' 2133 from a nearby comment. Change the name from `c-mask-comment'
2225 to a more accurate one. 2134 to a more accurate one.
2227 * progmodes/cc-defs.el, progmodes/cc-mode.el: Change the 2136 * progmodes/cc-defs.el, progmodes/cc-mode.el: Change the
2228 auto-load-alist strategy to not add entries on package load, 2137 auto-load-alist strategy to not add entries on package load,
2229 to be defensive in the case that autoloads are updated in 2138 to be defensive in the case that autoloads are updated in
2230 older emacsen. The bug that would occur in that case would 2139 older emacsen. The bug that would occur in that case would
2231 probably be rather nasty for the average user. 2140 probably be rather nasty for the average user.
2232
2233 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2234 2141
2235 * progmodes/cc-fonts.el (c-font-lock-declarations): 2142 * progmodes/cc-fonts.el (c-font-lock-declarations):
2236 Fine tuning of the decision tree that tells declarations from 2143 Fine tuning of the decision tree that tells declarations from
2237 expressions to produce better results in some ambiguous cases. 2144 expressions to produce better results in some ambiguous cases.
2238 2145
2251 2158
2252 (c-literal-limits, c-literal-limits-fast, c-literal-type): 2159 (c-literal-limits, c-literal-limits-fast, c-literal-type):
2253 Use `c-string-syntax' and `c-string-limit-regexp'. Replace some 2160 Use `c-string-syntax' and `c-string-limit-regexp'. Replace some
2254 hardcoded comment start regexps with `c-comment-start-regexp'. 2161 hardcoded comment start regexps with `c-comment-start-regexp'.
2255 2162
2256 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2257
2258 * progmodes/cc-mode.el: Added an association for pike-mode on 2163 * progmodes/cc-mode.el: Added an association for pike-mode on
2259 `intepreter-mode-alist'. 2164 `intepreter-mode-alist'.
2260
2261 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2262 2165
2263 * progmodes/cc-mode.el: Add the `auto-mode-alist' entries to 2166 * progmodes/cc-mode.el: Add the `auto-mode-alist' entries to
2264 the end instead of the start of the list, to avoid overriding 2167 the end instead of the start of the list, to avoid overriding
2265 user additions that are made before this file is loaded when 2168 user additions that are made before this file is loaded when
2266 the entries don't correspond to any already on `auto-mode-alist'. 2169 the entries don't correspond to any already on `auto-mode-alist'.
2278 strange bug in Emacs that gives so odd errors that I frankly 2181 strange bug in Emacs that gives so odd errors that I frankly
2279 don't even muster to begin trying to narrow it down. 2182 don't even muster to begin trying to narrow it down.
2280 If someone is so inclined, restore the commented code, byte 2183 If someone is so inclined, restore the commented code, byte
2281 compile, and try to open a C++ file or something in font lock mode. 2184 compile, and try to open a C++ file or something in font lock mode.
2282 2185
2283 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2284
2285 * progmodes/cc-langs.el: Update the IDL support from the 2186 * progmodes/cc-langs.el: Update the IDL support from the
2286 specs. This also adds the keywords for the variants PSDL and 2187 specs. This also adds the keywords for the variants PSDL and
2287 CIDL. (This is mostly done from reading the grammars only; 2188 CIDL. (This is mostly done from reading the grammars only;
2288 very lightly tested.) 2189 very lightly tested.)
2289 2190
2290 * progmodes/cc-langs.el (c-type-list-kwds): Add "new" in Java. 2191 * progmodes/cc-langs.el (c-type-list-kwds): Add "new" in Java.
2291 2192
2292 * progmodes/cc-fonts.el: Make sure that 2193 * progmodes/cc-fonts.el: Make sure that
2293 `parse-sexp-lookup-properties' is properly insulated from 2194 `parse-sexp-lookup-properties' is properly insulated from
2294 clobbering by the font-lock package at all relevant entry points. 2195 clobbering by the font-lock package at all relevant entry points.
2295
2296 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2297 2196
2298 * progmodes/cc-langs.el (c-opt-after-id-concat-key): 2197 * progmodes/cc-langs.el (c-opt-after-id-concat-key):
2299 New language constant to make the recognition of identifier 2198 New language constant to make the recognition of identifier
2300 qualifiers more flexible. Recognize the identifier before 2199 qualifiers more flexible. Recognize the identifier before
2301 ".*" as a qualifier in Java. 2200 ".*" as a qualifier in Java.
2334 It's now built through macro expansion. 2233 It's now built through macro expansion.
2335 (c-keywords-obarray): New language variable which contains each 2234 (c-keywords-obarray): New language variable which contains each
2336 keyword as a symbol, to make fast reverse lookup of keywords to 2235 keyword as a symbol, to make fast reverse lookup of keywords to
2337 the `*-kwds' lists they come from. 2236 the `*-kwds' lists they come from.
2338 2237
2339 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2340
2341 * progmodes/cc-defs.el (c-lang-defconst-eval-immediately): 2238 * progmodes/cc-defs.el (c-lang-defconst-eval-immediately):
2342 Add macro to be able to do direct evaluation in 2239 Add macro to be able to do direct evaluation in
2343 `c-lang-defconst' forms. 2240 `c-lang-defconst' forms.
2344 2241
2345 * progmodes/cc-engine.el (c-syntactic-re-search-forward): 2242 * progmodes/cc-engine.el (c-syntactic-re-search-forward):
2354 angle bracket arglists. 2251 angle bracket arglists.
2355 (c-opt-type-suffix-key): Use `c-recognize-<>-arglists' in 2252 (c-opt-type-suffix-key): Use `c-recognize-<>-arglists' in
2356 Objective-C instead of matching a protocol reference list as a 2253 Objective-C instead of matching a protocol reference list as a
2357 type suffix. 2254 type suffix.
2358 2255
2359 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2360
2361 * progmodes/cc-align.el (c-gnu-impose-minimum): Fix a missing 2256 * progmodes/cc-align.el (c-gnu-impose-minimum): Fix a missing
2362 `save-excursion' that caused the point to jump around. 2257 `save-excursion' that caused the point to jump around.
2363
2364 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2365 2258
2366 * progmodes/cc-mode.el, progmodes/cc-menus.el (objc-mode) 2259 * progmodes/cc-mode.el, progmodes/cc-menus.el (objc-mode)
2367 (cc-imenu-init): Fix initialization bug that has made the 2260 (cc-imenu-init): Fix initialization bug that has made the
2368 Objective-C support inoperational since 5.26. 2261 Objective-C support inoperational since 5.26.
2369 (cc-imenu-objc-generic-expression): Update submatch indices 2262 (cc-imenu-objc-generic-expression): Update submatch indices
2370 due to changes in `cc-imenu-c++-generic-expression'. 2263 due to changes in `cc-imenu-c++-generic-expression'.
2371 (cc-imenu-objc-function): Don't add an empty "C" menu since 2264 (cc-imenu-objc-function): Don't add an empty "C" menu since
2372 imenu doesn't like that. 2265 imenu doesn't like that.
2373 2266
2374 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2375
2376 * progmodes/cc-align.el (c-lineup-arglist) 2267 * progmodes/cc-align.el (c-lineup-arglist)
2377 (c-lineup-arglist-close-under-paren, c-lineup-close-paren): 2268 (c-lineup-arglist-close-under-paren, c-lineup-close-paren):
2378 Add DWIM to the functions that line up at or after the 2269 Add DWIM to the functions that line up at or after the
2379 arglist open paren to avoid that if there are brace blocks 2270 arglist open paren to avoid that if there are brace blocks
2380 inside, e.g. when a macro contains a code block. 2271 inside, e.g. when a macro contains a code block.
2381 2272
2382 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2383
2384 * progmodes/cc-vars.el (objc-font-lock-extra-types): 2273 * progmodes/cc-vars.el (objc-font-lock-extra-types):
2385 Change default to treat identifiers starting with capital letters as 2274 Change default to treat identifiers starting with capital letters as
2386 types, according to Objective-C naming conventions. The types 2275 types, according to Objective-C naming conventions. The types
2387 previously on the list is part of the language and therefore 2276 previously on the list is part of the language and therefore
2388 on `c-primitive-type-kwds' instead. 2277 on `c-primitive-type-kwds' instead.
2398 * progmodes/cc-langs.el: Update the Objective-C constants 2287 * progmodes/cc-langs.el: Update the Objective-C constants
2399 according to the language spec. The "@" chars that start 2288 according to the language spec. The "@" chars that start
2400 directives are now considered part of the keywords to make 2289 directives are now considered part of the keywords to make
2401 things easier. 2290 things easier.
2402 2291
2403 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2404
2405 * progmodes/cc-defs.el: (c-(up|down)-list-(forward|backward)): 2292 * progmodes/cc-defs.el: (c-(up|down)-list-(forward|backward)):
2406 Make the position optional and added docstrings. 2293 Make the position optional and added docstrings.
2407 2294
2408 (c-go-(up|down)-list-(forward|backward)): Add variants of the 2295 (c-go-(up|down)-list-(forward|backward)): Add variants of the
2409 above that move point and return successfulness instead. 2296 above that move point and return successfulness instead.
2410
2411 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2412 2297
2413 * progmodes/cc-fonts.el (c-font-lock-<>-arglists): 2298 * progmodes/cc-fonts.el (c-font-lock-<>-arglists):
2414 New function to fontify all occurrences of template arglists in C++. 2299 New function to fontify all occurrences of template arglists in C++.
2415 2300
2416 * progmodes/cc-engine.el (c-disallow-comma-in-<>-arglists): 2301 * progmodes/cc-engine.el (c-disallow-comma-in-<>-arglists):
2417 New variable to be able to avoid false recognition of template 2302 New variable to be able to avoid false recognition of template
2418 arglists in some cases. 2303 arglists in some cases.
2419
2420 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2421 2304
2422 * progmodes/cc-fonts.el, progmodes/cc-langs.el 2305 * progmodes/cc-fonts.el, progmodes/cc-langs.el
2423 (c-decl-prefix-re, c-font-lock-declarations): Match template 2306 (c-decl-prefix-re, c-font-lock-declarations): Match template
2424 open brackets to get a declaration in the first template argument. 2307 open brackets to get a declaration in the first template argument.
2425 (c-complex-decl-matchers): Fontify the second type in a "class 2308 (c-complex-decl-matchers): Fontify the second type in a "class
2426 X = Y" expression in C++. 2309 X = Y" expression in C++.
2427 2310
2428 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2429
2430 * progmodes/cc-engine.el (c-forward-<>-arglist): Break out the 2311 * progmodes/cc-engine.el (c-forward-<>-arglist): Break out the
2431 recursive part to a new function to improve efficiency when a 2312 recursive part to a new function to improve efficiency when a
2432 nested template arglist search turns out to be futile. 2313 nested template arglist search turns out to be futile.
2433 2314
2434 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2435
2436 * progmodes/cc-menus.el (cc-imenu-java-generic-expression): 2315 * progmodes/cc-menus.el (cc-imenu-java-generic-expression):
2437 Improve to avoid false matches on e.g. "else if (foo)". 2316 Improve to avoid false matches on e.g. "else if (foo)".
2438
2439 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2440 2317
2441 * progmodes/cc-engine.el (c-forward-token-2) 2318 * progmodes/cc-engine.el (c-forward-token-2)
2442 (c-backward-token-2): New functions that work like the -1 2319 (c-backward-token-2): New functions that work like the -1
2443 variants but that handle multicharacter operator tokens. 2320 variants but that handle multicharacter operator tokens.
2444 2321
2452 (c-brace-list-key, c-inexpr-brace-list-kwds) 2329 (c-brace-list-key, c-inexpr-brace-list-kwds)
2453 (c-opt-inexpr-brace-list-key): New language constants and 2330 (c-opt-inexpr-brace-list-key): New language constants and
2454 variables to parameterize some more of the hardcoded regexps 2331 variables to parameterize some more of the hardcoded regexps
2455 in cc-engine. 2332 in cc-engine.
2456 2333
2457 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2458
2459 * progmodes/cc-align.el (c-lineup-cascaded-calls): Do not 2334 * progmodes/cc-align.el (c-lineup-cascaded-calls): Do not
2460 allow cascaded call lists containing both "->" and ".". 2335 allow cascaded call lists containing both "->" and ".".
2461
2462 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2463 2336
2464 * progmodes/cc-align.el, progmodes/cc-cmds.el, 2337 * progmodes/cc-align.el, progmodes/cc-cmds.el,
2465 progmodes/cc-defs.el, progmodes/cc-engine.el, 2338 progmodes/cc-defs.el, progmodes/cc-engine.el,
2466 progmodes/cc-fonts.el, progmodes/cc-langs.el, 2339 progmodes/cc-fonts.el, progmodes/cc-langs.el,
2467 progmodes/cc-mode.el, progmodes/cc-styles.el: New language 2340 progmodes/cc-mode.el, progmodes/cc-styles.el: New language
2507 it during compilation. 2380 it during compilation.
2508 2381
2509 * progmodes/cc-bytecomp.el (cc-require-when-compile): 2382 * progmodes/cc-bytecomp.el (cc-require-when-compile):
2510 New support macro for compile time `require's. 2383 New support macro for compile time `require's.
2511 2384
2512 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2513
2514 * progmodes/cc-defs.el, progmodes/cc-mode.el (c-version): 2385 * progmodes/cc-defs.el, progmodes/cc-mode.el (c-version):
2515 Move from cc-mode to cc-defs to make it accessible to the 2386 Move from cc-mode to cc-defs to make it accessible to the
2516 other components. 2387 other components.
2517 2388
2518 * progmodes/cc-engine.el (c-forward-token-1, c-backward-token-1): 2389 * progmodes/cc-engine.el (c-forward-token-1, c-backward-token-1):
2531 2402
2532 * progmodes/cc-bytecomp.el, progmodes/cc-defs.el 2403 * progmodes/cc-bytecomp.el, progmodes/cc-defs.el
2533 (cc-eval-when-compile): Move from cc-bytecomp to cc-defs to 2404 (cc-eval-when-compile): Move from cc-bytecomp to cc-defs to
2534 allow use at runtime. 2405 allow use at runtime.
2535 2406
2536 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2537
2538 * progmodes/cc-bytecomp.el (cc-eval-when-compile): 2407 * progmodes/cc-bytecomp.el (cc-eval-when-compile):
2539 Workaround for a bug with nested `eval-when-compile' in XEmacs 21. 2408 Workaround for a bug with nested `eval-when-compile' in XEmacs 21.
2540
2541 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2542 2409
2543 * progmodes/cc-mode.el: Added autoloaded forms to install the 2410 * progmodes/cc-mode.el: Added autoloaded forms to install the
2544 appropriate file suffixes on `auto-mode-alist'. Necessary in 2411 appropriate file suffixes on `auto-mode-alist'. Necessary in
2545 XEmacs 21.5, and it can be useful elsewhere too. 2412 XEmacs 21.5, and it can be useful elsewhere too.
2546 2413
2547 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2548
2549 * progmodes/cc-align.el (c-lineup-cascaded-calls): Handle "." 2414 * progmodes/cc-align.el (c-lineup-cascaded-calls): Handle "."
2550 too, for use in Java. 2415 too, for use in Java.
2551 2416
2552 * progmodes/cc-engine.el (c-forward-sws, c-backward-sws): 2417 * progmodes/cc-engine.el (c-forward-sws, c-backward-sws):
2553 Do not handle cpp directives in languages that doesn't have any. 2418 Do not handle cpp directives in languages that doesn't have any.
2554
2555 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2556 2419
2557 * progmodes/cc-langs.el (c-operators): Add a high level description 2420 * progmodes/cc-langs.el (c-operators): Add a high level description
2558 of all operators, along with their precedence and associativity. 2421 of all operators, along with their precedence and associativity.
2559 2422
2560 * progmodes/cc-align.el (c-lineup-multi-inher): Fix bug 2423 * progmodes/cc-align.el (c-lineup-multi-inher): Fix bug
2561 where the position of the point and not the beginning of the 2424 where the position of the point and not the beginning of the
2562 line was used to calculate the indentation. 2425 line was used to calculate the indentation.
2563
2564 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2565 2426
2566 * progmodes/cc-defs.el, progmodes/cc-engine.el 2427 * progmodes/cc-defs.el, progmodes/cc-engine.el
2567 (c-backward-single-comment, c-backward-comments): Add kludge 2428 (c-backward-single-comment, c-backward-comments): Add kludge
2568 for the bug in `forward-comment' in most (X)Emacs versions 2429 for the bug in `forward-comment' in most (X)Emacs versions
2569 where it moves back over the "*/" of a block comment if 2430 where it moves back over the "*/" of a block comment if
2570 there's no matching "/*". This has become more important now 2431 there's no matching "/*". This has become more important now
2571 since it can cause incorrect caching by `c-backward-sws'. 2432 since it can cause incorrect caching by `c-backward-sws'.
2572 2433
2573 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2574
2575 * progmodes/cc-cmds.el (c-hungry-backspace) 2434 * progmodes/cc-cmds.el (c-hungry-backspace)
2576 (c-hungry-delete-forward): New functions to do hungry deletion 2435 (c-hungry-delete-forward): New functions to do hungry deletion
2577 regardless of hungry-delete mode. Contributed by Kevin Ryde. 2436 regardless of hungry-delete mode. Contributed by Kevin Ryde.
2578 2437
2579 * progmodes/cc-engine.el (c-forward-sws, c-backward-sws) 2438 * progmodes/cc-engine.el (c-forward-sws, c-backward-sws)
2580 (c-invalidate-sws-region): Use text properties to cache regions 2439 (c-invalidate-sws-region): Use text properties to cache regions
2581 with complex syntactic whitespace. This helps a lot in 2440 with complex syntactic whitespace. This helps a lot in
2582 improving responsiveness when there are lots of comments and 2441 improving responsiveness when there are lots of comments and
2583 cpp directives before point. 2442 cpp directives before point.
2584
2585 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2586 2443
2587 * progmodes/cc-guess.el, progmodes/cc-langs.el, 2444 * progmodes/cc-guess.el, progmodes/cc-langs.el,
2588 progmodes/cc-menus.el, progmodes/cc-mode.el, 2445 progmodes/cc-menus.el, progmodes/cc-mode.el,
2589 progmodes/cc-styles.el, progmodes/cc-vars.el, 2446 progmodes/cc-styles.el, progmodes/cc-vars.el,
2590 progmodes/cc-engine.el, progmodes/cc-fonts.el, 2447 progmodes/cc-engine.el, progmodes/cc-fonts.el,
2595 correctly cover the silly buffer modifications that is caused 2452 correctly cover the silly buffer modifications that is caused
2596 by text property changes. 2453 by text property changes.
2597 (c-save-buffer-state): New macro that's put around any code that 2454 (c-save-buffer-state): New macro that's put around any code that
2598 can manipulate text properties. 2455 can manipulate text properties.
2599 2456
2600 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2601
2602 * progmodes/cc-mode.el (c-basic-common-init): 2457 * progmodes/cc-mode.el (c-basic-common-init):
2603 Setup `text-property-default-nonsticky' to avoid messing with the 2458 Setup `text-property-default-nonsticky' to avoid messing with the
2604 rear-nonsticky property on each character in Emacs 21. 2459 rear-nonsticky property on each character in Emacs 21.
2605 2460
2606 * progmodes/cc-defs.el (c-clear-char-syntax, c-put-char-syntax): 2461 * progmodes/cc-defs.el (c-clear-char-syntax, c-put-char-syntax):
2614 Use `lookup-syntax-properties' in XEmacs to control whether the 2469 Use `lookup-syntax-properties' in XEmacs to control whether the
2615 syntax-table property has any effect or not. 2470 syntax-table property has any effect or not.
2616 2471
2617 (c-parse-sexp-lookup-properties): New macro that expands to either 2472 (c-parse-sexp-lookup-properties): New macro that expands to either
2618 `parse-sexp-lookup-properties' or `lookup-syntax-properties'. 2473 `parse-sexp-lookup-properties' or `lookup-syntax-properties'.
2619
2620 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2621 2474
2622 * progmodes/cc-defs.el, progmodes/cc-engine.el, 2475 * progmodes/cc-defs.el, progmodes/cc-engine.el,
2623 progmodes/cc-fonts.el: Put the faces into the buffer in the 2476 progmodes/cc-fonts.el: Put the faces into the buffer in the
2624 same way as the font-lock package does. This fixes a 2477 same way as the font-lock package does. This fixes a
2625 compatibility problem with XEmacs which sets an extra 2478 compatibility problem with XEmacs which sets an extra
2644 * progmodes/cc-fonts.el (c-font-lock-declarations): 2497 * progmodes/cc-fonts.el (c-font-lock-declarations):
2645 Implement a cache for the first backward search for a 2498 Implement a cache for the first backward search for a
2646 preceding `c-decl-prefix-re' match. This typically speeds up 2499 preceding `c-decl-prefix-re' match. This typically speeds up
2647 interactive refontification a lot on the top level of macro 2500 interactive refontification a lot on the top level of macro
2648 heavy header files. 2501 heavy header files.
2649
2650 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2651 2502
2652 * progmodes/cc-vars.el (c-emacs-features): Add check for 2503 * progmodes/cc-vars.el (c-emacs-features): Add check for
2653 syntax text properties. 2504 syntax text properties.
2654 2505
2655 * progmodes/cc-mode.el (c-basic-common-init): Turn on 2506 * progmodes/cc-mode.el (c-basic-common-init): Turn on
2715 2566
2716 * progmodes/cc-defs.el (c-paren-re, c-identifier-re): 2567 * progmodes/cc-defs.el (c-paren-re, c-identifier-re):
2717 Remove these helper macros since better and more correct tools are 2568 Remove these helper macros since better and more correct tools are
2718 now available in progmodes/cc-langs.el. 2569 now available in progmodes/cc-langs.el.
2719 2570
2720 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2721
2722 * progmodes/cc-align.el (c-lineup-string-cont): New lineup 2571 * progmodes/cc-align.el (c-lineup-string-cont): New lineup
2723 function to line up string literals that will be concatenated. 2572 function to line up string literals that will be concatenated.
2724
2725 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2726 2573
2727 * progmodes/cc-langs.el (c-populate-syntax-table): 2574 * progmodes/cc-langs.el (c-populate-syntax-table):
2728 XEmacs classifies the hard space character as a symbol character 2575 XEmacs classifies the hard space character as a symbol character
2729 but it's better to let it be in the punctuation class so that it's 2576 but it's better to let it be in the punctuation class so that it's
2730 always highlighted with the inverted invalid face. It can 2577 always highlighted with the inverted invalid face. It can
2731 perhaps be argued that that character is allowed in 2578 perhaps be argued that that character is allowed in
2732 identifiers in some languages (haven't checked), but using it 2579 identifiers in some languages (haven't checked), but using it
2733 would still be extremely confusing. 2580 would still be extremely confusing.
2734
2735 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2736 2581
2737 * progmodes/cc-engine.el (c-beginning-of-statement-1): Fix a 2582 * progmodes/cc-engine.el (c-beginning-of-statement-1): Fix a
2738 case when a labeled substatement caused incorrect association 2583 case when a labeled substatement caused incorrect association
2739 of the following continuation clause. 2584 of the following continuation clause.
2740 2585
2756 `fill-paragraph' is used in font lock mode on a comment at the 2601 `fill-paragraph' is used in font lock mode on a comment at the
2757 end of a large class or function. 2602 end of a large class or function.
2758 2603
2759 (c-state-cache-start): Fix buffer localness. 2604 (c-state-cache-start): Fix buffer localness.
2760 2605
2761 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2762
2763 * progmodes/cc-langs.el: Updates from the C99 standard (or 2606 * progmodes/cc-langs.el: Updates from the C99 standard (or
2764 actually from the latest web accessible draft of it). 2607 actually from the latest web accessible draft of it).
2765
2766 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2767 2608
2768 * progmodes/cc-langs.el: Update the keywords and operator 2609 * progmodes/cc-langs.el: Update the keywords and operator
2769 tokens from the latest C++ and Java standards. Some other 2610 tokens from the latest C++ and Java standards. Some other
2770 multichar token corrections. 2611 multichar token corrections.
2771
2772 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2773 2612
2774 * progmodes/cc-cmds.el, progmodes/cc-engine.el, 2613 * progmodes/cc-cmds.el, progmodes/cc-engine.el,
2775 progmodes/cc-vars.el (c-syntactic-context) 2614 progmodes/cc-vars.el (c-syntactic-context)
2776 (c-syntactic-element): Do not bind any values to these 2615 (c-syntactic-element): Do not bind any values to these
2777 variables globally since they should always be dynamically 2616 variables globally since they should always be dynamically
2778 bound. This makes it much easier to debug cases when they've 2617 bound. This makes it much easier to debug cases when they've
2779 gotten global values somehow. 2618 gotten global values somehow.
2780 2619
2781 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2782
2783 * progmodes/cc-langs.el (c-regexp-opt): Fix to work around the 2620 * progmodes/cc-langs.el (c-regexp-opt): Fix to work around the
2784 non-greedy behavior that the regexp engine sometimes exposes. 2621 non-greedy behavior that the regexp engine sometimes exposes.
2785 This bug only shows in (X)Emacs 19 where there's no regexp-opt package. 2622 This bug only shows in (X)Emacs 19 where there's no regexp-opt package.
2786 2623
2787 * progmodes/cc-engine.el (c-syntactic-re-search-forward): 2624 * progmodes/cc-engine.el (c-syntactic-re-search-forward):
2793 `c-mode-var'. 2630 `c-mode-var'.
2794 2631
2795 * progmodes/cc-align.el (c-lineup-cascaded-calls) 2632 * progmodes/cc-align.el (c-lineup-cascaded-calls)
2796 (c-lineup-gcc-asm-reg): Cope with that `c-most-enclosing-brace' 2633 (c-lineup-gcc-asm-reg): Cope with that `c-most-enclosing-brace'
2797 might return nil. 2634 might return nil.
2798
2799 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2800 2635
2801 * progmodes/cc-engine.el (c-found-types, c-clear-found-types) 2636 * progmodes/cc-engine.el (c-found-types, c-clear-found-types)
2802 (c-add-type, c-check-type, c-add-complex-type) 2637 (c-add-type, c-check-type, c-add-complex-type)
2803 (c-list-found-types, c-forward-type): Add a sort of symbol 2638 (c-list-found-types, c-forward-type): Add a sort of symbol
2804 table for types: If a name is recognized as a type in a 2639 table for types: If a name is recognized as a type in a
2809 qualified identifiers for `c-found-types'. 2644 qualified identifiers for `c-found-types'.
2810 2645
2811 * progmodes/cc-defs.el (c-mode-var): New defsubst to access 2646 * progmodes/cc-defs.el (c-mode-var): New defsubst to access
2812 mode prefixed variables uniformly. 2647 mode prefixed variables uniformly.
2813 2648
2814 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2815
2816 * progmodes/cc-align.el (c-lineup-arglist-close-under-paren): 2649 * progmodes/cc-align.el (c-lineup-arglist-close-under-paren):
2817 Work correctly with nested arglist-cont-nonempty symbols. 2650 Work correctly with nested arglist-cont-nonempty symbols.
2818 2651
2819 (c-lineup-arglist-operators): New lineup function to line up infix 2652 (c-lineup-arglist-operators): New lineup function to line up infix
2820 operators under the open paren of the surrounding sexp. 2653 operators under the open paren of the surrounding sexp.
2821
2822 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2823 2654
2824 * progmodes/cc-engine.el (c-forward-syntactic-ws): Fix a bug 2655 * progmodes/cc-engine.el (c-forward-syntactic-ws): Fix a bug
2825 that could cause an infinite loop if something that looks like 2656 that could cause an infinite loop if something that looks like
2826 a macro begins in the middle of a line. 2657 a macro begins in the middle of a line.
2827 2658
2828 (c-parse-state): Fix a bug that could cause `c-state-cache' 2659 (c-parse-state): Fix a bug that could cause `c-state-cache'
2829 to contain two conses in sequence when there's an unbalanced 2660 to contain two conses in sequence when there's an unbalanced
2830 open paren in a macro. 2661 open paren in a macro.
2831
2832 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2833 2662
2834 * progmodes/cc-defs.el (c-face-name-p): A defsubst to 2663 * progmodes/cc-defs.el (c-face-name-p): A defsubst to
2835 recognize the name of a face in a way that works also in XEmacs. 2664 recognize the name of a face in a way that works also in XEmacs.
2836 2665
2837 * progmodes/cc-engine.el (c-forward-type): New function to 2666 * progmodes/cc-engine.el (c-forward-type): New function to
2852 (c-forward-comment): Remove. The four different cases above 2681 (c-forward-comment): Remove. The four different cases above
2853 are basically different, so it's better to make them into 2682 are basically different, so it's better to make them into
2854 separate functions than choose between them at runtime using 2683 separate functions than choose between them at runtime using
2855 the argument. 2684 the argument.
2856 2685
2857 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2858
2859 * progmodes/cc-align.el (c-gnu-impose-minimum): Fix bug due 2686 * progmodes/cc-align.el (c-gnu-impose-minimum): Fix bug due
2860 to the new placement of cpp-macro and comment-intro in the 2687 to the new placement of cpp-macro and comment-intro in the
2861 syntactic context, as pointed out by Kevin Ryde. Change the 2688 syntactic context, as pointed out by Kevin Ryde. Change the
2862 method that decides whether point is inside a top-level 2689 method that decides whether point is inside a top-level
2863 construct to one that doesn't depend on the set of syntactic 2690 construct to one that doesn't depend on the set of syntactic
2865 2692
2866 * progmodes/cc-defs.el (c-point): Use the functions 2693 * progmodes/cc-defs.el (c-point): Use the functions
2867 `line-beginning-position' and `line-end-position' in emacsen 2694 `line-beginning-position' and `line-end-position' in emacsen
2868 that have them (currently Emacs 20 and later). 2695 that have them (currently Emacs 20 and later).
2869 2696
2870 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2871
2872 * progmodes/cc-cmds.el (c-mask-comment): Fix a bug that 2697 * progmodes/cc-cmds.el (c-mask-comment): Fix a bug that
2873 sometimes caused code after a closed block comment to be taken 2698 sometimes caused code after a closed block comment to be taken
2874 into account when the fill prefix is calculated. 2699 into account when the fill prefix is calculated.
2875
2876 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2877 2700
2878 * progmodes/cc-align.el (c-lineup-arglist, c-lineup-argcont) 2701 * progmodes/cc-align.el (c-lineup-arglist, c-lineup-argcont)
2879 (c-lineup-math, c-lineup-cascaded-calls, c-lineup-gcc-asm-reg): 2702 (c-lineup-math, c-lineup-cascaded-calls, c-lineup-gcc-asm-reg):
2880 Fixes to cope correctly with nested arglists for the lineups 2703 Fixes to cope correctly with nested arglists for the lineups
2881 that can be used with arglist-cont-nonempty. 2704 that can be used with arglist-cont-nonempty.
2882
2883 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2884 2705
2885 * progmodes/cc-engine.el (c-add-stmt-syntax, c-guess-basic-syntax): 2706 * progmodes/cc-engine.el (c-add-stmt-syntax, c-guess-basic-syntax):
2886 Change the anchor position of 2707 Change the anchor position of
2887 arglist-cont-nonempty and arglist-close so that a relative 2708 arglist-cont-nonempty and arglist-close so that a relative
2888 indentation like + can be used with consistent results. 2709 indentation like + can be used with consistent results.
2909 now (again) isn't absolutely sure to keep the current indentation. 2730 now (again) isn't absolutely sure to keep the current indentation.
2910 However, I believe that most people use it for comments, macros 2731 However, I believe that most people use it for comments, macros
2911 and string literals, and since those are nested innermost it won't 2732 and string literals, and since those are nested innermost it won't
2912 matter. 2733 matter.
2913 2734
2914 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2915
2916 * progmodes/cc-align.el, progmodes/cc-defs.el, 2735 * progmodes/cc-align.el, progmodes/cc-defs.el,
2917 progmodes/cc-engine.el, progmodes/cc-vars.el 2736 progmodes/cc-engine.el, progmodes/cc-vars.el
2918 (c-guess-basic-syntax, c-calc-offset) 2737 (c-guess-basic-syntax, c-calc-offset)
2919 (c-get-syntactic-indentation, c-syntactic-context): 2738 (c-get-syntactic-indentation, c-syntactic-context):
2920 Extend the representation of the syntactic context: Previously it was 2739 Extend the representation of the syntactic context: Previously it was
2930 of the `c-syntactic-context' variable has changed slightly. It's 2749 of the `c-syntactic-context' variable has changed slightly. It's
2931 believed that this incompatibility is minor, though; not a single 2750 believed that this incompatibility is minor, though; not a single
2932 line-up function distributed with CC Mode needed to be changed, 2751 line-up function distributed with CC Mode needed to be changed,
2933 for instance. 2752 for instance.
2934 2753
2935 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2936
2937 * progmodes/cc-styles.el (c-set-style, c-set-style-1): 2754 * progmodes/cc-styles.el (c-set-style, c-set-style-1):
2938 Add another state for the `dont-override' flag where it only keeps 2755 Add another state for the `dont-override' flag where it only keeps
2939 globally set variables. 2756 globally set variables.
2940 2757
2941 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2942
2943 * progmodes/cc-mode.el (c-postprocess-file-styles): Do nothing 2758 * progmodes/cc-mode.el (c-postprocess-file-styles): Do nothing
2944 except in CC Mode modes. 2759 except in CC Mode modes.
2945
2946 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2947 2760
2948 * progmodes/cc-vars.el, progmodes/cc-fonts.el, 2761 * progmodes/cc-vars.el, progmodes/cc-fonts.el,
2949 progmodes/cc-langs.el, progmodes/cc-mode.el: Add font lock support. 2762 progmodes/cc-langs.el, progmodes/cc-mode.el: Add font lock support.
2950 2763
2951 * progmodes/cc-engine.el (c-beginning-of-syntax): New function 2764 * progmodes/cc-engine.el (c-beginning-of-syntax): New function
2965 * progmodes/cc-mode.el (c-basic-common-init): New function 2778 * progmodes/cc-mode.el (c-basic-common-init): New function
2966 that contains only the syntax and line breaking/filling 2779 that contains only the syntax and line breaking/filling
2967 initialization. It's intended for use by other modes that 2780 initialization. It's intended for use by other modes that
2968 embed CC Mode. 2781 embed CC Mode.
2969 2782
2970 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2971
2972 * progmodes/cc-engine.el (c-add-stmt-syntax): Fix some cases 2783 * progmodes/cc-engine.el (c-add-stmt-syntax): Fix some cases
2973 of wrong anchoring, e.g. for else-if compounds. 2784 of wrong anchoring, e.g. for else-if compounds.
2974 2785
2975 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2976
2977 * progmodes/cc-engine.el (c-guess-basic-syntax): Fix anchor 2786 * progmodes/cc-engine.el (c-guess-basic-syntax): Fix anchor
2978 position for defun-open in K&R style functions. 2787 position for defun-open in K&R style functions.
2979 2788
2980 * progmodes/cc-engine.el (c-in-knr-argdecl): Don't trip up on macros. 2789 * progmodes/cc-engine.el (c-in-knr-argdecl): Don't trip up on macros.
2981 2790
2982 (c-search-decl-header-end): Handle C++ template arguments more 2791 (c-search-decl-header-end): Handle C++ template arguments more
2983 correctly. 2792 correctly.
2984 2793
2985 (c-beginning-of-decl-1): Fix when the declaration is first in a macro. 2794 (c-beginning-of-decl-1): Fix when the declaration is first in a macro.
2986
2987 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2988 2795
2989 * progmodes/cc-engine.el (c-beginning-of-decl-1): Better way 2796 * progmodes/cc-engine.el (c-beginning-of-decl-1): Better way
2990 to handle protection labels, one which doesn't get confused by 2797 to handle protection labels, one which doesn't get confused by
2991 inherit colons. 2798 inherit colons.
2992 2799
2993 (c-end-of-decl-1): Don't treat functions that have "class" or 2800 (c-end-of-decl-1): Don't treat functions that have "class" or
2994 "struct" in the return type as classes or structs. 2801 "struct" in the return type as classes or structs.
2995 2802
2996 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
2997
2998 * progmodes/cc-langs.el (c-make-keywords-re): Fix the 2803 * progmodes/cc-langs.el (c-make-keywords-re): Fix the
2999 keyword adornment so that it works when a keyword ends with "_". 2804 keyword adornment so that it works when a keyword ends with "_".
3000
3001 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
3002 2805
3003 * progmodes/cc-cmds.el (c-mask-comment): More fixes when used 2806 * progmodes/cc-cmds.el (c-mask-comment): More fixes when used
3004 from `c-do-auto-fill' and point is at or near the limit of the 2807 from `c-do-auto-fill' and point is at or near the limit of the
3005 comment. Fix bug when the prefix from `c-guess-fill-prefix' 2808 comment. Fix bug when the prefix from `c-guess-fill-prefix'
3006 is longer than the text on the first line of the comment when 2809 is longer than the text on the first line of the comment when
3007 it's masked. 2810 it's masked.
3008
3009 2003-07-03 Martin Stjernholm <bug-cc-mode@gnu.org>
3010 2811
3011 * progmodes/cc-cmds.el (c-mask-comment): Fix bug where point 2812 * progmodes/cc-cmds.el (c-mask-comment): Fix bug where point
3012 was moved to the following line when it was at the first line 2813 was moved to the following line when it was at the first line
3013 of a block comment where comment-start-skip matched to eol. 2814 of a block comment where comment-start-skip matched to eol.
3014 2815