summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile17
-rw-r--r--README.md17
-rw-r--r--src/main/main.c14
-rw-r--r--src/main/version.h6
4 files changed, 41 insertions, 13 deletions
diff --git a/Makefile b/Makefile
index 82ef47b..ecbccf4 100644
--- a/Makefile
+++ b/Makefile
@@ -29,12 +29,13 @@ TEST_SOURCES = test/assert.c test/buffer.c test/text.c test/utf8.c test/main.c \
test/minibuffer.c test/undo.c test/settings.c test/container.c
prefix ?= /usr/local
-datadir = $(prefix)/share/dged
+DESTDIR ?= $(prefix)
+datadir = share/dged
.SUFFIXES:
.SUFFIXES: .c .o .d
-CFLAGS += -Werror -g -O2 -std=c99 -I $(.CURDIR)/src -I $(.CURDIR)/src/main -DDATADIR="$(datadir)"
+CFLAGS += -Werror -g -O2 -std=c99 -I $(.CURDIR)/src -I $(.CURDIR)/src/main -DDATADIR="$(prefix)/$(datadir)"
ASAN ?= false
@@ -121,14 +122,14 @@ clean:
rm -rf $(.OBJDIR)/grammars
install: dged
- install -d $(prefix)/bin
- install -m 755 $(.OBJDIR)/dged $(prefix)/bin/dged
+ install -d $(DESTDIR)/bin
+ install -m 755 $(.OBJDIR)/dged $(DESTDIR)/bin/dged
- install -d $(prefix)/share/man/man1
- install -m 644 $(.CURDIR)/dged.1 $(prefix)/share/man/man1/dged.1
+ install -d $(DESTDIR)/share/man/man1
+ install -m 644 $(.CURDIR)/dged.1 $(DESTDIR)/share/man/man1/dged.1
- install -d $(datadir)/grammars
- cp -rL $(.OBJDIR)/grammars "$(datadir)/"
+ install -d $(DESTDIR)/$(datadir)/grammars
+ cp -rL $(.OBJDIR)/grammars "$(DESTDIR)/$(datadir)/"
docs:
doxygen $(.CURDIR)/Doxyfile
diff --git a/README.md b/README.md
index 56d45a9..0f5a48e 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,10 @@ GNU Emacs and only implement the things I need to be productive.
The editor was created as a learning exercise and to create something that I
can use as a daily driver. If anyone else happens to find it useful I will
-be flattered and suprised.
+be very flattered and surprised.
+
+DGED is in early development so bugs and breaking changes are to be
+expected pre-1.0.0.
## Features
@@ -17,6 +20,7 @@ be flattered and suprised.
- [x] Absolutely no plugin system
- [x] Terminal only
- [x] Mouse-free editing
+- [x] Naive and incorrect unicode handling
- [ ] LSP Client implementation
## Contributing
@@ -25,7 +29,7 @@ Contributions are of course welcome. Please open a PR on the Github repository.
## Development Setup
-The editor is built using BSD make so that needs to be installed.
+The editor is built using BSD make (specifically bmake) so that needs to be installed.
To enable syntax highlighting (default) you will also need the tree-sitter library
installed.
@@ -36,6 +40,7 @@ needed dependencies, issue:
```
$ nix develop
```
+
Currently, tree-sitter grammars can only be automatically fetched when using the Nix setup.
To build the editor, first create the build folder
@@ -44,6 +49,12 @@ To build the editor, first create the build folder
$ mkdir -p build
```
+or
+
+```
+$ mkdir -p obj
+```
+
Then call make
```
@@ -72,7 +83,7 @@ followed by
# make install
```
-Optionally, you can set `prefix` to a value of your liking.
+Optionally, you can set `prefix` (and `DESTDIR`) to a value of your liking.
## Documentation
diff --git a/src/main/main.c b/src/main/main.c
index a020b9f..b0e408d 100644
--- a/src/main/main.c
+++ b/src/main/main.c
@@ -31,6 +31,7 @@
#include "bindings.h"
#include "cmds.h"
#include "completion.h"
+#include "version.h"
static struct frame_allocator frame_allocator;
@@ -121,16 +122,21 @@ void update_file_watches(struct reactor *reactor) {
}
}
-void usage() {
+static void usage() {
printf("dged - a text editor for datagubbar/datagummor!\n");
printf("usage: dged [-l/--line line_number] [-e/--end] [-h/--help] "
"[filename]\n");
}
+static void version() {
+ printf("dged - %s\n© Albert Cervin 2024\n", DGED_VERSION);
+}
+
int main(int argc, char *argv[]) {
static struct option longopts[] = {{"line", required_argument, NULL, 'l'},
{"end", no_argument, NULL, 'e'},
+ {"version", no_argument, NULL, 'V'},
{"help", no_argument, NULL, 'h'},
{NULL, 0, NULL, 0}};
@@ -138,8 +144,12 @@ int main(int argc, char *argv[]) {
uint32_t jumpline = 1;
bool goto_end = false;
char ch;
- while ((ch = getopt_long(argc, argv, "hel:", longopts, NULL)) != -1) {
+ while ((ch = getopt_long(argc, argv, "Vhel:", longopts, NULL)) != -1) {
switch (ch) {
+ case 'V':
+ version();
+ return 0;
+ break;
case 'l':
jumpline = atoi(optarg);
break;
diff --git a/src/main/version.h b/src/main/version.h
new file mode 100644
index 0000000..cf77ce8
--- /dev/null
+++ b/src/main/version.h
@@ -0,0 +1,6 @@
+#ifndef _VERSION_H
+#define _VERSION_H
+
+#define DGED_VERSION "dev"
+
+#endif