comparison mercurial/hgweb/request.py @ 10261:5eae671c0b57 stable

hgweb: request: strip() form values Entering "<correct_cset_hash> " in the search form was not returning anything. This happens relatively often, due to HTML formatting: when copy/pasting a cset hash from the web, selection might contain surrounding spaces.
author Nicolas Dumazet <nicdumz.commits@gmail.com>
date Mon, 28 Dec 2009 12:14:26 +0900
parents 8269fe2d48f6
children 25e572394f5c
comparison
equal deleted inserted replaced
10258:d58d7441b211 10261:5eae671c0b57
23 'tags': [('cmd', ['tags'])], 23 'tags': [('cmd', ['tags'])],
24 'tip': [('cmd', ['changeset']), ('node', ['tip'])], 24 'tip': [('cmd', ['changeset']), ('node', ['tip'])],
25 'static': [('cmd', ['static']), ('file', None)] 25 'static': [('cmd', ['static']), ('file', None)]
26 } 26 }
27 27
28 def expand(form): 28 def normalize(form):
29 # first expand the shortcuts
29 for k in shortcuts.iterkeys(): 30 for k in shortcuts.iterkeys():
30 if k in form: 31 if k in form:
31 for name, value in shortcuts[k]: 32 for name, value in shortcuts[k]:
32 if value is None: 33 if value is None:
33 value = form[k] 34 value = form[k]
34 form[name] = value 35 form[name] = value
35 del form[k] 36 del form[k]
37 # And strip the values
38 for k, v in form.iteritems():
39 form[k] = [i.strip() for i in v]
36 return form 40 return form
37 41
38 class wsgirequest(object): 42 class wsgirequest(object):
39 def __init__(self, wsgienv, start_response): 43 def __init__(self, wsgienv, start_response):
40 version = wsgienv['wsgi.version'] 44 version = wsgienv['wsgi.version']
45 self.err = wsgienv['wsgi.errors'] 49 self.err = wsgienv['wsgi.errors']
46 self.threaded = wsgienv['wsgi.multithread'] 50 self.threaded = wsgienv['wsgi.multithread']
47 self.multiprocess = wsgienv['wsgi.multiprocess'] 51 self.multiprocess = wsgienv['wsgi.multiprocess']
48 self.run_once = wsgienv['wsgi.run_once'] 52 self.run_once = wsgienv['wsgi.run_once']
49 self.env = wsgienv 53 self.env = wsgienv
50 self.form = expand(cgi.parse(self.inp, self.env, keep_blank_values=1)) 54 self.form = normalize(cgi.parse(self.inp,
55 self.env,
56 keep_blank_values=1))
51 self._start_response = start_response 57 self._start_response = start_response
52 self.server_write = None 58 self.server_write = None
53 self.headers = [] 59 self.headers = []
54 60
55 def __iter__(self): 61 def __iter__(self):