~ubuntu-branches/ubuntu/trusty/surfraw/trusty-proposed

« back to all changes in this revision

Viewing changes to elvi/deblists

  • Committer: Bazaar Package Importer
  • Author(s): Ian Beckwith
  • Date: 2008-03-11 14:07:35 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080311140735-8s6dh1auyn1ot7bi
Tags: 2.2.1-2
Remove my old email address from Uploaders.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#!/bin/sh
2
 
# $Id: deblists,v 1.3 2005-04-15 14:38:33 ianb-guest Exp $
 
2
# $Id: deblists,v 1.4 2008-02-14 04:17:06 ianb-guest Exp $
3
3
# elvis: deblists       -- Search debian mailing lists (lists.debian.org/search.html)
4
 
# ianb@nessie.mcc.ac.uk 2003919
 
4
# ianb@erislabs.net 2003919
5
5
. surfraw || exit 1
6
6
 
7
 
function dodate
8
 
{
9
 
    if [ $# -eq 0 ]
10
 
    then
11
 
        datespec=""
12
 
    else
13
 
        datespec="$1"
14
 
    fi
15
 
 
16
 
    echo "$datespec" |
17
 
    perl -w -e '
18
 
######################################################################
19
 
# start perl
20
 
 
21
 
$arg=<>;
22
 
chomp($arg);
23
 
$arg=~s/\s//g;
24
 
$arg=lc($arg);
25
 
 
26
 
$arcstartyear="1995";
27
 
$arcstartquarter="3";
28
 
$arcstartdate="1995q3";
29
 
$arcstartrange="1995q3-1995q4";
30
 
 
31
 
$ynow=qx/date +%Y/; chomp($ynow);
32
 
$mnow=qx/date +%m/; chomp($mnow);
33
 
$qnow=sprintf("%.0d",($mnow / 4)); $qnow++;
34
 
if($arg eq "") { $arg="${ynow}q${qnow}"; }
35
 
    
36
 
@ranges=split(/,/,$arg,-1);
37
 
@ranges=map(canonrange($_),@ranges);
38
 
@ranges=map(fillrange($_),@ranges);
39
 
@ranges=unique(@ranges);
40
 
@ranges=sort(@ranges);
41
 
@ranges=map(toform($_),@ranges);
42
 
 
43
 
my $dsep="&dates=";
44
 
print($dsep,join($dsep,@ranges),"\n");
45
 
 
46
 
sub unique
47
 
{
48
 
    my %hash=map { $_ => 1; } @_;
49
 
    return(keys(%hash));
50
 
}
51
 
 
52
 
sub toform
53
 
{
54
 
    my $range=shift;
55
 
    my @quarters=("Jan+to+Mar+",
56
 
                  "Apr+to+Jun+",
57
 
                  "Jul+to+Sep+",
58
 
                  "Oct+to+Dec+");
59
 
    my ($y,$q)=($range=~/^(\d+)q(\d)/i);
60
 
    $q--;
61
 
    return($quarters[$q].$y);
62
 
}
63
 
 
64
 
sub fillrange
65
 
{
66
 
    my $range=shift;
67
 
    my @ranges=();
68
 
    my $year;
69
 
    # expand bare years
70
 
    if(($year)=($range=~/^(\d+)$/))
71
 
    {
72
 
        if($year eq $arcstartyear)   { push(@ranges,fillrange($arcstartrange)); }
73
 
        elsif($year eq $ynow)
74
 
        {
75
 
            if($qnow>1) { push(@ranges,fillrange("${ynow}q1-${ynow}q$qnow")); }
76
 
            else { push(@ranges,"${ynow}q1"); }
77
 
        }
78
 
        else
79
 
        {
80
 
            push(@ranges,fillrange("${year}q1-${year}q4"));
81
 
        }
82
 
    }
83
 
    if(my ($start,$end)=($range=~/(.*)-(.*)/))
84
 
    {
85
 
        push(@ranges,expandrange($start,$end));
86
 
    }
87
 
    else
88
 
    {
89
 
        push(@ranges,$range);
90
 
    }
91
 
    return @ranges;
92
 
}
93
 
 
94
 
# convert eg "1998q3","1999q2" -> ("1998q3","1998q4","1999q1","1999q2")
95
 
sub expandrange
96
 
{
97
 
    my($start,$end)=@_;
98
 
    my($sy,$sq)=($start=~/^(\d+)q(\d)/);
99
 
    my($ey,$eq)=($end  =~/^(\d+)q(\d)/);
100
 
    my @quarts=();
101
 
    for (my $q=$sq;$q<=4;$q++)      { push(@quarts,"${sy}q$q"); }
102
 
    for (my $y=($sy+1);$y<$ey;$y++) { for my $q (1..4) { push(@quarts,"${y}q$q") } }
103
 
    for (my $q=1;$q<=$eq;$q++)      { push(@quarts, "${ey}q$q") }
104
 
    return @quarts;
105
 
}
106
 
 
107
 
# fill in range defaults
108
 
sub canonrange
109
 
{
110
 
    my $arg=shift;
111
 
    if($arg=~/(.*)-(.*)/)
112
 
    {
113
 
        my($start,$end)=(canondate($1),canondate($2));
114
 
        # if arcstartyear, get the right start quarter
115
 
        if(($start eq "") || ($start eq $arcstartyear)) { $start=$arcstartdate;}
116
 
        # if they specified a start quarter but no year
117
 
        if($start!~/^\d+/) { $start=$arcstartyear.$start;}
118
 
        # start in 1st quarter
119
 
        if($start!~/q\d$/) { $start.="q1"; }
120
 
        # end in last quarter
121
 
        if($end  !~/q\d$/) { $end  .="q4"; } 
122
 
        # default to current year/quarter
123
 
        if(($end eq "") || ($end eq $ynow)) { $end=$ynow."q".$qnow;}
124
 
        if($end  !~/^\d+/) { $end  =$ynow.$end   ;}
125
 
        return($start."-".$end);
126
 
    }
127
 
    else
128
 
    {
129
 
        $arg=canondate($arg);
130
 
        # default to current year/quarter
131
 
        if($arg eq "") { $arg=$ynow."q".$qnow; }
132
 
        if($arg!~/^\d+/) { $arg=$ynow.$arg;   }
133
 
        # expand a year to all its quarters
134
 
        if($arg=~/^(\d+)$/)
135
 
        {
136
 
            my $y=$1;
137
 
            my $startq=1;
138
 
            # get archive start right
139
 
            if($y eq $arcstartyear) { $startq = $arcstartquarter; }
140
 
            my @arg=map({$y."q".$_} $startq..4); return @arg;
141
 
        }
142
 
        return $arg;
143
 
    }
144
 
}
145
 
 
146
 
# checks date and make it 4 digit
147
 
sub canondate
148
 
{
149
 
    my $datespec=shift;
150
 
    return "" if($datespec eq "");
151
 
    unless($datespec=~/^(\d*)?(q\d)?$/)
152
 
    {
153
 
        print("Bad date spec: $datespec\n");
154
 
        exit(1);
155
 
    }
156
 
    if($datespec=~/^(\d+)/)
157
 
    {
158
 
        my $year=$1;
159
 
        if(($year>90) && ($year <= 99)) { $datespec="19".$datespec; }
160
 
        elsif($year<90)
161
 
        {
162
 
            $newyear=sprintf("20%02.d",$year);
163
 
            $datespec=~s/^$year/$newyear/;
164
 
        }
165
 
    }
166
 
    return($datespec);
167
 
}
168
 
 
169
 
 
170
 
#end perl
171
 
######################################################################
172
 
' # end of perl quoting
173
 
    return $?
174
 
}
175
 
 
176
7
w3_config_hook () {
177
 
def SURFRAW_deblists_results    $SURFRAW_results
178
 
def SURFRAW_deblists_lists      "user" 
179
 
def SURFRAW_deblists_dates      ""
180
 
def SURFRAW_deblists_case       ""
181
 
def SURFRAW_deblists_errors     0
182
 
def SURFRAW_deblists_partial    ""
183
 
def SURFRAW_deblists_sameline   ""
184
 
def SURFRAW_deblists_maxlines   10
185
 
def SURFRAW_deblists_searchhelp 0
 
8
defyn SURFRAW_deblists_matchany    no
 
9
defyn SURFRAW_deblists_searchmsgid no
 
10
def   SURFRAW_deblists_author      ""
 
11
def   SURFRAW_deblists_lists       ""
 
12
def   SURFRAW_deblists_sort        "relevance"
 
13
def   SURFRAW_deblists_results     $SURFRAW_results
 
14
def   SURFRAW_deblists_lang        $SURFRAW_lang
186
15
}
187
16
 
188
17
w3_usage_hook () {
191
20
Description:
192
21
  Surfraw search debian mailing lists (lists.debian.org/search.html)
193
22
Local options:
194
 
  -shelp                |       Go to search help page
195
 
                                (http://lists.debian.org/glimpse.html#sect7)
196
 
  -results=NUM          |       Number of search results returned
197
 
                                Default: $SURFRAW_deblists_results      
 
23
  -results=NUM                  Number of search results returned
 
24
                                Default: $SURFRAW_deblists_results
198
25
                                Environment: SURFRAW_deblists_results
199
 
  -dates=DATESPEC       |       Specify quarters to search
200
 
                                Format: YEARqQUARTER eg 1998q3
201
 
                                Separate multiple quarters with commas
202
 
                                Whole years expanded (eg 97 => 1997q1-1997q4)
203
 
                                Ranges allowed
204
 
                                Range ends default to archive start/now
205
 
                                Examples: 
206
 
                                        1995,96q2-97q1,99q3-0,2002-
207
 
                                        - (whole archive)
208
 
                                Archive starts 1995q3  
209
 
                                Default: current quarter
210
 
                                Environment: SURFRAW_deblists_dates
211
 
  -case                 |       Case-sensitive search
212
 
                                Default: no
213
 
                                Environment: SURFRAW_deblists_case
214
 
  -errors=0|1|2|best    |       Errors allowed (best=Best Match)
215
 
                                Default: $SURFRAW_deblists_errors
216
 
                                Environment: SURFRAW_deblists_errors
217
 
  -partial              |       Allow partial matches (eg deb => "debian" or "debug")
218
 
                                Default: no
219
 
                                Environment: SURFRAW_deblists_partial
220
 
  -sameline             |       Words separated by ';' must appear on same line
221
 
                                Default: no
222
 
                                Environment: SURFRAW_deblists_sameline
223
 
  -lines=0|5|10|50|100  |       Max lines per message (0=titles only)
224
 
  -list=LIST            |       List to search
225
 
                                Default: $SURFRAW_deblists_lists
 
26
  -m|-msgid                     Search by message-id
 
27
  -any                          Match any word in search rather than all words
 
28
  -author=AUTHOR                Limit search to messages from AUTHOR
 
29
  -sort=relevance       |       How to sort the results
 
30
        date            |
 
31
        revdate
 
32
                                Default: $SURFRAW_deblists_sort
 
33
                                Environment: SURFRAW_deblists_sort
 
34
  -lists=LIST1,LIST2            List to search
 
35
                                Default: all
226
36
                                Environment: SURFRAW_deblists_lists
227
 
                                Lists (as of 2005-04-15):
228
 
        68k accessibility admintool alpha amd64 announce apache arm autobuild
229
 
        beowulf books boot bsd cd cd-vendors cdwrite changes chinese
230
 
        chinese-big5 chinese-gb commercial consultants ctte curiosa custom dak
231
 
        debbugs deity desktop devel devel-announce devel-changes devel-french
232
 
        devel-games devel-italian devel-m68k-changes devel-portuguese
233
 
        devel-powerpc-changes devel-s390-changes devel-spanish
234
 
        devel-sparc-changes doc dpkg edu emacsen embedded esperanto events-eu
235
 
        events-na faq firewall french gcc glibc gtk-gnome hams handheld hppa
236
 
        hurd i18n ia64 ipv6 isp italian japanese java jr kde kernel
237
 
        l10n-arabic l10n-catalan l10n-czech l10n-danish l10n-dutch
238
 
        l10n-english l10n-finnish l10n-french l10n-german l10n-greek
239
 
        l10n-hungarian l10n-italian l10n-korean l10n-polish l10n-portuguese
240
 
        l10n-romanian l10n-russian l10n-spanish l10n-turkish laespiral laptop
241
 
        lcs-eng legal lex lint-maint lsb lsb-confcall lsb-discuss lsb-impl
242
 
        lsb-spec lsb-test med mentors mips mirrors multimedia newmaint
 
37
                                Lists (as of 2008-02-11):
 
38
        68k accessibility admintool alpha amd64 announce apache arm
 
39
        autobuild beowulf books boot bsd cd cd-vendors changes chinese
 
40
        chinese-big5 chinese-gb commercial consultants ctte curiosa
 
41
        custom dak ddtp debbugs desktop devel devel-announce
 
42
        devel-changes devel-french devel-games devel-italian
 
43
        devel-m68k-changes devel-portuguese devel-powerpc-changes
 
44
        devel-s390-changes devel-spanish devel-sparc-changes doc dpkg
 
45
        edu edu-announce edu-french emacsen embedded enterprise
 
46
        esperanto events-eu events-na events-nl faq firewall flash
 
47
        french gcc glibc gtk-gnome hams handheld hppa hurd i18n ia64
 
48
        infrastructure-announce ipv6 isp italian japanese java jobs jr
 
49
        kde kernel kernel-maint knoppix l10n-arabic l10n-catalan
 
50
        l10n-czech l10n-danish l10n-dutch l10n-english l10n-esperanto
 
51
        l10n-finnish l10n-french l10n-galician l10n-german l10n-greek
 
52
        l10n-hungarian l10n-italian l10n-kannada l10n-korean
 
53
        l10n-malayalam l10n-persian l10n-polish l10n-portuguese
 
54
        l10n-romanian l10n-russian l10n-spanish l10n-swedish
 
55
        l10n-turkish laespiral laptop legal lex lint-maint lsb med
 
56
        mentors mips mirrors mirrors-announce multimedia newmaint
243
57
        newmaint-admin newmaint-discuss news news-french news-german
244
 
        news-portuguese nonprofit ocaml-maint openoffice parisc perl pilot
245
 
        policy pool powerpc project publicity python qa qa-packages qa-private
246
 
        qt-kde release ruby russian s390 s390-changes security
247
 
        security-announce sgml simplified-chinese snapshots sparc
248
 
        sparc-changes spi-announce spi-general ssh superh testing tetex-maint
249
 
        toolchain ultralinux user user-catalan user-danish user-de user-french
250
 
        user-german user-icelandic user-indonesian user-polish user-portuguese
251
 
        user-spanish user-swedish user-turkish user-ukrainian vgui-discuss
252
 
        vote win32 wnpp women www x
 
58
        news-italian news-portuguese news-spanish nonprofit
 
59
        ocaml-maint openoffice parisc perl photo pilot policy pool
 
60
        powerpc printing project publicity python qa qa-packages
 
61
        qa-packages qa-private qt-kde release ruby russian s390
 
62
        s390-changes science security security-announce
 
63
        security-tracker sgml simplified-chinese snapshots sparc
 
64
        sparc-changes ssh superh testing testing-changes tetex-maint
 
65
        tex-maint toolchain ultralinux user user-catalan user-danish
 
66
        user-de user-french user-german user-icelandic user-indonesian
 
67
        user-polish user-portuguese user-spanish user-swedish
 
68
        user-turkish user-ukrainian user-vietnamese volatile
 
69
        volatile-announce vote webapps win32 wnpp women www x deity
253
70
 
 
71
  -lang=LANG                    Preferred language
 
72
                                Default: $SURFRAW_deblists_lang
 
73
                                Environment: SURFRAW_lang, SURFRAW_deblists_lang
 
74
                                Supported values:
 
75
        ar | arabic, ca | catalan, zh | chinese, da | danish, nl | dutch,
 
76
        en | english, eo | esperanto, fi | finnish, fr | french, gl | galician,
 
77
        de | german, el | greek, hu | hungarian, id | indonesian, it | italian,
 
78
        kn | kannada, ml | malayalam, fa | persian, pl | polish,
 
79
        pt | portuguese, ro | romanian, ru | russian, es | spanish,
 
80
        sv | swedish, tr | turkish, uk | ukrainian, vi | vietnamese
254
81
EOF
255
82
    w3_global_usage
256
83
}
259
86
    opt="$1"
260
87
    optarg="$2"
261
88
    case "$opt" in
262
 
        -result*=*)     setopt  SURFRAW_deblists_results        $optarg ;;
263
 
        -error*=*)      setopt  SURFRAW_deblists_errors         $optarg ;;
