summaryrefslogtreecommitdiff
path: root/ed.c
diff options
context:
space:
mode:
authorthing1 <thing1@seacrossedlovers.xyz>2025-02-13 07:04:26 +0000
committerthing1 <thing1@seacrossedlovers.xyz>2025-02-13 07:04:26 +0000
commitd227da1d02fa94b3c0ce8b4844c2790b6084917d (patch)
treeddaf0af8c653327eeb4c695c68ad3998358a5f33 /ed.c
parent3e98690fd3267b61385c1bbce1f8abdc51ae742a (diff)
added some cool featuresHEADmaster
Diffstat (limited to 'ed.c')
-rw-r--r--ed.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/ed.c b/ed.c
index 3035c60..3b1ad8b 100644
--- a/ed.c
+++ b/ed.c
@@ -22,6 +22,7 @@ void eprint(char *str) {
}
void readcmd() {
+ printf("%d > ", lineno);
char c;
while ((c = getchar()) != '\n' && cmdlen <= MAXCMD) {
command[cmdlen] = c;
@@ -97,12 +98,18 @@ void runcmd(char *outpath) {
int n;
if ((n = readnum()) != -1) {
- if (n > linecount) printf("?\n");
+ if (n > linecount) {
+ printf("?\n");
+ goto repeat;
+ }
lineno = n;
- return;
}
- switch (command[0]) {
+ int i = 0;
+repeat:
+ switch (command[i]) {
+ case 0:
+ return;
case 'd':
deleteline(lineno);
break;
@@ -120,6 +127,8 @@ void runcmd(char *outpath) {
case 'q':
exit(1);
}
+ i++;
+ goto repeat;
}
int main(int argc, char **argv) {