Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 344655 | Differences between
and this patch

Collapse All | Expand All

(-)news.eselect (-4 / +16 lines)
Lines 15-32 Link Here
15
# read list of news items
15
# read list of news items
16
# list of parameters may contain "unread" or "read"
16
# list of parameters may contain "unread" or "read"
17
# returns one item per line: status/repository/name
17
# returns one item per line: status/repository/name
18
# sort order: 1. "unread" before "read", 2. by repository
18
# sort order: by item name
19
find_items() {
19
find_items() {
20
	local stat repos=$(get_repositories) repo item
20
	local -a items repos=$(get_repositories)
21
	local stat repo item key i
22
21
	for stat in "$@"; do
23
	for stat in "$@"; do
22
		for repo in ${repos}; do
24
		for repo in ${repos}; do
23
			file="${ROOT}${NEWS_DIR}/news-${repo}.${stat}"
25
			file="${ROOT}${NEWS_DIR}/news-${repo}.${stat}"
24
			[[ -f ${file} ]] || continue
26
			[[ -f ${file} ]] || continue
25
			for item in $(<"${file}"); do
27
			for item in $(<"${file}"); do
26
				echo "${stat}/${repo}/${item}"
28
				# sort by item name. straight insertion sort.
29
				for ((i=${#items[@]}; i>0; i--)); do
30
					key=${items[i-1]#*/}
31
					[[ ${item} < ${key#*/} ]] || break
32
					items[i]=${items[i-1]}
33
				done
34
				items[i]=${stat}/${repo}/${item}
27
			done
35
			done
28
		done
36
		done
29
	done
37
	done
38
39
	for item in "${items[@]}"; do
40
		echo "${item}"
41
	done
30
}
42
}
31
43
32
# write list of items to file
44
# write list of items to file
Lines 256-262 Link Here
256
	# expand special values "new" and "all"
268
	# expand special values "new" and "all"
257
	if [[ $# -eq 0 || $1 = new || $1 = all ]]; then
269
	if [[ $# -eq 0 || $1 = new || $1 = all ]]; then
258
		for (( i = 1; i <= n; i++ )); do
270
		for (( i = 1; i <= n; i++ )); do
259
			[[ $1 = all || ${items[i-1]%%/*} = unread ]] || break
271
			[[ $1 = all || ${items[i-1]%%/*} = unread ]] || continue
260
			seq="${seq} ${i}"
272
			seq="${seq} ${i}"
261
		done
273
		done
262
		set -- ${seq}
274
		set -- ${seq}

Return to bug 344655