aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile6
-rw-r--r--src/lua_interface.c14
-rw-r--r--src/textadept.c9
-rw-r--r--src/textadept.h1
4 files changed, 25 insertions, 5 deletions
diff --git a/src/Makefile b/src/Makefile
index 52fb26fe..d9ede43c 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -2,7 +2,7 @@
.SUFFIXES: .c .o .h .a
-INCLUDEDIRS=-Iscintilla-st/include -Ilua/include
+INCLUDEDIRS=-Iscintilla-st/include -Ilua/include -Igcocoadialog
ifdef DEBUG
CXXFLAGS=-DDEBUG -g -DGTK -DSCI_LEXER -W -Wall -Wno-sign-compare
else
@@ -32,8 +32,10 @@ all: textadept
g++ $(GTKFLAGS) $(INCLUDEDIRS) $(CXXFLAGS) -c $< -o $@
$(LUA_OBJS): lua/src/*.c
gcc $(INCLUDEDIRS) -DLUA_USE_LINUX $(CXXFLAGS) -c lua/src/*.c
+gcocoadialog.o: gcocoadialog/gcocoadialog.c
+ gcc $(GTKFLAGS) $(INCLUDEDIRS) $(CXXFLAGS) -c gcocoadialog/gcocoadialog.c
textadept:\
- textadept.o lua_interface.o $(LUA_OBJS) \
+ textadept.o lua_interface.o $(LUA_OBJS) gcocoadialog.o \
scintilla-st/gtk/LexLPeg.o scintilla-st/bin/scintilla.a
g++ $(GTKLIBS) $(EXPORTLUASYMS) -DGTK $^ -o $@
mv textadept ../
diff --git a/src/lua_interface.c b/src/lua_interface.c
index b8101e20..d48919bb 100644
--- a/src/lua_interface.c
+++ b/src/lua_interface.c
@@ -64,6 +64,7 @@ static int l_cf_buffer_delete(lua_State *lua),
l_cf_view_split(lua_State *lua),
l_cf_view_unsplit(lua_State *lua),
l_cf_ta_buffer_new(lua_State *lua),
+ l_cf_ta_dialog(lua_State *lua),
l_cf_ta_get_split_table(lua_State *lua),
l_cf_ta_goto_window(lua_State *lua),
l_cf_view_goto_buffer(lua_State *lua),
@@ -138,6 +139,7 @@ bool l_init(int argc, char **argv, bool reinit) {
l_cfunc(lua, l_cf_ce_show_completions, "show_completions");
l_mt(lua, "_ce_mt", l_ce_mt_index, l_ce_mt_newindex);
lua_setfield(lua, -2, "command_entry");
+ l_cfunc(lua, l_cf_ta_dialog, "dialog");
l_cfunc(lua, l_cf_ta_get_split_table, "get_split_table");
l_cfunc(lua, l_cf_ta_goto_window, "goto_view");
l_cfunc(lua, l_cf_ta_gtkmenu, "gtkmenu");
@@ -1279,6 +1281,18 @@ static int l_cf_view_goto_buffer(lua_State *lua) {
return 0;
}
+static int l_cf_ta_dialog(lua_State *lua) {
+ enum GCDialogs type = gcocoadialog_type(luaL_checkstring(lua, 1));
+ int argc = lua_gettop(lua) - 1;
+ const char **argv = static_cast<const char**>(malloc(argc * sizeof(char *)));
+ for (int i = 0; i < argc; i++) argv[i] = luaL_checkstring(lua, i + 2);
+ char *out = gcocoadialog(type, argc, argv);
+ lua_pushstring(lua, out);
+ free(out);
+ free(argv);
+ return 1;
+}
+
static int l_cf_ta_goto_window(lua_State *lua) {
return l_cf_ta_goto_(lua, focused_editor, false);
}
diff --git a/src/textadept.c b/src/textadept.c
index cec9cb3c..00ed9a44 100644
--- a/src/textadept.c
+++ b/src/textadept.c
@@ -1,9 +1,12 @@
// Copyright 2007-2009 Mitchell mitchell<att>caladbolg.net. See LICENSE.
#include "textadept.h"
-#if WIN32
-#include <Windows.h>
-#elif MAC
+#if !(WIN32 || MAC)
+#include <unistd.h>
+#elif WIN32
+#include "Windows.h"
+#define strcasecmp _stricmp
+#else
#include <Carbon/Carbon.h>
#include "ige-mac-menu.h"
#define CFURL_TO_STR(u) \
diff --git a/src/textadept.h b/src/textadept.h
index 73064fdf..1a5e60e1 100644
--- a/src/textadept.h
+++ b/src/textadept.h
@@ -15,6 +15,7 @@
#include <ScintillaWidget.h>
extern "C" {
+#include <gcocoadialog.h>
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>