264
 
        -line*=*)       setopt  SURFRAW_deblists_maxlines       $optarg ;;
 
89
        -result*=*)     setopt   SURFRAW_deblists_results       $optarg ;;
 
90
        -m|-msg*)       setoptyn SURFRAW_deblists_searchmsgid   yes     ;;
 
91
        -any)           setoptyn SURFRAW_deblists_matchany      yes     ;;
 
92
        -sort*=*)       setopt  SURFRAW_deblists_sort           $optarg ;;
 
93
        -auth*=*)       setopt  SURFRAW_deblists_author         $optarg ;;
265
94
        -lis*=*)        setopt  SURFRAW_deblists_lists          $optarg ;;
266
 
        -date*=*)       setopt  SURFRAW_deblists_dates          $optarg ;;
267
 
        -case)          setopt  SURFRAW_deblists_case           on      ;;
268
 
        -partial)       setopt  SURFRAW_deblists_partial        on      ;;
269
 
        -same*)         setopt  SURFRAW_deblists_sameline       on      ;;
270
 
        -shelp*)        setopt  SURFRAW_deblists_searchhelp     1       ;;
 
95
        -lan*=*)        setopt  SURFRAW_deblists_lang           $optarg ;;
271
96
        *) return 1 ;;
272
97
    esac
