~fancycade/szc

eaeb02da3e87a452105d85f1bff4a3ec2bf74eae — Harley Swick 2 years ago 47b357a
Querying by 4 digit id

Link uses 4 digits id

Removed get_path

Changed the way zettels are listed, shows 4 digit ids. Changed command prompts
1 files changed, 39 insertions(+), 31 deletions(-)

M src/main.c
M src/main.c => src/main.c +39 -31
@@ 9,16 9,15 @@
#include <pwd.h>
#include <libgen.h>

void read_zettel(char* filename);
void read_zettel(char* path, char* filename);
int read_hub(char* hubpath);
void new_zettel(char* hubpath, char* title);
void new_hub(char* hubpath);
void list_hubs(char* zdir);
void user_interface(void);
int get_path(char* path, char* zettel, char* hub);
int scan_zettel(char* path, char* zettel);
void link_zettel(char* path, char* path2);

int match_id_to_path(char* path, char* id, char* hub);

void
new_zettel(char* hubpath, char* title)


@@ 79,22 78,24 @@ new_hub(char* hubpath)
}

void
read_zettel(char* filename)
read_zettel(char* path, char* filename)
{
        FILE* fp = fopen(filename, "r");
        FILE* fp = fopen(path, "r");
        if (fp == NULL) {
                printf("File not found\n");
                printf("File not found at %s\n", path);
                goto end;
        }

        char buffer[100];
        fgets(buffer, 100, fp);
        printf("%s - %s", filename, buffer);
        filename[4] = '\0'; // Turn filename into id
        printf("ID: %s -- %s", filename, buffer);

end:
        fclose(fp);
}

//Change to list zettels
int
read_hub(char* hubpath)
{


@@ 110,11 111,11 @@ read_hub(char* hubpath)
        while ((de = readdir(dr)) != NULL) {
                if (strcmp(de->d_name, ".") != 0 &&
                    strcmp(de->d_name, "..") != 0) {
                        char abs[100];
                        char abs[300];
                        strcpy(abs, hubpath);
                        strcat(abs, "/");
                        strcat(abs, de->d_name);
                        read_zettel(abs);
                        read_zettel(abs, de->d_name);
                }
        }



@@ 166,26 167,33 @@ end:
}

int
get_path(char* path, char* zettel, char* hub)
match_id_to_path(char* path, char* id, char* hub)
{
        int signal = 1;
        if (strlen(id) != 4)
                return signal;

        struct dirent* de;

        int signal = 1;
        DIR* dr = opendir(hub);

        while((de = readdir(dr)) != NULL) {
                if (strcmp(de->d_name, ".") != 0 &&
                    strcmp(de->d_name, "..") != 0) {
                        char abs[300];
                        sprintf(abs, "%s/%s", hub, de->d_name);
                        int result = scan_zettel(abs, zettel);
                        if (result != 0) {
                                strcpy(path, abs);
                if (strlen(de->d_name) > 4) {
                        int found = 0;
                        for (int i = 0; i < 4; i++) {
                                if (id[i] != de->d_name[i]) {
                                        found = 1;
                                        break;
                                }
                        }
                        if (found == 0) {
                                signal = 0;
                                sprintf(path, "%s/%s", hub, de->d_name);
                                break;
                        }
                }
        }
       

        closedir(dr);
        return signal;
}


@@ 252,15 260,15 @@ user_interface(void)
                        return;
                }
                printf("----\n");
                printf("Enter a zettel by title:\n");
                printf("Enter the zettel id:\n");

                char zettel[100];
                fgets(zettel, 100, stdin);
                char zettel[10];
                fgets(zettel, 10, stdin);
                zettel[strcspn(zettel, "\n")] = '\0';
                printf("\n");

                char path[50];
                if (get_path(path, zettel, hubpath) != 0) {
                if (match_id_to_path(path, zettel, hubpath) != 0) {
                        printf("Unable to find zettel: %s\n", zettel);
                        return;
                }


@@ 350,16 358,16 @@ user_interface(void)
                        return;
                }
                printf("----\n");
                printf("Enter a zettel by title:\n");
                printf("Enter the zettel id:\n");

                char zettel[100];
                fgets(zettel, 100, stdin);
                char zettel[10];
                fgets(zettel, 10, stdin);
                zettel[strcspn(zettel, "\n")] = '\0';
                printf("\n");

                char path[50];
                if (get_path(path, zettel, hubpath) != 0) {
                        printf("Unable to find zettel: %s\n", zettel);
                if (match_id_to_path(path, zettel, hubpath) != 0) {
                        printf("Unable to find zettel: %s at %s\n", zettel, path);
                        return;
                }



@@ 385,13 393,13 @@ user_interface(void)
                printf("----\n");
                printf("Enter a zettel by title:\n");

                char zettel2[100];
                fgets(zettel2, 100, stdin);
                char zettel2[10];
                fgets(zettel2, 10, stdin);
                zettel2[strcspn(zettel2, "\n")] = '\0';
                printf("\n");

                char path2[50];
                if (get_path(path2, zettel2, hubpath2) != 0) {
                if (match_id_to_path(path2, zettel2, hubpath2) != 0) {
                        printf("Unable to find zettel: %s\n", zettel2);
                        return;
                }