[Moin-devel] CVS: MoinMoin Page.py,1.109,1.110 wikiaction.py,1.60,1.61 wikimacro.py,1.36,1.37 wikiutil.py,1.91,1.92

J?rgen Hermann jhermann at users.sourceforge.net
Wed Mar 20 15:05:06 EST 2002


Update of /cvsroot/moin/MoinMoin
In directory usw-pr-cvs1:/tmp/cvs-serv6514/MoinMoin

Modified Files:
	Page.py wikiaction.py wikimacro.py wikiutil.py 
Log Message:
Case-sensitive search


Index: Page.py
===================================================================
RCS file: /cvsroot/moin/MoinMoin/Page.py,v
retrieving revision 1.109
retrieving revision 1.110
diff -C2 -r1.109 -r1.110
*** Page.py	18 Mar 2002 22:45:38 -0000	1.109
--- Page.py	20 Mar 2002 23:04:17 -0000	1.110
***************
*** 287,291 ****
                  if config.allow_subpages and string.count(page_needle, '/'):
                      page_needle = '/' + string.split(page_needle, '/')[-1]
!                 link = '%s/%s?action=fullsearch&value=%s&literal=1' % (
                      webapi.getScriptname(),
                      wikiutil.quoteWikiname(self.page_name),
--- 287,291 ----
                  if config.allow_subpages and string.count(page_needle, '/'):
                      page_needle = '/' + string.split(page_needle, '/')[-1]
!                 link = '%s/%s?action=fullsearch&value=%s&literal=1&case=1' % (
                      webapi.getScriptname(),
                      wikiutil.quoteWikiname(self.page_name),

Index: wikiaction.py
===================================================================
RCS file: /cvsroot/moin/MoinMoin/wikiaction.py,v
retrieving revision 1.60
retrieving revision 1.61
diff -C2 -r1.60 -r1.61
*** wikiaction.py	20 Mar 2002 22:40:46 -0000	1.60
--- wikiaction.py	20 Mar 2002 23:04:17 -0000	1.61
***************
*** 44,47 ****
--- 44,51 ----
          needle = ''
      try:
+         case = int(form['case'].value)
+     except (KeyError, ValueError):
+         case = 0
+     try:
          context = int(form['context'].value)
      except (KeyError, ValueError):
***************
*** 55,59 ****
      pagecount, hits = wikiutil.searchPages(needle,
          literal=form.has_key('literal'),
!         context=context)
  
      # print the result
--- 59,63 ----
      pagecount, hits = wikiutil.searchPages(needle,
          literal=form.has_key('literal'),
!         context=context, case=case)
  
      # print the result

Index: wikimacro.py
===================================================================
RCS file: /cvsroot/moin/MoinMoin/wikimacro.py,v
retrieving revision 1.36
retrieving revision 1.37
diff -C2 -r1.36 -r1.37
*** wikimacro.py	20 Mar 2002 22:40:46 -0000	1.36
--- wikimacro.py	20 Mar 2002 23:04:17 -0000	1.37
***************
*** 97,110 ****
          else:
              default = ''
!         context = ''
          if type == "fullsearch":
!             context = '<br><input type="checkbox" name="context" value="40" checked>' + \
!                 _('Display context of search results')
          return self.formatter.rawHTML((
              '<form method="GET">'
              '<input type="hidden" name="action" value="%s">'
!             '<input name="value" size="30" value="%s">'
              '<input type="submit" value="%s">'
!             '%s</form>') % (type, default, _("Go"), context))
  
      def _macro_GoTo(self, args):
--- 97,114 ----
          else:
              default = ''
!         boxes = ''
          if type == "fullsearch":
!             boxes = (
!                   '<br><input type="checkbox" name="context" value="40" checked>'
!                 + _('Display context of search results')
!                 + '<br><input type="checkbox" name="case" value="1">'
!                 + _('Case-sensitive searching')
!             )
          return self.formatter.rawHTML((
              '<form method="GET">'
              '<input type="hidden" name="action" value="%s">'
!             '<input name="value" size="30" value="%s"> '
              '<input type="submit" value="%s">'
!             '%s</form>') % (type, default, _("Go"), boxes))
  
      def _macro_GoTo(self, args):

Index: wikiutil.py
===================================================================
RCS file: /cvsroot/moin/MoinMoin/wikiutil.py,v
retrieving revision 1.91
retrieving revision 1.92
diff -C2 -r1.91 -r1.92
*** wikiutil.py	20 Mar 2002 22:40:46 -0000	1.91
--- wikiutil.py	20 Mar 2002 23:04:17 -0000	1.92
***************
*** 246,251 ****
          third element is None.
  
!         literal = 0: try to treat "needle" as a regex, case-insensitive
!         literal = 1: "needle" is definitely NOT a regex and searched case-sensitive
          context != 0: Provide `context` chars of text on each side of a hit
      """
--- 246,252 ----
          third element is None.
  
!         literal = 0: try to treat "needle" as a regex
!         literal = 1: "needle" is definitely NOT a regex
!         case = 1: case-sensitive search
          context != 0: Provide `context` chars of text on each side of a hit
      """
***************
*** 254,265 ****
      literal = kw.get('literal', 0)
      context = int(kw.get('context', 0))
  
      if literal and context:
!         needle_re = re.compile(re.escape(needle), re.IGNORECASE)
!     elif not literal:
          try:
!             needle_re = re.compile(needle, re.IGNORECASE)
          except re.error:
!             needle_re = re.compile(re.escape(needle), re.IGNORECASE)
  
      hits = []
--- 255,270 ----
      literal = kw.get('literal', 0)
      context = int(kw.get('context', 0))
+     ignorecase = int(kw.get('case', 0)) == 0 and re.IGNORECASE or 0
  
      if literal and context:
!         needle_re = re.compile(re.escape(needle), ignorecase)
!     elif literal:
!         if ignorecase:
!             needle = string.lower(needle)
!     else:
          try:
!             needle_re = re.compile(needle, ignorecase)
          except re.error:
!             needle_re = re.compile(re.escape(needle), ignorecase)
  
      hits = []
***************
*** 283,286 ****
--- 288,293 ----
          else:
              if literal:
+                 if ignorecase:
+                     body = string.lower(body)
                  count = string.count(body, needle)
              else:





More information about the Moin-devel mailing list