273
98
    return 0
274
99
}
275
100
 
276
101
w3_config
277
 
# disable requoting, doesn't work with this elvi.
278
 
SURFRAW_quote_ifs=0
279
102
w3_parse_args "$@"
280
103
# w3_args now contains a list of arguments
281
 
if [ $SURFRAW_deblists_searchhelp -eq 1 ]; then
282
 
    w3_browse_url "http://lists.debian.org/glimpse.html#sect7"
283
 
elif test -z "$w3_args"; then
 
104
if test -z "$w3_args"; then
284
105
    w3_browse_url "http://lists.debian.org/search.html"
 
106
elif ifyes SURFRAW_deblists_searchmsgid
 
107
then
 
108
    escaped_args=`w3_url_of_arg $w3_args`
 
109
    w3_browse_url "http://lists.debian.org/msgid-search/?m=${escaped_args}"
285
110
else
286
111
    escaped_args=`w3_url_of_arg $w3_args`
287
 
    url="http://lists.debian.org/cgi-bin/searchlists?query=${escaped_args}&maxfiles=${SURFRAW_deblists_results}&maxlines=${SURFRAW_deblists_maxlines}&errors=${SURFRAW_deblists_errors}"
288
 
 
289
 
# 2003-09-19: website implies you can search multiple lists
290
 
