1 |
Author: ulm |
2 |
Date: 2009-10-08 07:51:54 +0000 (Thu, 08 Oct 2009) |
3 |
New Revision: 685 |
4 |
|
5 |
Modified: |
6 |
trunk/ChangeLog |
7 |
trunk/modules/news.eselect |
8 |
Log: |
9 |
Improve handling of removed news items. |
10 |
|
11 |
Modified: trunk/ChangeLog |
12 |
=================================================================== |
13 |
--- trunk/ChangeLog 2009-10-08 07:33:57 UTC (rev 684) |
14 |
+++ trunk/ChangeLog 2009-10-08 07:51:54 UTC (rev 685) |
15 |
@@ -1,3 +1,12 @@ |
16 |
+2009-10-08 Ulrich Mueller <ulm@g.o> |
17 |
+ |
18 |
+ * modules/news.eselect (do_read): Improve handling of removed news |
19 |
+ items: Display only a warning message instead of an error if an |
20 |
+ item's file doesn't exist. |
21 |
+ (do_list): Take default date from item name. Assume that the item |
22 |
+ has been removed if we cannot read its header. |
23 |
+ (mail_header): Really remove leading zeros in numeric month. |
24 |
+ |
25 |
2009-10-05 Ulrich Mueller <ulm@g.o> |
26 |
|
27 |
* libs/path-manipulation.bash.in (relative_name): New function. |
28 |
|
29 |
Modified: trunk/modules/news.eselect |
30 |
=================================================================== |
31 |
--- trunk/modules/news.eselect 2009-10-08 07:33:57 UTC (rev 684) |
32 |
+++ trunk/modules/news.eselect 2009-10-08 07:51:54 UTC (rev 685) |
33 |
@@ -176,10 +176,12 @@ |
34 |
stat=${item%%/*}; item=${item#*/} |
35 |
repo=${item%%/*}; item=${item#*/} |
36 |
find_repo_dir "${repo}" |
37 |
- header=$(read_item "${dir}" "${item}" header) |
38 |
+ title="(${item} - no title)" |
39 |
+ posted=${item:0:10} |
40 |
+ [[ ${posted} == +([0-9])-+([0-9])-+([0-9]) ]] || posted="(no date) " |
41 |
+ header=$(read_item "${dir}" "${item}" header) \ |
42 |
+ || title="(${item} - removed?)" |
43 |
IFS=$'\n' |
44 |
- title="(${item} - no title)" |
45 |
- posted="(no date) " |
46 |
for line in ${header}; do |
47 |
case "${line%%:*}" in |
48 |
Title) title=${line##*([^:]):*([[:space:]])} ;; |
49 |
@@ -270,31 +272,31 @@ |
50 |
repo=${item%%/*}; item=${item#*/} |
51 |
find_repo_dir "${repo}" |
52 |
case ${format} in |
53 |
- raw) |
54 |
- read_item "${dir}" "${item}" |
55 |
- ;; |
56 |
- cooked) |
57 |
- write_list_start "${item}" |
58 |
- header=$(read_item "${dir}" "${item}" header) |
59 |
- IFS=$'\n' |
60 |
- for line in ${header}; do |
61 |
- case "${line%%:*}" in |
62 |
- Title) |
63 |
- write_kv_list_entry "${line%%:*}" \ |
64 |
- "$(highlight "${line##*([^:]):*([[:space:]])}")" |
65 |
- ;; |
66 |
- Author|Translator|Posted|Revision) |
67 |
- write_kv_list_entry "${line%%:*}" \ |
68 |
- "${line##*([^:]):*([[:space:]])}" |
69 |
- ;; |
70 |
- esac |
71 |
- done |
72 |
- IFS=${ifs_save} |
73 |
- echo |
74 |
- read_item "${dir}" "${item}" body |
75 |
- ;; |
76 |
- mbox) |
77 |
- header=$(read_item "${dir}" "${item}" header) |
78 |
+ raw) |
79 |
+ read_item "${dir}" "${item}" |
80 |
+ ;; |
81 |
+ cooked) |
82 |
+ write_list_start "${item}" |
83 |
+ header=$(read_item "${dir}" "${item}" header) |
84 |
+ IFS=$'\n' |
85 |
+ for line in ${header}; do |
86 |
+ case "${line%%:*}" in |
87 |
+ Title) |
88 |
+ write_kv_list_entry "${line%%:*}" \ |
89 |
+ "$(highlight "${line##*([^:]):*([[:space:]])}")" |
90 |
+ ;; |
91 |
+ Author|Translator|Posted|Revision) |
92 |
+ write_kv_list_entry "${line%%:*}" \ |
93 |
+ "${line##*([^:]):*([[:space:]])}" |
94 |
+ ;; |
95 |
+ esac |
96 |
+ done |
97 |
+ IFS=${ifs_save} |
98 |
+ echo |
99 |
+ read_item "${dir}" "${item}" body |
100 |
+ ;; |
101 |
+ mbox) |
102 |
+ if header=$(read_item "${dir}" "${item}" header); then |
103 |
author=""; title=""; posted="" |
104 |
IFS=$'\n' |
105 |
for line in ${header}; do |
106 |
@@ -315,9 +317,13 @@ |
107 |
IFS=${ifs_save} |
108 |
echo |
109 |
read_item "${dir}" "${item}" body | sed 's/^>*From />&/;$q' |
110 |
- ;; |
111 |
+ else |
112 |
+ false |
113 |
+ fi |
114 |
+ ;; |
115 |
esac |
116 |
- [[ $? -ne 0 ]] && write_error_msg "Error reading item \"${item}\"" |
117 |
+ [[ $? -ne 0 ]] \ |
118 |
+ && write_warning_msg "News item \"${item}\" no longer exists" |
119 |
echo |
120 |
|
121 |
[[ ${stat} = unread ]] || continue |