@@ -267,6 +267,8 @@ def render(template_name, override_theme=None, **kwargs):
267267
268268 kwargs['method'] = request.cookies.get('method', 'POST')
269269
270+ kwargs['safesearch'] = request.cookies.get('safesearch', '1')
271+
270272 # override url_for function in templates
271273 kwargs['url_for'] = url_for_theme
272274
@@ -455,6 +457,10 @@ def preferences():
455457 Settings that are going to be saved as cookies."""
456458 lang = None
457459 image_proxy = request.cookies.get('image_proxy', settings['server'].get('image_proxy'))
460+ try:
461+ savesearch = int(request.cookies.get('savesearch', 1))
462+ except ValueError:
463+ savesearch = 1
458464
459465 if request.cookies.get('language')\
460466 and request.cookies['language'] in (x[0] for x in language_codes):
@@ -471,6 +477,8 @@ def preferences():
471477 locale = None
472478 autocomplete = ''
473479 method = 'POST'
480+ safesearch = '1'
481+
474482 for pd_name, pd in request.form.items():
475483 if pd_name.startswith('category_'):
476484 category = pd_name[9:]
@@ -489,6 +497,8 @@ def preferences():
489497 lang = pd
490498 elif pd_name == 'method':
491499 method = pd
500+ elif pd_name == 'safesearch':
501+ safesearch = pd
492502 elif pd_name.startswith('engine_'):
493503 if pd_name.find('__') > -1:
494504 engine_name, category = pd_name.replace('engine_', '', 1).split('__', 1)
@@ -529,6 +539,8 @@ def preferences():
529539 )
530540
531541 resp.set_cookie('method', method, max_age=cookie_max_age)
542+
543+ resp.set_cookie('safesearch', safesearch, max_age=cookie_max_age)
532544
533545 resp.set_cookie('image_proxy', image_proxy, max_age=cookie_max_age)
534546