# simultaneously, but it doesn't work (and hasn't for a long time
291
 
# judging by bug reports), so this code is disabled for now
292
 
#    lists=`echo "${SURFRAW_deblists_lists}" | sed 's/[[:space:]]//g;s/,/\&lists=/g'`
293
 
    url="${url}&lists=${SURFRAW_deblists_lists}"
294
 
    
295
 
    dodate_ret=`dodate "${SURFRAW_deblists_dates}"`
296
 
    if [ $? -eq 0 ]
297
 
    then
298
 
        url="${url}${dodate_ret}"
299
 
    else
300
 
        # error in date spec - abort
301
 
        echo "$0: $dodate_ret"
302
 
        exit 1
303
 
    fi
304
 
    
305
 
    if [ "${SURFRAW_deblists_case}" != "" ]
306
 
    then
307
 
        url="${url}&case=${SURFRAW_deblists_case}"
308
 
    fi
309
 
    if [ "${SURFRAW_deblists_partial}" != "" ]
310
 
    then
311
 
        url="${url}&partial=${SURFRAW_deblists_partial}"
312
 
    fi
313
 
    if [ "${SURFRAW_deblists_sameline}" != "" ]
314
 
    then
315
 
        url="${url}&lineonly=${SURFRAW_deblists_sameline}"
