home
readme
diff
tree
note
docs
0commit def3513f75b325464ad88a33c741c4ca80572b77
1Author: Mason Wright <mason@lakefox.net>
2Date: Mon Jun 23 14:42:28 2025 -0600
3
4 Fixed some of the logic parseSelectorParts
5
6diff --git a/src/grim.cc b/src/grim.cc
7index 301e78f..7f8677d 100755
8--- a/src/grim.cc
9+++ b/src/grim.cc
10@@ -244,7 +244,7 @@ class StyleHandler {
11 if (w == ':' && !inbracket) {
12 break;
13 }
14- // We don't care if the thing we are splitting is a id or class we just
15+ // We don't care if the thing we are splitting is a id or class we just
16 // need them split up so we can use them as map keys
17
18 if (w == '#' && !inbracket) {
19@@ -259,15 +259,19 @@ class StyleHandler {
20 part = "";
21 }
22 } else if (w == '[' || w == ']') {
23+ if (part != "" && inbracket) {
24+ parts.push_back('['+part+']');
25+ part = "";
26+ } else if (!inbracket) {
27+ parts.push_back(part);
28+ part = "";
29+ }
30+
31 if (w=='[') {
32 inbracket = true;
33 } else if (w == ']'){
34 inbracket = false;
35 }
36- if (part != "") {
37- parts.push_back(part);
38- part = "";
39- }
40 continue;
41 }
42
43@@ -285,6 +289,10 @@ class StyleHandler {
44 for (size_t p1 = 0; p1 < parts.size(); p1++) {
45 bool matches = false;
46
47+ if (parts[p1] == "") {
48+ continue;
49+ }
50+
51 for (size_t p2 = p1+1; p2 < parts.size(); p2++) {
52 if (parts[p1] == parts[p2]) {
53 matches = true;
54@@ -317,7 +325,7 @@ class StyleHandler {
55 v = "=\""+av+"\"";
56
57 }
58- parts.push_back(k+v);
59+ parts.push_back('['+k+v+']');
60 }
61 }
62