comparison mercurial/hgweb/hgweb_mod.py @ 3271:10277edf7e5b

hgweb: fix NWI parsing when hgwebdir isn't at /
author Brendan Cully <brendan@kublai.com>
date Thu, 05 Oct 2006 14:45:15 -0700
parents a7370503d800
children e0cd1b98bf8d
comparison
equal deleted inserted replaced
3270:36fa5db79dd5 3271:10277edf7e5b
651 651
652 def spliturl(req): 652 def spliturl(req):
653 def firstitem(query): 653 def firstitem(query):
654 return query.split('&', 1)[0].split(';', 1)[0] 654 return query.split('&', 1)[0].split(';', 1)[0]
655 655
656 base = '' 656 root = req.env.get('SCRIPT_NAME', '')
657 if req.env.has_key('REPO_NAME'): 657 if req.env.has_key('REPO_NAME'):
658 base = '/' + req.env['REPO_NAME'] 658 base = '/' + req.env['REPO_NAME']
659 elif req.env.get('SCRIPT_NAME'): 659 else:
660 base = req.env['SCRIPT_NAME'] 660 base = root
661 661
662 pi = req.env.get('PATH_INFO') 662 pi = req.env.get('PATH_INFO')
663 if pi: 663 if pi:
664 while pi.startswith('//'): 664 while pi.startswith('//'):
665 pi = pi[1:] 665 pi = pi[1:]
679 query = pi[1:] 679 query = pi[1:]
680 else: 680 else:
681 base += '?' 681 base += '?'
682 query = firstitem(req.env['QUERY_STRING']) 682 query = firstitem(req.env['QUERY_STRING'])
683 683
684 return (base, query) 684 return (root + base, query)
685 685
686 req.url, query = spliturl(req) 686 req.url, query = spliturl(req)
687 687
688 if req.form.has_key('cmd'): 688 if req.form.has_key('cmd'):
689 # old style 689 # old style