316
 
    fi
 
112
    url="http://lists.debian.org/cgi-bin/search?query=${escaped_args}&author=${SURFRAW_deblists_author}"
 
113
    if ifyes SURFRAW_deblists_matchany
 
114
    then
 
115
        url="$url&MATCHOP=or"
 
116
    else
 
117
        url="$url&MATCHOP=and"
 
118
    fi
 
119
 
 
120
    lists=""
 
121
    if [ -z "$SURFRAW_deblists_lists" ]
 
122
    then
 
123
        lists="&list="
 
124
    else
 
125
        for list in $( echo "${SURFRAW_deblists_lists}" | sed 's/[[:space:]]//g;s/,/ /g;' )
 
126
        do
 
127
            case $list in 
 
128
                68k|debian-68k) thislist=debian-68k ;;
 
129
                accessibility|debian-accessibility)     thislist=debian-accessibility ;;
 
130
                admintool|debian-admintool)     thislist=debian-admintool ;;
 
131
                alpha|debian-alpha)     thislist=debian-alpha ;;
 
132
                amd64|debian-amd64)     thislist=debian-amd64 ;;
 
133
                announce|debian-announce)       thislist=debian-announce ;;
 
134
                apache|debian-apache)   thislist=debian-apache ;;
 
135
                arm|debian-arm) thislist=debian-arm ;;
 
136
                autobuild|debian-autobuild)     thislist=debian-autobuild ;;
 
137
                beowulf|debian-beowulf) thislist=debian-beowulf ;;
 
138
                books|debian-books)     thislist=debian-books ;;
 
139
                boot|debian-boot)       thislist=debian-boot ;;
 
140
                bsd|debian-bsd) thislist=debian-bsd ;;
 
141
                cd|debian-cd)   thislist=debian-cd ;;
 
142
                cd-vendors|debian-cd-vendors)   thislist=debian-cd-vendors ;;
 
143
                changes|debian-changes) thislist=debian-changes ;;
 
144
                chinese|debian-chinese) thislist=debian-chinese ;;
 
145
                chinese-big5|debian-chinese-big5)       thislist=debian-chinese-big5 ;;
 
146
                chinese-gb|debian-chinese-gb)   thislist=debian-chinese-gb ;;
 
147
                commercial|debian-commercial)   thislist=debian-commercial ;;
 
148
                consultants|debian-consultants) thislist=debian-consultants ;;
 
149
                ctte|debian-ctte)       thislist=debian-ctte ;;
 
150
                curiosa|debian-curiosa) thislist=debian-curiosa ;;
 
151
                custom|debian-custom)   thislist=debian-custom ;;
 
152
                dak|debian-dak) thislist=debian-dak ;;
 
153
                ddtp|debian-ddtp)       thislist=debian-ddtp ;;
 
154
                debbugs|debian-debbugs) thislist=debian-debbugs ;;
 
155
                desktop|debian-desktop) thislist=debian-desktop ;;
 
156
                devel|debian-devel)     thislist=debian-devel ;;
 
157
                devel-announce|debian-devel-announce)   thislist=debian-devel-announce ;;
 
158
                devel-changes|debian-devel-changes)     thislist=debian-devel-changes ;;
 
159
                devel-french|debian-devel-french)       thislist=debian-devel-french ;;
 
160
                devel-games|debian-devel-games) thislist=debian-devel-games ;;
 
161
                devel-italian|debian-devel-italian)     thislist=debian-devel-italian ;;
 
162
                devel-m68k-changes|debian-devel-m68k-changes)   thislist=debian-devel-m68k-changes ;;
 
163
                devel-portuguese|debian-devel-portuguese)       thislist=debian-devel-portuguese ;;
 
164
                devel-powerpc-changes|debian-devel-powerpc-changes)     thislist=debian-devel-powerpc-changes ;;
 
165
                devel-s390-changes|debian-devel-s390-changes)   thislist=debian-devel-s390-changes ;;
 
166
                devel-spanish|debian-devel-spanish)     thislist=debian-devel-spanish ;;
 
167
                devel-sparc-changes|debian-devel-sparc-changes) thislist=debian-devel-sparc-changes ;;
 
168
                doc|debian-doc) thislist=debian-doc ;;
 
169
                dpkg|debian-dpkg)       thislist=debian-dpkg ;;
 
170
                edu|debian-edu) thislist=debian-edu ;;
 
171
                edu-announce|debian-edu-announce)       thislist=debian-edu-announce ;;
 
172
                edu-french|debian-edu-french)   thislist=debian-edu-french ;;
 
173
                emacsen|debian-emacsen) thislist=debian-emacsen ;;
 
174
                embedded|debian-embedded)       thislist=debian-embedded ;;
 
