Use guile-snarf
Because it looks cooler. This way its easy to keep all the information about the function in one place, and it makes it easier/more interesting to add new functions later.
This commit is contained in:
parent
f7016aea18
commit
2f0fd8d03e
3 changed files with 12 additions and 6 deletions
1
src/.gitignore
vendored
1
src/.gitignore
vendored
|
@ -1,2 +1,3 @@
|
|||
*.o
|
||||
*.so
|
||||
*.x
|
||||
|
|
|
@ -8,6 +8,10 @@ all: libguile-gitto-path.so
|
|||
|
||||
.PHONY: install uninstall
|
||||
|
||||
%.x: %.c
|
||||
guile-snarf -o $@ $< $(CFLAGS)
|
||||
|
||||
gitto-path.o: gitto-path.x
|
||||
libguile-gitto-path.so: gitto-path.o
|
||||
$(CC) $(CFLAGS) -shared -o libguile-gitto-path.so $^
|
||||
|
||||
|
|
|
@ -20,14 +20,15 @@
|
|||
#include <stdlib.h>
|
||||
#include <libguile.h>
|
||||
|
||||
SCM
|
||||
realpath_wrapper(SCM str)
|
||||
SCM_DEFINE(realpath_wrapper, "realpath", 1, 0, 0,
|
||||
(SCM path),
|
||||
"Transform PATH into an absolute path.")
|
||||
{
|
||||
char *path = scm_to_locale_string(str);
|
||||
char *resolved_path = realpath(path, NULL);
|
||||
char *relative_path = scm_to_locale_string(path);
|
||||
char *resolved_path = realpath(relative_path, NULL);
|
||||
SCM scm_resolved_path = scm_from_locale_string(resolved_path);
|
||||
|
||||
free(path);
|
||||
free(relative_path);
|
||||
free(resolved_path);
|
||||
|
||||
return scm_resolved_path;
|
||||
|
@ -36,5 +37,5 @@ realpath_wrapper(SCM str)
|
|||
void
|
||||
init_gitto()
|
||||
{
|
||||
scm_c_define_gsubr("realpath", 1, 0, 0, realpath_wrapper);
|
||||
#include "gitto-path.x"
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue