View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0012995CMakeDocumentationpublic2012-02-23 21:362012-09-03 16:02
ReporterChristopher Sean Morrison 
Assigned ToBrad King 
PrioritynormalSeveritytweakReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionCMake 2.8.8Fixed in VersionCMake 2.8.8 
Summary0012995: Emacs case-insensitive indentation in cmake-mode
DescriptionThe cmake-mode.el Emacs mode would incorrectly indent cmake sources if they were written in lower-case. Attached is a patch that makes the mode case-insensitive so that it will indent correctly regardless of case used. This makes the emacs mode match cmake's own internal (case-insensitive) logic parsing.
Steps To Reproduce"M-x indent-region" on a .cmake source file or CMakeLists.txt file that writes uses lowercase instead of uppercase for the syntax. Example:

macro(BAD_INDENT)
  if(some_condition)
    set(foo "bar")
  else(some_condition)
    set(bar "foo")
  endif(some_condition)
endmacro(BAD_INDENT)
TagsNo tags attached.
Attached Filespatch file icon cmake-mode-case.patch [^] (993 bytes) 2012-02-23 21:36 [Show Content]

 Relationships

  Notes
(0028713)
Brad King (manager)
2012-02-24 10:44

Strange. The indentation works for me without this patch. What determines whether string-match is sensitive to case?
(0028715)
Christopher Sean Morrison (reporter)
2012-02-24 13:19

The indentation works for me as well .. on some Emacs invocations, but not on others. When I investigated, it was case-sensitivity. I didn't determine whether the cause was due to different versions of Emacs, different platforms, or even different file content, but it was definitely an issue. One thread I read seemed to suggest that string-match uses some sort of heuristic to determine whether it should run case-sensitive or not. The patch makes the underlying cause moot since it makes the regex itself insensitive.
(0028717)
Brad King (manager)
2012-02-24 13:26

Thanks for the explanation. Applied:

  http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ab9824e1 [^]
(0030882)
David Cole (manager)
2012-09-03 16:02

Closing resolved issues that have not been updated in more than 4 months.

 Issue History
Date Modified Username Field Change
2012-02-23 21:36 Christopher Sean Morrison New Issue
2012-02-23 21:36 Christopher Sean Morrison File Added: cmake-mode-case.patch
2012-02-24 10:44 Brad King Note Added: 0028713
2012-02-24 10:45 Brad King Assigned To => Brad King
2012-02-24 10:45 Brad King Status new => assigned
2012-02-24 13:19 Christopher Sean Morrison Note Added: 0028715
2012-02-24 13:26 Brad King Note Added: 0028717
2012-02-24 13:26 Brad King Status assigned => resolved
2012-02-24 13:26 Brad King Fixed in Version => CMake 2.8.8
2012-02-24 13:26 Brad King Resolution open => fixed
2012-04-19 15:51 David Cole Target Version => CMake 2.8.8
2012-09-03 16:02 David Cole Note Added: 0030882
2012-09-03 16:02 David Cole Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team