175
                enterprise|debian-enterprise)   thislist=debian-enterprise ;;
 
176
                esperanto|debian-esperanto)     thislist=debian-esperanto ;;
 
177
                events-eu|debian-events-eu)     thislist=debian-events-eu ;;
 
178
                events-na|debian-events-na)     thislist=debian-events-na ;;
 
179
                events-nl|debian-events-nl)     thislist=debian-events-nl ;;
 
180
                faq|debian-faq) thislist=debian-faq ;;
 
181
                firewall|debian-firewall)       thislist=debian-firewall ;;
 
182
                flash|debian-flash)     thislist=debian-flash ;;
 
183
                french|debian-french)   thislist=debian-french ;;
 
184
                gcc|debian-gcc) thislist=debian-gcc ;;
 
185
                glibc|debian-glibc)     thislist=debian-glibc ;;
 
186
                gtk-gnome|debian-gtk-gnome)     thislist=debian-gtk-gnome ;;
 
187
                hams|debian-hams)       thislist=debian-hams ;;
 
188
                handheld|debian-handheld)       thislist=debian-handheld ;;
 
189
                hppa|debian-hppa)       thislist=debian-hppa ;;
 
190
                hurd|debian-hurd)       thislist=debian-hurd ;;
 
191
                i18n|debian-i18n)       thislist=debian-i18n ;;
 
192
                ia64|debian-ia64)       thislist=debian-ia64 ;;
 
193
                infrastructure-announce|debian-infrastructure-announce)thislist=debian-infrastructure-announce ;;
 
194
                ipv6|debian-ipv6)       thislist=debian-ipv6 ;;
 
195
                isp|debian-isp) thislist=debian-isp ;;
 
196
                italian|debian-italian) thislist=debian-italian ;;
 
197
                japanese|debian-japanese)       thislist=debian-japanese ;;
 
198
                java|debian-java)       thislist=debian-java ;;
 
199
                jobs|debian-jobs)       thislist=debian-jobs ;;
 
200
                jr|debian-jr)   thislist=debian-jr ;;
 
201
                kde|debian-kde) thislist=debian-kde ;;
 
202
                kernel|debian-kernel)   thislist=debian-kernel ;;
 
203
                kernel-maint|debian-kernel-maint)       thislist=debian-kernel-maint ;;
 
204
                knoppix|debian-knoppix) thislist=debian-knoppix ;;
 
205
                l10n-arabic|debian-l10n-arabic) thislist=debian-l10n-arabic ;;
 
206
                l10n-catalan|debian-l10n-catalan)       thislist=debian-l10n-catalan ;;
 
207
                l10n-czech|debian-l10n-czech)   thislist=debian-l10n-czech ;;
 
208
                l10n-danish|debian-l10n-danish) thislist=debian-l10n-danish ;;
 
209
                l10n-dutch|debian-l10n-dutch)   thislist=debian-l10n-dutch ;;
 
210
                l10n-english|debian-l10n-english)       thislist=debian-l10n-english ;;
 
211
                l10n-esperanto|debian-l10n-esperanto)   thislist=debian-l10n-esperanto ;;
 
212
                l10n-finnish|debian-l10n-finnish)       thislist=debian-l10n-finnish ;;
 
213
                l10n-french|debian-l10n-french) thislist=debian-l10n-french ;;
 
214
                l10n-galician|debian-l10n-galician)     thislist=debian-l10n-galician ;;
 
215
                l10n-german|debian-l10n-german) thislist=debian-l10n-german ;;
 
216
                l10n-greek|debian-l10n-greek)   thislist=debian-l10n-greek ;;
 
217
                l10n-hungarian|debian-l10n-hungarian)   thislist=debian-l10n-hungarian ;;
 
218
                l10n-italian|debian-l10n-italian)       thislist=debian-l10n-italian ;;
 
219
                l10n-kannada|debian-l10n-kannada)       thislist=debian-l10n-kannada ;;
 
220
                l10n-korean|debian-l10n-korean) thislist=debian-l10n-korean ;;
 
221
                l10n-malayalam|debian-l10n-malayalam)   thislist=debian-l10n-malayalam ;;
 
222
                l10n-persian|debian-l10n-persian)       thislist=debian-l10n-persian ;;
 
223
                l10n-polish|debian-l10n-polish) thislist=debian-l10n-polish ;;
 
224
                l10n-portuguese|debian-l10n-portuguese) thislist=debian-l10n-portuguese ;;
 
225
                l10n-romanian|debian-l10n-romanian)     thislist=debian-l10n-romanian ;;
 
226
                l10n-russian|debian-l10n-russian)       thislist=debian-l10n-russian ;;
 
227
                l10n-spanish|debian-l10n-spanish)               thislist=debian-l10n-spanish ;;
 
228
                l10n-swedish|debian-l10n-swedish)               thislist=debian-l10n-swedish ;;
 
229
                l10n-turkish|debian-l10n-turkish)               thislist=debian-l10n-turkish ;;
 
230
                laespiral|debian-laespiral)             thislist=debian-laespiral ;;
 
231
                laptop|debian-laptop)   thislist=debian-laptop ;;
 
