]> git.xolatile.top Git - soikk-DB.git/commitdiff
Got rid of old functionalities (strnatcmp, BM).
authorSoikk <76824648+Soikk@users.noreply.github.com>
Sat, 13 Aug 2022 17:12:50 +0000 (19:12 +0200)
committerSoikk <76824648+Soikk@users.noreply.github.com>
Sat, 13 Aug 2022 17:12:50 +0000 (19:12 +0200)
CHANGELOG
TODO
include/bm.h [deleted file]
include/strnatcmp.h [deleted file]
src/bm.c [deleted file]
src/strnatcmp.c [deleted file]

index cd272516f2a0cbf9ecf79093ada153725cb0be1a..282c47afc2054092c827017b0977df0fc78f40ba 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,7 @@
+1660410686 (Sat Aug 13 2022 19:11:26 GMT+0200 (Central European Summer Time))
+Got rid of old functionalities (strnatcmp, BM).
+
+
 1660409336 (Sat Aug 13 2022 18:48:56 GMT+0200 (Central European Summer Time))
 Added primitive repl, delete functions for database and remove tag from file function.
 
diff --git a/TODO b/TODO
index 404586a492e80d0dec02cb8098f84e580472a75b..f97362dc217797a4d69a1910c1cc0a3c08f08653 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,8 +1,8 @@
 TODO   Show files with multiple tags & viceversa
 
-TODO   Get rid of old functionalities (strnatcmp, BM)
-
 ----------------------------------------------------------------
+DONE   Get rid of old functionalities (strnatcmp, BM)
+
 DONE   Add remove tag from file function
 
 DONE   Add delete functions
