Merge pull request #48 from inkarkat/bug-unrestrained-pri-matching

BUG: unrestrained pri "(X)" matching
This commit is contained in:
Gina Trapani
2011-11-10 13:33:28 -08:00
3 changed files with 34 additions and 17 deletions

View File

@@ -142,7 +142,7 @@ cat > todo.txt <<EOF
(D) @con02 +prj03 -- Some project 03 task, pri D (D) @con02 +prj03 -- Some project 03 task, pri D
(D) @con02 +prj04 -- Some project 04 task, pri D (D) @con02 +prj04 -- Some project 04 task, pri D
@con01 +prj01 -- Some project 01 task, no priority @con01 +prj01 -- Some project 01 task, no priority
@con01 +prj02 -- Some project 02 task, no priority @con01 +prj02 -- Some project(S) 02 task, no priority
@con02 +prj03 -- Some project 03 task, no priorty @con02 +prj03 -- Some project 03 task, no priorty
@con02 +prj04 -- Some project 04 task, no priority @con02 +prj04 -- Some project 04 task, no priority
EOF EOF
@@ -165,7 +165,7 @@ test_todo_session 'plain mode option' <<EOF
15 (D) @con02 +prj03 -- Some project 03 task, pri D 15 (D) @con02 +prj03 -- Some project 03 task, pri D
16 (D) @con02 +prj04 -- Some project 04 task, pri D 16 (D) @con02 +prj04 -- Some project 04 task, pri D
17 @con01 +prj01 -- Some project 01 task, no priority 17 @con01 +prj01 -- Some project 01 task, no priority
18 @con01 +prj02 -- Some project 02 task, no priority 18 @con01 +prj02 -- Some project(S) 02 task, no priority
19 @con02 +prj03 -- Some project 03 task, no priorty 19 @con02 +prj03 -- Some project 03 task, no priorty
20 @con02 +prj04 -- Some project 04 task, no priority 20 @con02 +prj04 -- Some project 04 task, no priority
-- --
@@ -189,7 +189,7 @@ TODO: 20 of 20 tasks shown
15 (D) @con02 +prj03 -- Some project 03 task, pri D 15 (D) @con02 +prj03 -- Some project 03 task, pri D
16 (D) @con02 +prj04 -- Some project 04 task, pri D 16 (D) @con02 +prj04 -- Some project 04 task, pri D
17 @con01 +prj01 -- Some project 01 task, no priority 17 @con01 +prj01 -- Some project 01 task, no priority
18 @con01 +prj02 -- Some project 02 task, no priority 18 @con01 +prj02 -- Some project(S) 02 task, no priority
19 @con02 +prj03 -- Some project 03 task, no priorty 19 @con02 +prj03 -- Some project 03 task, no priorty
20 @con02 +prj04 -- Some project 04 task, no priority 20 @con02 +prj04 -- Some project 04 task, no priority
-- --
@@ -217,7 +217,7 @@ cat > todo.txt <<EOF
(D) @con02 +prj03 -- Some project 03 task, pri D (D) @con02 +prj03 -- Some project 03 task, pri D
(D) @con02 +prj04 -- Some project 04 task, pri D (D) @con02 +prj04 -- Some project 04 task, pri D
@con01 +prj01 -- Some project 01 task, no priority @con01 +prj01 -- Some project 01 task, no priority
@con01 +prj02 -- Some project 02 task, no priority @con01 +prj02 -- Some project(S) 02 task, no priority
@con02 +prj03 -- Some project 03 task, no priorty @con02 +prj03 -- Some project 03 task, no priorty
@con02 +prj04 -- Some project 04 task, no priority @con02 +prj04 -- Some project 04 task, no priority
EOF EOF
@@ -240,7 +240,7 @@ test_todo_session 'context, project, and priority suppression' <<EOF
15 (D) @con02 +prj03 -- Some project 03 task, pri D 15 (D) @con02 +prj03 -- Some project 03 task, pri D
16 (D) @con02 +prj04 -- Some project 04 task, pri D 16 (D) @con02 +prj04 -- Some project 04 task, pri D
17 @con01 +prj01 -- Some project 01 task, no priority 17 @con01 +prj01 -- Some project 01 task, no priority
18 @con01 +prj02 -- Some project 02 task, no priority 18 @con01 +prj02 -- Some project(S) 02 task, no priority
19 @con02 +prj03 -- Some project 03 task, no priorty 19 @con02 +prj03 -- Some project 03 task, no priorty
20 @con02 +prj04 -- Some project 04 task, no priority 20 @con02 +prj04 -- Some project 04 task, no priority
-- --
@@ -256,7 +256,7 @@ TODO: 20 of 20 tasks shown
13 (D) @con01 +prj01 -- Some project 01 task, pri D 13 (D) @con01 +prj01 -- Some project 01 task, pri D
14 (D) @con01 +prj02 -- Some project 02 task, pri D 14 (D) @con01 +prj02 -- Some project 02 task, pri D
17 @con01 +prj01 -- Some project 01 task, no priority 17 @con01 +prj01 -- Some project 01 task, no priority
18 @con01 +prj02 -- Some project 02 task, no priority 18 @con01 +prj02 -- Some project(S) 02 task, no priority
-- --
TODO: 10 of 20 tasks shown TODO: 10 of 20 tasks shown
@@ -270,7 +270,7 @@ TODO: 10 of 20 tasks shown
13 @con01 +prj01 -- Some project 01 task, pri D 13 @con01 +prj01 -- Some project 01 task, pri D
14 @con01 +prj02 -- Some project 02 task, pri D 14 @con01 +prj02 -- Some project 02 task, pri D
17 @con01 +prj01 -- Some project 01 task, no priority 17 @con01 +prj01 -- Some project 01 task, no priority
18 @con01 +prj02 -- Some project 02 task, no priority 18 @con01 +prj02 -- Some project(S) 02 task, no priority
-- --
TODO: 10 of 20 tasks shown TODO: 10 of 20 tasks shown
@@ -284,7 +284,7 @@ TODO: 10 of 20 tasks shown
13 (D) @con01 -- Some project 01 task, pri D 13 (D) @con01 -- Some project 01 task, pri D
14 (D) @con01 -- Some project 02 task, pri D 14 (D) @con01 -- Some project 02 task, pri D
17 @con01 -- Some project 01 task, no priority 17 @con01 -- Some project 01 task, no priority
18 @con01 -- Some project 02 task, no priority 18 @con01 -- Some project(S) 02 task, no priority
-- --
TODO: 10 of 20 tasks shown TODO: 10 of 20 tasks shown
@@ -298,7 +298,7 @@ TODO: 10 of 20 tasks shown
13 (D) +prj01 -- Some project 01 task, pri D 13 (D) +prj01 -- Some project 01 task, pri D
14 (D) +prj02 -- Some project 02 task, pri D 14 (D) +prj02 -- Some project 02 task, pri D
17 +prj01 -- Some project 01 task, no priority 17 +prj01 -- Some project 01 task, no priority
18 +prj02 -- Some project 02 task, no priority 18 +prj02 -- Some project(S) 02 task, no priority
-- --
TODO: 10 of 20 tasks shown TODO: 10 of 20 tasks shown
@@ -312,7 +312,7 @@ TODO: 10 of 20 tasks shown
13 +prj01 -- Some project 01 task, pri D 13 +prj01 -- Some project 01 task, pri D
14 +prj02 -- Some project 02 task, pri D 14 +prj02 -- Some project 02 task, pri D
17 +prj01 -- Some project 01 task, no priority 17 +prj01 -- Some project 01 task, no priority
18 +prj02 -- Some project 02 task, no priority 18 +prj02 -- Some project(S) 02 task, no priority
-- --
TODO: 10 of 20 tasks shown TODO: 10 of 20 tasks shown
@@ -326,7 +326,7 @@ TODO: 10 of 20 tasks shown
13 (D) @con01 +prj01 -- Some project 01 task, pri D 13 (D) @con01 +prj01 -- Some project 01 task, pri D
14 (D) @con01 +prj02 -- Some project 02 task, pri D 14 (D) @con01 +prj02 -- Some project 02 task, pri D
17 @con01 +prj01 -- Some project 01 task, no priority 17 @con01 +prj01 -- Some project 01 task, no priority
18 @con01 +prj02 -- Some project 02 task, no priority 18 @con01 +prj02 -- Some project(S) 02 task, no priority
-- --
TODO: 10 of 20 tasks shown TODO: 10 of 20 tasks shown
@@ -340,7 +340,7 @@ TODO: 10 of 20 tasks shown
13 -- Some project 01 task, pri D 13 -- Some project 01 task, pri D
14 -- Some project 02 task, pri D 14 -- Some project 02 task, pri D
17 -- Some project 01 task, no priority 17 -- Some project 01 task, no priority
18 -- Some project 02 task, no priority 18 -- Some project(S) 02 task, no priority
-- --
TODO: 10 of 20 tasks shown TODO: 10 of 20 tasks shown
EOF EOF