232
                legal|debian-legal)     thislist=debian-legal ;;
 
233
                lex|debian-lex) thislist=debian-lex ;;
 
234
                lint-maint|debian-lint-maint)           thislist=debian-lint-maint ;;
 
235
                lsb|debian-lsb) thislist=debian-lsb ;;
 
236
                med|debian-med) thislist=debian-med ;;
 
237
                mentors|debian-mentors)         thislist=debian-mentors ;;
 
238
                mips|debian-mips)       thislist=debian-mips ;;
 
239
                mirrors|debian-mirrors)         thislist=debian-mirrors ;;
 
240
                mirrors-announce|debian-mirrors-announce)       thislist=debian-mirrors-announce ;;
 
241
                multimedia|debian-multimedia)           thislist=debian-multimedia ;;
 
242
                newmaint|debian-newmaint)       thislist=debian-newmaint ;;
 
243
                newmaint-admin|debian-newmaint-admin)   thislist=debian-newmaint-admin ;;
 
244
                newmaint-discuss|debian-newmaint-discuss)       thislist=debian-newmaint-discuss ;;
 
245
                news|debian-news)       thislist=debian-news ;;
 
246
                news-french|debian-news-french) thislist=debian-news-french ;;
 
247
                news-german|debian-news-german) thislist=debian-news-german ;;
 
248
                news-italian|debian-news-italian)       thislist=debian-news-italian ;;
 
249
                news-portuguese|debian-news-portuguese) thislist=debian-news-portuguese ;;
 
250
                news-spanish|debian-news-spanish)               thislist=debian-news-spanish ;;
 
251
                nonprofit|debian-nonprofit)     thislist=debian-nonprofit ;;
 
252
                ocaml-maint|debian-ocaml-maint) thislist=debian-ocaml-maint ;;
 
253
                openoffice|debian-openoffice)   thislist=debian-openoffice ;;
 
254
                parisc|debian-parisc)   thislist=debian-parisc ;;
 
255
                perl|debian-perl)       thislist=debian-perl ;;
 
256
                photo|debian-photo)     thislist=debian-photo ;;
 
257
                pilot|debian-pilot)     thislist=debian-pilot ;;
 
258
                policy|debian-policy)   thislist=debian-policy ;;
 
259
                pool|debian-pool)       thislist=debian-pool ;;
 
260
                powerpc|debian-powerpc) thislist=debian-powerpc ;;
 
261
                printing|debian-printing)       thislist=debian-printing ;;
 
262
                project|debian-project) thislist=debian-project ;;
 
263
                publicity|debian-publicity)     thislist=debian-publicity ;;
 
264
                python|debian-python)   thislist=debian-python ;;
 
265
                qa|debian-qa)   thislist=debian-qa ;;
 
266
                qa-packages|debian-qa-packages) thislist=debian-qa-packages ;;
 
267
                qa-private|debian-qa-private)   thislist=debian-qa-private ;;
 
268
                qt-kde|debian-qt-kde)   thislist=debian-qt-kde ;;
 
269
                release|debian-release) thislist=debian-release ;;
 
270
                ruby|debian-ruby)       thislist=debian-ruby ;;
 
271
                russian|debian-russian) thislist=debian-russian ;;
 
272
                s390|debian-s390)       thislist=debian-s390 ;;
 
273
                s390-changes|debian-s390-changes)       thislist=debian-s390-changes ;;
 
274
                science|debian-science) thislist=debian-science ;;
 
275
                security|debian-security)       thislist=debian-security ;;
 
276
                security-announce|debian-security-announce)     thislist=debian-security-announce ;;
 
277
                security-tracker|debian-security-tracker)       thislist=debian-security-tracker ;;
 
278
                sgml|debian-sgml)       thislist=debian-sgml ;;
 
279
                simplified-chinese|debian-simplified-chinese)   thislist=debian-simplified-chinese ;;
 
280
                snapshots|debian-snapshots)     thislist=debian-snapshots ;;
 
281
                sparc|debian-sparc)     thislist=debian-sparc ;;
 
282
                sparc-changes|debian-sparc-changes)     thislist=debian-sparc-changes ;;
 
283
                ssh|debian-ssh) thislist=debian-ssh ;;
 
284
                superh|debian-superh)   thislist=debian-superh ;;
 
285
                testing|debian-testing) thislist=debian-testing ;;
 
286
                testing-changes|debian-testing-changes) thislist=debian-testing-changes ;;
 
287
                tetex-maint|debian-tetex-maint) thislist=debian-tetex-maint ;;
 
288
                tex-maint|debian-tex-maint)     thislist=debian-tex-maint ;;
 
289
                toolchain|debian-toolchain)     thislist=debian-toolchain ;;
 
290
                ultralinux|debian-ultralinux)   thislist=debian-ultralinux ;;
 
291
                user|debian-user)       thislist=debian-user ;;
 
292
                user-catalan|debian-user-catalan)       thislist=debian-user-catalan ;;
 
293
                user-danish|debian-user-danish) thislist=debian-user-danish ;;
 
294
                user-de|debian-user-de) thislist=debian-user-de ;;
 
295
                user-french|debian-user-french) thislist=debian-user-french ;;
 
