home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 2 / 2767 < prev    next >
Internet Message Format  |  1991-02-15  |  3KB

  1. From: skrenta@blekko.commodore.com (Rich Skrenta)
  2. Newsgroups: alt.sources
  3. Subject: Patch to let Tass use re_comp() & re_exec() on BSD systems
  4. Message-ID: <147@blekko.commodore.com>
  5. Date: 15 Feb 91 16:08:11 GMT
  6.  
  7. This patch will let Tass use re_comp() and re_exec() instead of
  8. regex() and regcmp() if BSD is defined.
  9.  
  10. *** group.c-    Sun Feb 10 05:56:34 1991
  11. --- group.c    Fri Feb 15 11:01:13 1991
  12. ***************
  13. *** 528,537 ****
  14.   {
  15.       char buf[LEN+1];
  16.       int i;
  17.       extern char *regcmp();
  18.       extern char *regex();
  19. !     char *re;
  20. !     char *prompt;
  21.   
  22.       clear_message();
  23.   
  24. --- 528,541 ----
  25.   {
  26.       char buf[LEN+1];
  27.       int i;
  28. +     char *prompt;
  29. + #ifdef BSD
  30. +     extern char *re_comp();
  31. + #else
  32. +     char *re;
  33.       extern char *regcmp();
  34.       extern char *regex();
  35. ! #endif
  36.   
  37.       clear_message();
  38.   
  39. ***************
  40. *** 554,563 ****
  41. --- 558,574 ----
  42.   
  43.       glob_name(subject_search_string, buf);
  44.   
  45. + #ifdef BSD
  46. +     if (re_comp(buf) != NULL) {
  47. +         info_message("Bad search pattern");
  48. +         return;
  49. +     }
  50. + #else
  51.       if ((re = regcmp(buf, NULL)) == NULL) {
  52.           info_message("Bad search pattern");
  53.           return;
  54.       }
  55. + #endif
  56.   
  57.       do {
  58.           if (forward)
  59. ***************
  60. *** 570,576 ****
  61. --- 581,591 ----
  62.           if (i < 0)
  63.               i = top_base - 1;
  64.   
  65. + #ifdef BSD
  66. +         if (re_exec(arts[ base[i] ].subject) == 1) {
  67. + #else
  68.           if (regex(re, arts[ base[i] ].subject) != NULL) {
  69. + #endif
  70.               if (i >= first_subj_on_screen
  71.               &&  i < last_subj_on_screen) {
  72.                   erase_subject_arrow();
  73. ***************
  74. *** 580,590 ****
  75. --- 595,612 ----
  76.                   index_point = i;
  77.                   show_group_page(group);
  78.               }
  79. + #ifndef BSD
  80. +             free(re);
  81. + #endif
  82.               return;
  83.           }
  84.       } while (i != index_point);
  85.   
  86.       info_message("No match");
  87. + #ifndef BSD
  88. +     free(re);
  89. + #endif
  90.   }
  91.   
  92.   
  93. *** select.c-    Fri Feb  8 16:29:27 1991
  94. --- select.c    Fri Feb 15 11:01:46 1991
  95. ***************
  96. *** 421,430 ****
  97.   {
  98.       char buf[LEN+1];
  99.       int i;
  100.       extern char *regcmp();
  101.       extern char *regex();
  102.       char *re;
  103. !     char *prompt;
  104.   
  105.       clear_message();
  106.   
  107. --- 421,434 ----
  108.   {
  109.       char buf[LEN+1];
  110.       int i;
  111. +     char *prompt;
  112. + #ifdef BSD
  113. +     extern char *re_comp();
  114. + #else
  115.       extern char *regcmp();
  116.       extern char *regex();
  117.       char *re;
  118. ! #endif
  119.   
  120.       clear_message();
  121.   
  122. ***************
  123. *** 447,456 ****
  124. --- 451,467 ----
  125.   
  126.       glob_name(group_search_string, buf);
  127.   
  128. + #ifdef BSD
  129. +     if (re_comp(buf) != NULL) {
  130. +         info_message("Bad search pattern");
  131. +         return;
  132. +     }
  133. + #else
  134.       if ((re = regcmp(buf, NULL)) == NULL) {
  135.           info_message("Bad search pattern");
  136.           return;
  137.       }
  138. + #endif
  139.   
  140.       do {
  141.           if (forward)
  142. ***************
  143. *** 463,469 ****
  144. --- 474,484 ----
  145.           if (i < 0)
  146.               i = local_top - 1;
  147.   
  148. + #ifdef BSD
  149. +         if (re_exec(active[my_group[i]].name) == 1) {
  150. + #else
  151.           if (regex(re, active[my_group[i]].name) != NULL) {
  152. + #endif
  153.               if (i >= first_group_on_screen
  154.               &&  i < last_group_on_screen) {
  155.                   erase_group_arrow();
  156. ***************
  157. *** 473,483 ****
  158. --- 488,505 ----
  159.                   cur_groupnum = i;
  160.                   group_selection_page();
  161.               }
  162. + #ifndef BSD
  163. +             free(re);
  164. + #endif
  165.               return;
  166.           }
  167.       } while (i != cur_groupnum);
  168.   
  169.       info_message("No match");
  170. + #ifndef BSD
  171. +     free(re);
  172. + #endif
  173.   }
  174.   
  175.   
  176. -- 
  177. skrenta@blekko.commodore.com
  178.