summaryrefslogtreecommitdiff
path: root/src/base/textFile.c
diff options
context:
space:
mode:
authorTomas Chvatal (scarabeus) <tomas.chvatal@gmail.com>2008-10-22 22:51:24 +0200
committerTomas Chvatal (scarabeus) <tomas.chvatal@gmail.com>2008-10-22 22:51:24 +0200
commit44daf03024fbf7cbffa10349044786f6ab784821 (patch)
treefe311eb22e2d853dfc18fde1a9e55d21815f4f82 /src/base/textFile.c
parente12753d2ec9db83ec08bb9db63902a82fb245cdd (diff)
Revert "X"
This reverts commit e12753d2ec9db83ec08bb9db63902a82fb245cdd.
Diffstat (limited to 'src/base/textFile.c')
-rwxr-xr-xsrc/base/textFile.c215
1 files changed, 109 insertions, 106 deletions
diff --git a/src/base/textFile.c b/src/base/textFile.c
index 751ab82..48e5044 100755
--- a/src/base/textFile.c
+++ b/src/base/textFile.c
@@ -9,149 +9,152 @@
#include "main.h"
#include "textFile.h"
-textFile_t *
-newTextFile(char *s)
+textFile_t* newTextFile(char *s)
{
- textFile_t *new;
- char path[STR_PATH_SIZE];
- assert(s != NULL);
-
- if (isFillPath(s)) {
- strcpy(path, s);
- }
- else {
- getcwd(path, STR_PATH_SIZE);
- strcat(path, "/");
- strcat(path, s);
- }
-
- new = malloc(sizeof(textFile_t));
- new->file = strdup(path);
- new->text = newList();
-
- return new;
+ textFile_t *new;
+ char path[STR_PATH_SIZE];
+ assert( s != NULL );
+
+ if( isFillPath(s) )
+ {
+ strcpy(path, s);
+ }
+ else
+ {
+ getcwd(path, STR_PATH_SIZE);
+ strcat(path, "/");
+ strcat(path, s);
+ }
+
+ new = malloc(sizeof(textFile_t));
+ new->file = strdup(path);
+ new->text = newList();
+
+ return new;
}
-static void
-createLine(list_t * list, char *p, int len)
+static void createLine(list_t *list, char *p, int len)
{
- char *line;
- char *begin_line;
- char *end_line;
- int length_line = 0;
+ char *line;
+ char *begin_line;
+ char *end_line;
+ int length_line = 0;
- assert(list != NULL);
- assert(p != NULL);
- assert(len >= 0);
+ assert( list != NULL );
+ assert( p != NULL );
+ assert( len >= 0 );
- begin_line = p;
+ begin_line = p;
+
+ do{
+ end_line = memchr( begin_line, '\n', len);
+ if( end_line == NULL )break;
- do {
- end_line = memchr(begin_line, '\n', len);
- if (end_line == NULL)
- break;
+ length_line = (int ) (end_line - ( begin_line ) );
- length_line = (int) (end_line - (begin_line));
+ line = malloc( (length_line+1) * sizeof(char) );
+ memset(line, 0, (length_line+1) * sizeof(char) );
+ strncpy(line, begin_line, length_line);
- line = malloc((length_line + 1) * sizeof(char));
- memset(line, 0, (length_line + 1) * sizeof(char));
- strncpy(line, begin_line, length_line);
+ addList(list, line);
+ len -= (length_line+1);
- addList(list, line);
- len -= (length_line + 1);
+ begin_line = end_line+1;
- begin_line = end_line + 1;
-
- } while (begin_line != NULL);
+ }while( begin_line != NULL );
}
/*
* Nacita subor *s a vrati ho f
* formatovany v type textFile_t*
*/
-textFile_t *
-loadTextFile(char *s)
+textFile_t* loadTextFile(char *s)
{
- FILE *file;
- textFile_t *ret;
- char *p;
- int file_length = 0;
- struct stat buf;
-
- assert(s != NULL);
-
- if (lstat(s, &buf) < 0) {
- fprintf(stderr, _("ERROR: unable to get file status for %s!\n"), s);
- return NULL;
- }
-
- file_length = buf.st_size;
- if ((file = fopen(s, "rb")) == NULL) {
- fprintf(stderr, _("ERROR: unable to open file %s for reading\n"), s);
- return NULL;
- }
-
- p = malloc(file_length * sizeof(char));
-
- if (fread(p, file_length * sizeof(char), 1, file) != 1) {
- fprintf(stderr, _("ERROR: unable to read data from file %s\n"), s);
- fclose(file);
- return NULL;
- }
-
- fclose(file);
-
- ret = newTextFile(s);
- createLine(ret->text, p, file_length);
-
- free(p);
-
- return ret;
+ FILE *file;
+ textFile_t *ret;
+ char *p;
+ int file_length = 0;
+ struct stat buf;
+
+ assert( s != NULL );
+
+ if( lstat(s, &buf) < 0 )
+ {
+ fprintf(stderr, _("ERROR: unable to get file status for %s!\n"), s);
+ return NULL;
+ }
+
+ file_length = buf.st_size;
+ if( (file = fopen(s, "rb")) == NULL )
+ {
+ fprintf(stderr, _("ERROR: unable to open file %s for reading\n"), s);
+ return NULL;
+ }
+
+ p = malloc(file_length * sizeof(char));
+
+ if( fread(p, file_length * sizeof(char), 1, file) != 1 )
+ {
+ fprintf(stderr, _("ERROR: unable to read data from file %s\n"),s);
+ fclose(file);
+ return NULL;
+ }
+
+ fclose(file);
+
+ ret = newTextFile(s);
+ createLine(ret->text, p, file_length);
+
+ free(p);
+
+ return ret;
}
/*
* Zobrazi text ulozeny v *p
* do stdout
*/
-void
-printTextFile(textFile_t * p)
+void printTextFile(textFile_t *p)
{
- int i;
+ int i;
- assert(p != NULL);
+ assert( p != NULL );
- printf(_("Printing file: \"%s\"\n\n"), p->file);
+ printf(_("Printing file: \"%s\"\n\n"), p->file);
- for (i = 0; i < p->text->count; i++) {
- printf("%3d >> %s\n", i, (char *) p->text->list[i]);
- }
+ for(i = 0; i < p->text->count; i++)
+ {
+ printf("%3d >> %s\n", i, (char *)p->text->list[i]);
+ }
}
-void
-saveTextFile(textFile_t * p)
+void saveTextFile(textFile_t *p)
{
- int i;
- FILE *file;
- assert(p != NULL);
-
- file = fopen(p->file, "wb");
- for (i = 0; i < p->text->count; i++) {
- fprintf(file, "%s\n", (char *) p->text->list[i]);
- }
-
- fclose(file);
+ int i;
+ FILE *file;
+ assert( p != NULL );
+
+ file = fopen(p->file, "wb");
+ for(i = 0; i < p->text->count; i++)
+ {
+ fprintf(file, "%s\n", (char *)p->text->list[i]);
+ }
+
+ fclose(file);
}
/*
* Uvolni text ulozeny v type textFile_t*
* z pamate.
*/
-void
-destroyTextFile(textFile_t * p)
+void destroyTextFile(textFile_t *p)
{
- assert(p != NULL);
+ assert( p != NULL );
- free(p->file);
- destroyListItem(p->text, free);
- free(p);
+ free(p->file);
+ destroyListItem(p->text, free);
+ free(p);
}
+
+
+