diff options
author | Evan M Jones | 2019-05-14 01:59:56 +0000 |
---|---|---|
committer | Evan M Jones | 2019-05-14 01:59:56 +0000 |
commit | 264520f5ddf0605f0f57ee3bce77f43c04f0d8b1 (patch) | |
tree | abf3979cfb9a3efdd86c4114fa92782b5fbe3640 | |
download | aur-dlof.tar.gz |
Feat(*): Project init, AUR release.
-rw-r--r-- | .SRCINFO | 17 | ||||
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | PKGBUILD | 27 | ||||
-rw-r--r-- | license.txt | 21 | ||||
-rw-r--r-- | main.c | 79 | ||||
-rw-r--r-- | makefile | 11 | ||||
-rw-r--r-- | readme.txt | 30 |
7 files changed, 187 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..19dd3afead51 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,17 @@ +pkgbase = dlof + pkgdesc = A dead simple unfolder -- opposite of fold. + pkgver = 1 + pkgrel = 1 + epoch = 1 + url = https://github.com/mini-eggs/dlof + arch = any + license = MIT + makedepends = git + makedepends = gcc + provides = dlof + conflicts = dlof + source = git+https://github.com/mini-eggs/dlof.git + md5sums = SKIP + +pkgname = dlof + diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..f9d3a46b2e1a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +test.txt +unfold diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..e75b4774f723 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,27 @@ +# Maintainer: Evan M Jones <evanjones4040@gmail.com> +pkgname=dlof +pkgver=1 +pkgrel=1 +epoch=1 +pkgdesc="A dead simple unfolder -- opposite of fold." +arch=('any') +url="https://github.com/mini-eggs/${pkgname}" +license=('MIT') +provides=($pkgname) +conflicts=($pkgname) +makedepends=('git' 'gcc') +source=("git+https://github.com/mini-eggs/dlof.git") +md5sums=('SKIP') + +pkgver() { + cd $pkgname + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +package() { + cd $pkgname + make + install -D -m644 license.txt "$pkgdir/usr/share/licenses/dlof/LICENSE" + install -D -m755 dlof "$pkgdir/usr/bin/$pkgname" +} + diff --git a/license.txt b/license.txt new file mode 100644 index 000000000000..1d24922fec41 --- /dev/null +++ b/license.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2019-present Evan M Jones + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/main.c b/main.c new file mode 100644 index 000000000000..3eb15d4fb618 --- /dev/null +++ b/main.c @@ -0,0 +1,79 @@ +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> + +void step(char last, char curr) +{ + char tmp; + + if(curr == '\n') + { + /* check if the next char is a line spaces as well, + if so don't do a damn thing! */ + + tmp = getchar(); + + if(tmp == EOF) + { + /* kind of whacky, lets just output the newline and exit I suppose. */ + putchar(curr); + putchar(tmp); + return; + } + else if (tmp == '\n') + { + /* okay cool, just leave alone! */ + /* can prob combine w/ func above */ + putchar(curr); + putchar(tmp); + return; + } + else + { + /* business as normal, here we don't want to put out the newline but we + also really don't want to put out two whitespace characters right + next to each other. Reverse and make sure we're not! */ + + /* set last, then check if last and tmp are both spaces, if so only + write one! */ + + /* Well, fuck. We cannot seek on standard input */ + + if(last == ' ' && tmp == ' ') + { + /* no op */ + } + else if(last != ' ' && tmp != ' ') + { + putchar(' '); + putchar(tmp); + } + else + { + putchar(tmp); + } + } + } + else + { + putchar(curr); + } +} + +int main(void) +{ + char last, curr; + + last = '\0'; + curr = getchar(); + + while(curr != EOF) + { + step(last, curr); + + last = curr; + curr = getchar(); + } + + return 0; +} diff --git a/makefile b/makefile new file mode 100644 index 000000000000..5bd27b4b81aa --- /dev/null +++ b/makefile @@ -0,0 +1,11 @@ +CC=gcc +OPTS=-Wall -Wextra -pedantic -std=gnu89 -Ofast +OUT=dlof +IN=main.c + +all: $(IN) + $(CC) $(OPTS) $(IN) -o $(OUT) + +clean: + rm $(OUT) + diff --git a/readme.txt b/readme.txt new file mode 100644 index 000000000000..3c1ca3221049 --- /dev/null +++ b/readme.txt @@ -0,0 +1,30 @@ + _ _ __ + __| | | ___ / _| + / _` | |/ _ \| |_ +| (_| | | (_) | _| + \__,_|_|\___/|_| + + _ _ _ _ __ +| |_| |__ ___ ___ _ __ _ __ ___ ___(_) |_ ___ ___ / _| +| __| '_ \ / _ \ / _ \| '_ \| '_ \ / _ \/ __| | __/ _ \ / _ \| |_ +| |_| | | | __/ | (_) | |_) | |_) | (_) \__ \ | || __/ | (_) | _| + \__|_| |_|\___| \___/| .__/| .__/ \___/|___/_|\__\___| \___/|_| + |_| |_| + __ _ _ + / _| ___ | | __| | +| |_ / _ \| |/ _` | +| _| (_) | | (_| |_ +|_| \___/|_|\__,_(_) + +Unfold a folded file. + +Usage: + +$ cat hi.txt | dlof + +Given the file "hi.txt" is wrapped it will print out the unwrapped versino to +standard out. + +MIT licensed. + + |