296
                user-german|debian-user-german) thislist=debian-user-german ;;
 
297
                user-icelandic|debian-user-icelandic)   thislist=debian-user-icelandic ;;
 
298
                user-indonesian|debian-user-indonesian) thislist=debian-user-indonesian ;;
 
299
                user-polish|debian-user-polish) thislist=debian-user-polish ;;
 
300
                user-portuguese|debian-user-portuguese) thislist=debian-user-portuguese ;;
 
301
                user-spanish|debian-user-spanish)       thislist=debian-user-spanish ;;
 
302
                user-swedish|debian-user-swedish)       thislist=debian-user-swedish ;;
 
303
                user-turkish|debian-user-turkish)       thislist=debian-user-turkish ;;
 
304
                user-ukrainian|debian-user-ukrainian)   thislist=debian-user-ukrainian ;;
 
305
                user-vietnamese|debian-user-vietnamese) thislist=debian-user-vietnamese ;;
 
306
                volatile|debian-volatile)       thislist=debian-volatile ;;
 
307
                volatile-announce|debian-volatile-announce)     thislist=debian-volatile-announce ;;
 
308
                vote|debian-vote)       thislist=debian-vote ;;
 
309
                webapps|debian-webapps) thislist=debian-webapps ;;
 
310
                win32|debian-win32)     thislist=debian-win32 ;;
 
311
                wnpp|debian-wnpp)       thislist=debian-wnpp ;;
 
312
                women|debian-women)     thislist=debian-women ;;
 
313
                www|debian-www) thislist=debian-www ;;
 
314
                x|debian-x)     thislist=debian-x ;;
 
315
                deity|debian-deity)     thislist=deity ;;
 
316
 
 
317
                *) err "Unknown list: $list"
 
318
            esac
 
319
            lists="$lists&list=$thislist"
 
320
    done
 
321
    fi
 
322
    url="${url}${lists}"
 
323
 
 
324
    case "$SURFRAW_deblists_sort" in
 
325
        rel*) SURFRAW_deblists_sort="relevance" ;;
 
326
        rev*) SURFRAW_deblists_sort="revdate"   ;;
 
327
        d*)   SURFRAW_deblists_sort="date"      ;;
 
328
        *)    err "Unknown sort method: $SURFRAW_deblists_sort"
 
329
    esac
 
330
    url="$url&sort=${SURFRAW_deblists_sort}"
 
331
 
 
332
    if [ -n "$SURFRAW_deblists_lang" ]
 
333
    then
 
334
        case "$SURFRAW_deblists_lang" in
 
335
            arabic)             SURFRAW_deblists_lang=ar;;
 
336
            catalan)            SURFRAW_deblists_lang=ca;;
 
337
            chinese)            SURFRAW_deblists_lang=zh;;
 
338
            danish)             SURFRAW_deblists_lang=da;;
 
339
            dutch)              SURFRAW_deblists_lang=nl;;
 
340
            english)            SURFRAW_deblists_lang=en;;
 
341
            esperanto)          SURFRAW_deblists_lang=eo;;
 
342
            finnish)            SURFRAW_deblists_lang=fi;;
 
343
            french)             SURFRAW_deblists_lang=fr;;
 
344
            galician)           SURFRAW_deblists_lang=gl;;
 
345
            german)             SURFRAW_deblists_lang=de;;
 
346
            greek)              SURFRAW_deblists_lang=el;;
 
347
            hungarian)          SURFRAW_deblists_lang=hu;;
 
348
            indonesian)         SURFRAW_deblists_lang=id;;
 
349
            italian)            SURFRAW_deblists_lang=it;;
 
350
            kannada)            SURFRAW_deblists_lang=kn;;
 
351
            malayalam)          SURFRAW_deblists_lang=ml;;
 
352
            persian)            SURFRAW_deblists_lang=fa;;
 
353
            polish)             SURFRAW_deblists_lang=pl;;
 
354
            portuguese)         SURFRAW_deblists_lang=pt;;
 
355
            romanian)           SURFRAW_deblists_lang=ro;;
 
356
            russian)            SURFRAW_deblists_lang=ru;;
 
357
            spanish)            SURFRAW_deblists_lang=es;;
 
358
            swedish)            SURFRAW_deblists_lang=sv;;
 
359
            turkish)            SURFRAW_deblists_lang=tr;;
 
360
            ukrainian)          SURFRAW_deblists_lang=uk;;
 
361
            vietnamese)         SURFRAW_deblists_lang=vi;;
 
362
            # pass through
 
363
            ar|ca|zh|da|nl|\
 
364
            en|eo|fi|fr|gl|\
 
365
            de|el|hu|id|it|\
 
366
            kn|ml|fa|pl|pt|\
 
367
            ro|ru|es|sv|tr|\
 
368
            uk|vi)              ;;
 
369
            # in case SURFRAW_lang value is unsupported
 
370
            *)                  SURFRAW_deblists_lang=en ;;
 
371
        esac
 
372
    fi
 
373
    url="$url&language=${SURFRAW_deblists_lang}"
317
374
 
318
375
    w3_browse_url "$url"
319
376