diff --git a/include/bm.h b/include/bm.h
deleted file mode 100644 (file)
index 80ddee8..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef BM_H
-#define BM_H
-
-#include "db.h"
-
-
-ssize_t BM(char *x, int m, char *y, int n);
-
-#endif
\ No newline at end of file
diff --git a/include/strnatcmp.h b/include/strnatcmp.h
deleted file mode 100644 (file)
index 9d98198..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- mode: c; c-file-style: "k&r" -*-
-
-  strnatcmp.c -- Perform 'natural order' comparisons of strings in C.
-  Copyright (C) 2000, 2004 by Martin Pool <mbp sourcefrog net>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-
-
-/* CUSTOMIZATION SECTION
- *
- * You can change this typedef, but must then also change the inline
- * functions in strnatcmp.c */
-typedef char nat_char;
-
-int strnatcmp(nat_char const *a, nat_char const *b);
-int strnatcasecmp(nat_char const *a, nat_char const *b);
\ No newline at end of file
diff --git a/src/bm.c b/src/bm.c
deleted file mode 100644 (file)
index d2afb0a..0000000
--- a/src/bm.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "db.h"
-
-/*
-       Implementation of the tuned Boyer-Moore string search algorithm,
-       as defined here:
-               http://www-igm.univ-mlv.fr/~lecroq/string/tunedbm.html#SECTION00195
-       and here:
-               http://www-igm.univ-mlv.fr/~lecroq/string/node14.html#SECTION00140
-*/
-
-#define ASIZE 128 // alphabet size, need to include most ascii characters
-
-static void preBmBc(char *x, int m, int bmBc[]){
-       for(int i = 0; i < ASIZE; ++i)
-               bmBc[i] = m;
-       for(int i = 0; i < m - 1; ++i)
-               bmBc[x[i]] = m - i - 1;
-}
-
-// x is the needle, y is the haystack
-// Should be called TUNEDBM, called BM for simplicity
-ssize_t BM(char *x, int m, char *y, int n){
-       int j, k, shift, bmBc[ASIZE];
-
-       /* Preprocessing */
-       preBmBc(x, m, bmBc);
-       shift = bmBc[x[m-1]];
-       bmBc[x[m-1]] = 0;
-
-       /* Searching */
-       j = 0;
-       while(j < n){
-               k = bmBc[y[j + m -1]];
-               while(k != 0){
-                       j += k; k = bmBc[y[j + m - 1]];
-                       j += k; k = bmBc[y[j + m - 1]];
-                       j += k; k = bmBc[y[j + m - 1]];
-               }
-               if(memcmp(x, y + j, m) == 0 && j < n)
-                       return j;
-               j += shift;                          /* shift */
-       }
-       return -1;
-}
diff --git a/src/strnatcmp.c b/src/strnatcmp.c
deleted file mode 100644 (file)
index 46b7946..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-/* -*- mode: c; c-file-style: "k&r" -*-
-
-  strnatcmp.c -- Perform 'natural order' comparisons of strings in C.
-  Copyright (C) 2000, 2004 by Martin Pool <mbp sourcefrog net>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-
-
-/* partial change history:
- *
- * 2004-10-10 mbp: Lift out character type dependencies into macros.
- *
- * Eric Sosman pointed out that ctype functions take a parameter whose
- * value must be that of an unsigned int, even on platforms that have
- * negative chars in their default char type.
- */
-
-#include <ctype.h>
-#include <string.h>
-#include <assert.h>
-#include <stdio.h>
-
-#include "strnatcmp.h"
-
-
-/* These are defined as macros to make it easier to adapt this code to
- * different characters types or comparison functions. */
-static inline int
-nat_isdigit(nat_char a)
-{
-     return isdigit((unsigned char) a);
-}
-
-
-static inline int
-nat_isspace(nat_char a)
-{
-     return isspace((unsigned char) a);
-}
-
-
-static inline nat_char
-nat_toupper(nat_char a)
-{
-     return toupper((unsigned char) a);
-}
-
-
-
-static int
-compare_right(nat_char const *a, nat_char const *b)
-{
-     int bias = 0;
-     
-     /* The longest run of digits wins.  That aside, the greatest
-       value wins, but we can't know that it will until we've scanned
-       both numbers to know that they have the same magnitude, so we
-       remember it in BIAS. */
-     for (;; a++, b++) {
-         if (!nat_isdigit(*a)  &&  !nat_isdigit(*b))
-              return bias;
-         else if (!nat_isdigit(*a))
-              return -1;
-         else if (!nat_isdigit(*b))
-              return +1;
-         else if (*a < *b) {
-              if (!bias)
-                   bias = -1;
-         } else if (*a > *b) {
-              if (!bias)
-                   bias = +1;
-         } else if (!*a  &&  !*b)
-              return bias;
-     }
-
-     return 0;
-}
-
-
-static int
-compare_left(nat_char const *a, nat_char const *b)
-{
-     /* Compare two left-aligned numbers: the first to have a
-        different value wins. */
-     for (;; a++, b++) {
-         if (!nat_isdigit(*a)  &&  !nat_isdigit(*b))
-              return 0;
-         else if (!nat_isdigit(*a))
-              return -1;
-         else if (!nat_isdigit(*b))
-              return +1;
-         else if (*a < *b)
-              return -1;
-         else if (*a > *b)
-              return +1;
-     }
-         
-     return 0;
-}
-
-
-static int strnatcmp0(nat_char const *a, nat_char const *b, int fold_case)
-{
-     int ai, bi;
-     nat_char ca, cb;
-     int fractional, result;
-     
-     assert(a && b);
-     ai = bi = 0;
-     while (1) {
-         ca = a[ai]; cb = b[bi];
-
-         /* skip over leading spaces or zeros */
-         while (nat_isspace(ca))
-              ca = a[++ai];
-
-         while (nat_isspace(cb))
-              cb = b[++bi];
-
-         /* process run of digits */
-         if (nat_isdigit(ca)  &&  nat_isdigit(cb)) {
-               /*
-                       Modified by Soikk for the purpose of DB
-                       To revert to original version, remove this comment,
-                       the uncommented code inside this if statement and
-                       uncomment the remaining piece of code inside this
-                       if statement
-               */
-                  if ((result = compare_right(a+ai, b+bi)) != 0)
-                   return result;
-              /*fractional = (ca == '0' || cb == '0');
-
-              if (fractional) {
-                   if ((result = compare_left(a+ai, b+bi)) != 0)
-                        return result;
-              } else {
-                   if ((result = compare_right(a+ai, b+bi)) != 0)
-                        return result;
-              }*/
-         }
-
-         if (!ca && !cb) {
-              /* The strings compare the same.  Perhaps the caller
-                  will want to call strcmp to break the tie. */
-              return 0;
-         }
-
-         if (fold_case) {
-              ca = nat_toupper(ca);
-              cb = nat_toupper(cb);
-         }
-         
-         if (ca < cb)
-              return -1;
-         else if (ca > cb)
-              return +1;
-
-         ++ai; ++bi;
-     }
-}
-
-
-
-int strnatcmp(nat_char const *a, nat_char const *b) {
-     return strnatcmp0(a, b, 0);
-}
-
-
-/* Compare, recognizing numeric string and ignoring case. */
-int strnatcasecmp(nat_char const *a, nat_char const *b) {
-     return strnatcmp0(a, b, 1);
-}
\ No newline at end of file