View File

@@ -166,4 +166,20 @@ test_todo_session 'highlighting with hidden contexts/projects' <<EOF
TODO: 4 of 4 tasks shown TODO: 4 of 4 tasks shown
EOF EOF
# check that priorities are only matched at the start of the task
#
cat > todo.txt <<EOF
(D) some prioritized task
not prioritized
should not be seen as PRIORITIZE(D) task
EOF
test_todo_session 'highlighting priority position' <<EOF
>>> todo.sh ls
1 (D) some prioritized task
2 not prioritized
3 should not be seen as PRIORITIZE(D) task
--
TODO: 3 of 3 tasks shown
EOF
test_done test_done

11
todo.sh
View File

@@ -720,17 +720,18 @@ _list() {
return color return color
} }
{ {
pos = match($0, /\([A-Z]\)/)
if (match($0, /^[0-9]+ x /)) { if (match($0, /^[0-9]+ x /)) {
print highlight("COLOR_DONE") $0 highlight("DEFAULT") print highlight("COLOR_DONE") $0 highlight("DEFAULT")
} else if (pos > 0) { } else if (match($0, /^[0-9]+ \([A-Z]\) /)) {
clr = highlight("PRI_" substr($0, pos+1, 1)) clr = highlight("PRI_" substr($0, RSTART + RLENGTH - 3, 1))
print ( clr ? clr : highlight("PRI_X") ) $0 highlight("DEFAULT") print \
(clr ? clr : highlight("PRI_X")) \
(ENVIRON["HIDE_PRIORITY_SUBSTITUTION"] == "" ? $0 : substr($0, 1, RLENGTH - 4) substr($0, RSTART + RLENGTH)) \
highlight("DEFAULT")
} else { print } } else { print }
} }
''' \ ''' \
| sed ''' | sed '''
s/'${HIDE_PRIORITY_SUBSTITUTION:-^}'//g
s/'${HIDE_PROJECTS_SUBSTITUTION:-^}'//g s/'${HIDE_PROJECTS_SUBSTITUTION:-^}'//g
s/'${HIDE_CONTEXTS_SUBSTITUTION:-^}'//g s/'${HIDE_CONTEXTS_SUBSTITUTION:-^}'//g
''' \ ''' \