Subject: New glasses.el customization option glasses-separate-capital-groups-p

From: Milan Zamazal <[email-masked]>
Date: Wed, 20 Apr 2011 08:46:58 +0200

This adds a new customization option for a feature requested by a
glasses.el user.

2011-04-20  Milan Zamazal  <[email-masked]>

	* progmodes/glasses.el (glasses-separate-capital-groups-p): New
	customization option.

--- glasses.el.orig	2011-01-08 18:45:14.000000000 +0100
+++ glasses.el	2011-04-18 21:45:03.482155846 +0200
@@ -117,6 +117,15 @@
   :group 'glasses
   :type '(repeat regexp))
 
+(defcustom glasses-separate-capital-groups-p t
+  "If non-nil, try to separate groups of capital letters.
+When the value is non-nil, HTMLSomething and IPv6 are displayed
+as HTML_Something and I_Pv6 respectively.  Set the value to nil
+if you prefer to display them unchanged."
+  :group 'glasses
+  :type 'boolean
+  :version "23.4")
+
 (defcustom glasses-uncapitalize-p nil
   "If non-nil, downcase embedded capital letters in identifiers.
 Only identifiers starting with lower case letters are affected, letters inside
@@ -213,8 +222,11 @@
 				'glasses-init))
 	;; Face + separator
 	(goto-char beg)
-	(while (re-search-forward "[a-z]\\([A-Z]\\)\\|[A-Z]\\([A-Z]\\)[a-z]"
-				  end t)
+	(while (re-search-forward
+                (if glasses-separate-capital-groups-p
+                    "[a-z]\\([A-Z]\\)\\|[A-Z]\\([A-Z]\\)[a-z]"
+                  "[a-z]\\([A-Z]\\)")
+                end t)
 	  (let* ((n (if (match-string 1) 1 2))
 		 (o (glasses-make-overlay (match-beginning n) (match-end n))))
 	    (goto-char (match-beginning n))