Compare commits

..

No commits in common. "ec3fc81544008de4efe7189b297e204bb7d53b38" and "5a0ce6d53cccb8c4963cf6e71875df9cf6f59bb4" have entirely different histories.

4 changed files with 2 additions and 58 deletions

View file

@ -1,4 +1,4 @@
.PHONY: all .PHONY: all clean
all: out out/sh all: out out/sh

View file

@ -1,29 +1,15 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h>
#include "reader.h"
int main() { int main() {
/*
size_t buffer_size; size_t buffer_size;
size_t initial_buffer_size = 64; size_t initial_buffer_size = 64;
char *input_buffer; char *input_buffer;
char *initial_buffer_position; char *initial_buffer_position;
unsigned int how_many_characters_to_read; unsigned int how_many_characters_to_read;
*/
char *input_line;
while (1) { while (1) {
printf("$ ");
input_line = read_a_line(stdin);
if (input_line == NULL) {
return 0;
}
printf("command: '%s'\n", input_line);
free(input_line);
/*
buffer_size = initial_buffer_size; buffer_size = initial_buffer_size;
how_many_characters_to_read = buffer_size + 1; how_many_characters_to_read = buffer_size + 1;
input_buffer = malloc(how_many_characters_to_read); input_buffer = malloc(how_many_characters_to_read);
@ -46,6 +32,5 @@ int main() {
printf("%s", input_buffer); printf("%s", input_buffer);
free(input_buffer); free(input_buffer);
*/
} }
} }

View file

@ -1,33 +0,0 @@
#include "reader.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *read_a_line(FILE *file_to_read) {
size_t initial_buffer_size = 64;
size_t buffer_size = initial_buffer_size;
unsigned int how_many_characters_to_read = buffer_size + 1;
char *input_buffer = malloc(how_many_characters_to_read);
char *initial_buffer_position = input_buffer;
while (fgets(input_buffer, how_many_characters_to_read, file_to_read) !=
NULL &&
input_buffer[strlen(input_buffer) - 1] != '\n') {
size_t new_buffer_size = buffer_size * 2;
if (buffer_size != initial_buffer_size) {
how_many_characters_to_read = buffer_size + 1;
}
input_buffer = realloc(initial_buffer_position, new_buffer_size + 1);
initial_buffer_position = input_buffer;
input_buffer += buffer_size;
buffer_size = new_buffer_size;
}
input_buffer = initial_buffer_position;
if (!feof(file_to_read)) {
return input_buffer;
} else {
return NULL;
}
}

View file

@ -1,8 +0,0 @@
#ifndef READER_H
#define READER_H
#include <stdio.h>
char *read_a_line(FILE *file_to_read);
#endif /* READER_H */