diff 3rdparty/packages/ed/find.c @ 994:bef1844de0dc

The ED editor ported from Minix
author roug
date Sun, 23 Feb 2003 21:11:37 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/3rdparty/packages/ed/find.c	Sun Feb 23 21:11:37 2003 +0000
@@ -0,0 +1,33 @@
+/*      find.c  */
+#include <stdio.h>
+#include "tools.h"
+#include "ed.h"
+
+int find(pat, dir)
+TOKEN *pat;
+int dir;
+{
+  int i, num;
+  char lin[MAXLINE];
+  LINE *ptr;
+
+  num = curln;
+  ptr = getptr(curln);
+  num = (dir ? nextln(num) : prevln(num));
+  ptr = (dir ? ptr->l_next : ptr->l_prev);
+  for (i = 0; i < lastln; i++) {
+        if (num == 0) {
+                num = (dir ? nextln(num) : prevln(num));
+                ptr = (dir ? ptr->l_next : ptr->l_prev);
+        }
+        strcpy(lin, ptr->l_buff);
+        strcat(lin, "\n");
+        if (matchs(lin, pat, 0)) {
+                return(num);
+        }
+        num = (dir ? nextln(num) : prevln(num));
+        ptr = (dir ? ptr->l_next : ptr->l_prev);
+  }
+  return(ERR);
+}
+