SF.net SVN: geany-plugins:[2160] trunk/geany-plugins
cesspit at users.sourceforge.net
cesspit at xxxxx
Mon Aug 22 00:11:00 UTC 2011
Revision: 2160
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=2160&view=rev
Author: cesspit
Date: 2011-08-22 00:10:59 +0000 (Mon, 22 Aug 2011)
Log Message:
-----------
debugger: buttons panel is made visible on all debug tabs; run, stop, step etc buttons are added to the button panel; restart command added; load/save config messages removed, all compiler warnings removed, disabled breakpoint pixmap corrected, frame and currect frame marker pixmaps changed, refactoring
Modified Paths:
--------------
trunk/geany-plugins/build/debugger.m4
trunk/geany-plugins/debugger/Makefile.am
trunk/geany-plugins/debugger/src/Makefile.am
trunk/geany-plugins/debugger/src/bptree.c
trunk/geany-plugins/debugger/src/breakpoints.c
trunk/geany-plugins/debugger/src/breakpoints.h
trunk/geany-plugins/debugger/src/callbacks.c
trunk/geany-plugins/debugger/src/dbm_gdb.c
trunk/geany-plugins/debugger/src/debug.c
trunk/geany-plugins/debugger/src/debug.h
trunk/geany-plugins/debugger/src/debug_module.c
trunk/geany-plugins/debugger/src/debug_module.h
trunk/geany-plugins/debugger/src/keys.c
trunk/geany-plugins/debugger/src/keys.h
trunk/geany-plugins/debugger/src/markers.c
trunk/geany-plugins/debugger/src/plugin.c
trunk/geany-plugins/debugger/src/stree.c
trunk/geany-plugins/debugger/src/tpage.c
trunk/geany-plugins/debugger/src/tpage.h
trunk/geany-plugins/debugger/src/utils.c
trunk/geany-plugins/debugger/src/utils.h
trunk/geany-plugins/debugger/src/watch_model.c
trunk/geany-plugins/debugger/src/watch_model.h
trunk/geany-plugins/debugger/src/wtree.c
trunk/geany-plugins/debugger/src/wtree.h
trunk/geany-plugins/debugger/src/xpm/breakpoint.xpm
trunk/geany-plugins/debugger/src/xpm/breakpoint_condition.xpm
trunk/geany-plugins/debugger/src/xpm/breakpoint_disabled.xpm
trunk/geany-plugins/po/ru.po
Added Paths:
-----------
trunk/geany-plugins/debugger/img/
trunk/geany-plugins/debugger/img/Makefile
trunk/geany-plugins/debugger/img/Makefile.am
trunk/geany-plugins/debugger/img/Makefile.in
trunk/geany-plugins/debugger/img/continue.png
trunk/geany-plugins/debugger/img/restart.gif
trunk/geany-plugins/debugger/img/run.gif
trunk/geany-plugins/debugger/img/run_to_cursor.gif
trunk/geany-plugins/debugger/img/step_in.png
trunk/geany-plugins/debugger/img/step_out.gif
trunk/geany-plugins/debugger/img/step_over.gif
trunk/geany-plugins/debugger/img/stop.gif
trunk/geany-plugins/debugger/img/tab.gif
trunk/geany-plugins/debugger/img/tabs.gif
trunk/geany-plugins/debugger/src/btnpanel.c
trunk/geany-plugins/debugger/src/btnpanel.h
trunk/geany-plugins/debugger/src/dconfig.c
trunk/geany-plugins/debugger/src/dconfig.h
trunk/geany-plugins/debugger/src/gui.c
trunk/geany-plugins/debugger/src/gui.h
trunk/geany-plugins/debugger/src/xpm/frame.xpm
trunk/geany-plugins/debugger/src/xpm/frame_current.xpm
Removed Paths:
-------------
trunk/geany-plugins/debugger/src/xpm/arrow_1_disable.xpm
trunk/geany-plugins/debugger/src/xpm/arrow_1_yellow.xpm
Modified: trunk/geany-plugins/build/debugger.m4
===================================================================
--- trunk/geany-plugins/build/debugger.m4 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/build/debugger.m4 2011-08-22 00:10:59 UTC (rev 2160)
@@ -7,5 +7,6 @@
AC_CONFIG_FILES([
debugger/Makefile
debugger/src/Makefile
+ debugger/img/Makefile
])
])
Modified: trunk/geany-plugins/debugger/Makefile.am
===================================================================
--- trunk/geany-plugins/debugger/Makefile.am 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/Makefile.am 2011-08-22 00:10:59 UTC (rev 2160)
@@ -5,5 +5,5 @@
EXTRA_DIST =
endif
-SUBDIRS = src
+SUBDIRS = src img
plugin = debugger
Added: trunk/geany-plugins/debugger/img/Makefile
===================================================================
--- trunk/geany-plugins/debugger/img/Makefile (rev 0)
+++ trunk/geany-plugins/debugger/img/Makefile 2011-08-22 00:10:59 UTC (rev 2160)
@@ -0,0 +1,530 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# debugger/img/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+
+pkgdatadir = $(datadir)/geany-plugins
+pkgincludedir = $(includedir)/geany-plugins
+pkglibdir = $(libdir)/geany-plugins
+pkglibexecdir = $(libexecdir)/geany-plugins
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = i686-pc-linux-gnu
+host_triplet = i686-pc-linux-gnu
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/build/vars.docs.mk
+subdir = debugger/img
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/build/bundled/gpgme.m4 \
+ $(top_srcdir)/build/addons.m4 $(top_srcdir)/build/cflags.m4 \
+ $(top_srcdir)/build/codenav.m4 $(top_srcdir)/build/common.m4 \
+ $(top_srcdir)/build/cppcheck.m4 \
+ $(top_srcdir)/build/debugger.m4 $(top_srcdir)/build/devhelp.m4 \
+ $(top_srcdir)/build/expansions.m4 $(top_srcdir)/build/geany.m4 \
+ $(top_srcdir)/build/geanycfp.m4 \
+ $(top_srcdir)/build/geanydoc.m4 \
+ $(top_srcdir)/build/geanyextrasel.m4 \
+ $(top_srcdir)/build/geanygdb.m4 \
+ $(top_srcdir)/build/geanygendoc.m4 \
+ $(top_srcdir)/build/geanyinsertnum.m4 \
+ $(top_srcdir)/build/geanylatex.m4 \
+ $(top_srcdir)/build/geanylipsum.m4 \
+ $(top_srcdir)/build/geanylua.m4 \
+ $(top_srcdir)/build/geanymacro.m4 \
+ $(top_srcdir)/build/geanynumberedbookmarks.m4 \
+ $(top_srcdir)/build/geanypg.m4 $(top_srcdir)/build/geanyprj.m4 \
+ $(top_srcdir)/build/geanysendmail.m4 \
+ $(top_srcdir)/build/geanyvc.m4 $(top_srcdir)/build/gproject.m4 \
+ $(top_srcdir)/build/i18n.m4 \
+ $(top_srcdir)/build/pretty-printer.m4 \
+ $(top_srcdir)/build/shiftcolumn.m4 \
+ $(top_srcdir)/build/spellcheck.m4 \
+ $(top_srcdir)/build/status.m4 \
+ $(top_srcdir)/build/tableconvert.m4 \
+ $(top_srcdir)/build/treebrowser.m4 \
+ $(top_srcdir)/build/unittests.m4 \
+ $(top_srcdir)/build/updatechecker.m4 \
+ $(top_srcdir)/build/webhelper.m4 \
+ $(top_srcdir)/build/xmlsnippets.m4 \
+ $(top_srcdir)/build/cache/glib-gettext.m4 \
+ $(top_srcdir)/build/cache/intltool.m4 \
+ $(top_srcdir)/build/cache/libtool.m4 \
+ $(top_srcdir)/build/cache/ltoptions.m4 \
+ $(top_srcdir)/build/cache/ltsugar.m4 \
+ $(top_srcdir)/build/cache/ltversion.m4 \
+ $(top_srcdir)/build/cache/lt~obsolete.m4 \
+ $(top_srcdir)/build/cache/nls.m4 \
+ $(top_srcdir)/build/cache/pkg.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(plugindatadir)"
+DATA = $(plugindata_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/pit/src/geany-plugins/trunk/geany-plugins/missing --run aclocal-1.11
+ALL_LINGUAS = be ca da de es fr gl ja nl pt pt_BR ru tr zh_CN
+AMTAR = ${SHELL} /home/pit/src/geany-plugins/trunk/geany-plugins/missing --run tar
+AM_DEFAULT_VERBOSITY = 0
+AR = ar
+AUTOCONF = ${SHELL} /home/pit/src/geany-plugins/trunk/geany-plugins/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/pit/src/geany-plugins/trunk/geany-plugins/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/pit/src/geany-plugins/trunk/geany-plugins/missing --run automake-1.11
+AWK = mawk
+CATALOGS = be.gmo ca.gmo da.gmo de.gmo es.gmo fr.gmo gl.gmo ja.gmo nl.gmo pt.gmo pt_BR.gmo ru.gmo tr.gmo zh_CN.gmo
+CATOBJEXT = .gmo
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O0
+CHECK_CFLAGS =
+CHECK_LIBS =
+CPP = gcc -E
+CPPCHECK = NONE
+CPPFLAGS =
+CYGPATH_W = echo
+DATADIRNAME = share
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DEVHELP_CFLAGS = -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/webkit-1.0 -I/usr/include/libsoup-2.4 -I/usr/include/libxml2 -I/usr/include/devhelp-1.0 -I/usr/include/libwnck-1.0 -I/usr/include/startup-notification-1.0
+DEVHELP_LIBS = -pthread -ldevhelp-1 -lwebkit-1.0 -lgtk-x11-2.0 -lsoup-2.4 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
+DSYMUTIL =
+DUMPBIN =
+ECHO_C =
+ECHO_N = -n
+ECHO_T =
+EGREP = /bin/grep -E
+ENCHANT_CFLAGS = -pthread -I/usr/include/enchant -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
+ENCHANT_LIBS = -pthread -lenchant -lgmodule-2.0 -lrt -lglib-2.0
+EXEEXT =
+FGREP = /bin/grep -F
+GEANYGENDOC_CFLAGS = -pthread -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
+GEANYGENDOC_LIBS = -pthread -L/usr/local/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lctpl -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
+GEANY_CFLAGS = -DGTK -pthread -I/usr/local/include/geany -I/usr/local/include/geany/tagmanager -I/usr/local/include/geany/scintilla -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
+GEANY_LIBS = -pthread -L/usr/local/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lcairo -lgio-2.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
+GEANY_VERSION = 0.21
+GETTEXT_PACKAGE = geany-plugins
+GIO_CFLAGS = -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
+GIO_LIBS = -pthread -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
+GLIB_MKENUMS = /usr/bin/glib-mkenums
+GMOFILES = be.gmo ca.gmo da.gmo de.gmo es.gmo fr.gmo gl.gmo ja.gmo nl.gmo pt.gmo pt_BR.gmo ru.gmo tr.gmo zh_CN.gmo
+GMSGFMT = /usr/bin/msgfmt
+GPGME_CFLAGS =
+GPGME_CONFIG = no
+GPGME_LIBS =
+GP_CFLAGS = -Wall -Wimplicit-function-declaration -Wmissing-parameter-type -Wold-style-declaration -Wpointer-arith -Wshadow -Wundef -Wwrite-strings
+GREP = /bin/grep
+GTKSPELL_CFLAGS = -pthread -I/usr/include/gtkspell-2.0 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
+GTKSPELL_LIBS = -pthread -lgtkspell -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lcairo -lgio-2.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+INSTOBJEXT = .mo
+INTLLIBS =
+INTLTOOL_EXTRACT = /usr/bin/intltool-extract
+INTLTOOL_MERGE = /usr/bin/intltool-merge
+INTLTOOL_PERL = /usr/bin/perl
+INTLTOOL_UPDATE = /usr/bin/intltool-update
+LD = /usr/bin/ld
+LDFLAGS =
+LIBOBJS =
+LIBS =
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBXML_CFLAGS = -I/usr/include/libxml2
+LIBXML_LIBS = -lxml2
+LIPO =
+LN_S = ln -s
+LOCALEDIR = ${datarootdir}/locale
+LTLIBOBJS =
+LUA_CFLAGS = -I/usr/include/lua5.1
+LUA_LIBS = -llua5.1
+MAKEINFO = ${SHELL} /home/pit/src/geany-plugins/trunk/geany-plugins/missing --run makeinfo
+MKDIR_P = /bin/mkdir -p
+MKINSTALLDIRS = ./mkinstalldirs
+MSGFMT = /usr/bin/msgfmt
+MSGFMT_OPTS = -c
+MSGMERGE = /usr/bin/msgmerge
+NM = /usr/bin/nm -B
+NMEDIT =
+OBJDUMP = objdump
+OBJEXT = o
+OTOOL =
+OTOOL64 =
+PACKAGE = geany-plugins
+PACKAGE_BUGREPORT =
+PACKAGE_NAME = geany-plugins
+PACKAGE_STRING = geany-plugins 0.21
+PACKAGE_TARNAME = geany-plugins
+PACKAGE_URL =
+PACKAGE_VERSION = 0.21
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/bin/pkg-config
+PKG_CONFIG_LIBDIR =
+PKG_CONFIG_PATH =
+POFILES = be.po ca.po da.po de.po es.po fr.po gl.po ja.po nl.po pt.po pt_BR.po ru.po tr.po zh_CN.po
+POSUB = po
+PO_IN_DATADIR_FALSE =
+PO_IN_DATADIR_TRUE =
+RANLIB = ranlib
+RST2HTML = no
+SED = /bin/sed
+SET_MAKE =
+SHELL = /bin/bash
+STRIP = strip
+UPDATECHECKER_CFLAGS = -pthread -I/usr/include/libsoup-2.4 -I/usr/include/libxml2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
+UPDATECHECKER_LIBS = -pthread -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
+USE_NLS = yes
+VERSION = 0.21
+VTE_CFLAGS = -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/gtk-2.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12
+VTE_LIBS = -pthread -lvte -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lfreetype -lfontconfig -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lcairo -lX11
+WEBHELPER_CFLAGS = -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/webkit-1.0 -I/usr/include/libsoup-2.4 -I/usr/include/libxml2
+WEBHELPER_LIBS = -pthread -lwebkit-1.0 -lgtk-x11-2.0 -lsoup-2.4 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
+XGETTEXT = /usr/bin/xgettext
+abs_builddir = /home/pit/src/geany-plugins/trunk/geany-plugins/debugger/img
+abs_srcdir = /home/pit/src/geany-plugins/trunk/geany-plugins/debugger/img
+abs_top_builddir = /home/pit/src/geany-plugins/trunk/geany-plugins
+abs_top_srcdir = /home/pit/src/geany-plugins/trunk/geany-plugins
+ac_ct_CC = gcc
+ac_ct_DUMPBIN =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = i686-pc-linux-gnu
+build_alias =
+build_cpu = i686
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+geanypluginsdir = /usr/local/lib/geany
+host = i686-pc-linux-gnu
+host_alias =
+host_cpu = i686
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /home/pit/src/geany-plugins/trunk/geany-plugins/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+lt_ECHO = echo
+mandir = ${datarootdir}/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias =
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
+plugindocdir = $(docdir)/$(plugin)
+htmldocdir = $(plugindocdir)
+plugindatadir = $(pkgdatadir)/$(plugin)
+pluginlibdir = $(pkglibdir)/$(plugin)
+examplesdir = $(plugindatadir)
+AUXFILES = \
+ README \
+ ChangeLog \
+ NEWS \
+ COPYING \
+ AUTHORS
+
+plugin = debugger
+FILES = \
+ continue.png \
+ restart.gif \
+ run.gif \
+ run_to_cursor.gif \
+ step_in.png \
+ step_out.gif \
+ step_over.gif \
+ stop.gif \
+ tab.gif \
+ tabs.gif
+
+EXTRA_DIST = $(FILES)
+plugindata_DATA = $(FILES)
+#EXTRA_DATA = $(FILES)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build/vars.docs.mk $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign debugger/img/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign debugger/img/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-plugindataDATA: $(plugindata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(plugindatadir)" || $(MKDIR_P) "$(DESTDIR)$(plugindatadir)"
+ @list='$(plugindata_DATA)'; test -n "$(plugindatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(plugindatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(plugindatadir)" || exit $$?; \
+ done
+
+uninstall-plugindataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(plugindata_DATA)'; test -n "$(plugindatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(plugindatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(plugindatadir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(plugindatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-plugindataDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-plugindataDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-plugindataDATA install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ uninstall uninstall-am uninstall-plugindataDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Added: trunk/geany-plugins/debugger/img/Makefile.am
===================================================================
--- trunk/geany-plugins/debugger/img/Makefile.am (rev 0)
+++ trunk/geany-plugins/debugger/img/Makefile.am 2011-08-22 00:10:59 UTC (rev 2160)
@@ -0,0 +1,22 @@
+include $(top_srcdir)/build/vars.docs.mk
+
+plugin = debugger
+FILES = \
+ continue.png \
+ restart.gif \
+ run.gif \
+ run_to_cursor.gif \
+ step_in.png \
+ step_out.gif \
+ step_over.gif \
+ stop.gif \
+ tab.gif \
+ tabs.gif
+
+EXTRA_DIST = $(FILES)
+
+if ENABLE_DEBUGGER
+plugindata_DATA = $(FILES)
+else
+EXTRA_DATA = $(FILES)
+endif
Added: trunk/geany-plugins/debugger/img/Makefile.in
===================================================================
--- trunk/geany-plugins/debugger/img/Makefile.in (rev 0)
+++ trunk/geany-plugins/debugger/img/Makefile.in 2011-08-22 00:10:59 UTC (rev 2160)
@@ -0,0 +1,530 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/build/vars.docs.mk
+subdir = debugger/img
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/build/bundled/gpgme.m4 \
+ $(top_srcdir)/build/addons.m4 $(top_srcdir)/build/cflags.m4 \
+ $(top_srcdir)/build/codenav.m4 $(top_srcdir)/build/common.m4 \
+ $(top_srcdir)/build/cppcheck.m4 \
+ $(top_srcdir)/build/debugger.m4 $(top_srcdir)/build/devhelp.m4 \
+ $(top_srcdir)/build/expansions.m4 $(top_srcdir)/build/geany.m4 \
+ $(top_srcdir)/build/geanycfp.m4 \
+ $(top_srcdir)/build/geanydoc.m4 \
+ $(top_srcdir)/build/geanyextrasel.m4 \
+ $(top_srcdir)/build/geanygdb.m4 \
+ $(top_srcdir)/build/geanygendoc.m4 \
+ $(top_srcdir)/build/geanyinsertnum.m4 \
+ $(top_srcdir)/build/geanylatex.m4 \
+ $(top_srcdir)/build/geanylipsum.m4 \
+ $(top_srcdir)/build/geanylua.m4 \
+ $(top_srcdir)/build/geanymacro.m4 \
+ $(top_srcdir)/build/geanynumberedbookmarks.m4 \
+ $(top_srcdir)/build/geanypg.m4 $(top_srcdir)/build/geanyprj.m4 \
+ $(top_srcdir)/build/geanysendmail.m4 \
+ $(top_srcdir)/build/geanyvc.m4 $(top_srcdir)/build/gproject.m4 \
+ $(top_srcdir)/build/i18n.m4 \
+ $(top_srcdir)/build/pretty-printer.m4 \
+ $(top_srcdir)/build/shiftcolumn.m4 \
+ $(top_srcdir)/build/spellcheck.m4 \
+ $(top_srcdir)/build/status.m4 \
+ $(top_srcdir)/build/tableconvert.m4 \
+ $(top_srcdir)/build/treebrowser.m4 \
+ $(top_srcdir)/build/unittests.m4 \
+ $(top_srcdir)/build/updatechecker.m4 \
+ $(top_srcdir)/build/webhelper.m4 \
+ $(top_srcdir)/build/xmlsnippets.m4 \
+ $(top_srcdir)/build/cache/glib-gettext.m4 \
+ $(top_srcdir)/build/cache/intltool.m4 \
+ $(top_srcdir)/build/cache/libtool.m4 \
+ $(top_srcdir)/build/cache/ltoptions.m4 \
+ $(top_srcdir)/build/cache/ltsugar.m4 \
+ $(top_srcdir)/build/cache/ltversion.m4 \
+ $(top_srcdir)/build/cache/lt~obsolete.m4 \
+ $(top_srcdir)/build/cache/nls.m4 \
+ $(top_srcdir)/build/cache/pkg.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(plugindatadir)"
+DATA = $(plugindata_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPCHECK = @CPPCHECK@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DEVHELP_CFLAGS = @DEVHELP_CFLAGS@
+DEVHELP_LIBS = @DEVHELP_LIBS@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENCHANT_CFLAGS = @ENCHANT_CFLAGS@
+ENCHANT_LIBS = @ENCHANT_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GEANYGENDOC_CFLAGS = @GEANYGENDOC_CFLAGS@
+GEANYGENDOC_LIBS = @GEANYGENDOC_LIBS@
+GEANY_CFLAGS = @GEANY_CFLAGS@
+GEANY_LIBS = @GEANY_LIBS@
+GEANY_VERSION = @GEANY_VERSION@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LIBS = @GIO_LIBS@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GPGME_CFLAGS = @GPGME_CFLAGS@
+GPGME_CONFIG = @GPGME_CONFIG@
+GPGME_LIBS = @GPGME_LIBS@
+GP_CFLAGS = @GP_CFLAGS@
+GREP = @GREP@
+GTKSPELL_CFLAGS = @GTKSPELL_CFLAGS@
+GTKSPELL_LIBS = @GTKSPELL_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LOCALEDIR = @LOCALEDIR@
+LTLIBOBJS = @LTLIBOBJS@
+LUA_CFLAGS = @LUA_CFLAGS@
+LUA_LIBS = @LUA_LIBS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+RST2HTML = @RST2HTML@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+UPDATECHECKER_CFLAGS = @UPDATECHECKER_CFLAGS@
+UPDATECHECKER_LIBS = @UPDATECHECKER_LIBS@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+VTE_CFLAGS = @VTE_CFLAGS@
+VTE_LIBS = @VTE_LIBS@
+WEBHELPER_CFLAGS = @WEBHELPER_CFLAGS@
+WEBHELPER_LIBS = @WEBHELPER_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+geanypluginsdir = @geanypluginsdir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+plugindocdir = $(docdir)/$(plugin)
+htmldocdir = $(plugindocdir)
+plugindatadir = $(pkgdatadir)/$(plugin)
+pluginlibdir = $(pkglibdir)/$(plugin)
+examplesdir = $(plugindatadir)
+AUXFILES = \
+ README \
+ ChangeLog \
+ NEWS \
+ COPYING \
+ AUTHORS
+
+plugin = debugger
+FILES = \
+ continue.png \
+ restart.gif \
+ run.gif \
+ run_to_cursor.gif \
+ step_in.png \
+ step_out.gif \
+ step_over.gif \
+ stop.gif \
+ tab.gif \
+ tabs.gif
+
+EXTRA_DIST = $(FILES)
+ at ENABLE_DEBUGGER_TRUE@plugindata_DATA = $(FILES)
+ at ENABLE_DEBUGGER_FALSE@EXTRA_DATA = $(FILES)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build/vars.docs.mk $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign debugger/img/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign debugger/img/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-plugindataDATA: $(plugindata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(plugindatadir)" || $(MKDIR_P) "$(DESTDIR)$(plugindatadir)"
+ @list='$(plugindata_DATA)'; test -n "$(plugindatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(plugindatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(plugindatadir)" || exit $$?; \
+ done
+
+uninstall-plugindataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(plugindata_DATA)'; test -n "$(plugindatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(plugindatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(plugindatadir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(plugindatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-plugindataDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-plugindataDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-plugindataDATA install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ uninstall uninstall-am uninstall-plugindataDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Added: trunk/geany-plugins/debugger/img/continue.png
===================================================================
(Binary files differ)
Property changes on: trunk/geany-plugins/debugger/img/continue.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/geany-plugins/debugger/img/restart.gif
===================================================================
(Binary files differ)
Property changes on: trunk/geany-plugins/debugger/img/restart.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/geany-plugins/debugger/img/run.gif
===================================================================
(Binary files differ)
Property changes on: trunk/geany-plugins/debugger/img/run.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/geany-plugins/debugger/img/run_to_cursor.gif
===================================================================
(Binary files differ)
Property changes on: trunk/geany-plugins/debugger/img/run_to_cursor.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/geany-plugins/debugger/img/step_in.png
===================================================================
(Binary files differ)
Property changes on: trunk/geany-plugins/debugger/img/step_in.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/geany-plugins/debugger/img/step_out.gif
===================================================================
(Binary files differ)
Property changes on: trunk/geany-plugins/debugger/img/step_out.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/geany-plugins/debugger/img/step_over.gif
===================================================================
(Binary files differ)
Property changes on: trunk/geany-plugins/debugger/img/step_over.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/geany-plugins/debugger/img/stop.gif
===================================================================
(Binary files differ)
Property changes on: trunk/geany-plugins/debugger/img/stop.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/geany-plugins/debugger/img/tab.gif
===================================================================
(Binary files differ)
Property changes on: trunk/geany-plugins/debugger/img/tab.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/geany-plugins/debugger/img/tabs.gif
===================================================================
(Binary files differ)
Property changes on: trunk/geany-plugins/debugger/img/tabs.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/geany-plugins/debugger/src/Makefile.am
===================================================================
--- trunk/geany-plugins/debugger/src/Makefile.am 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/src/Makefile.am 2011-08-22 00:10:59 UTC (rev 2160)
@@ -1,4 +1,5 @@
include $(top_srcdir)/build/vars.build.mk
+include $(top_srcdir)/build/vars.docs.mk
if ENABLE_DEBUGGER
geanyplugins_LTLIBRARIES = debugger.la
@@ -6,6 +7,8 @@
EXTRA_LTLIBRARIES = debugger.la
endif
+plugin = debugger
+
debugger_la_SOURCES = \
bptree.c \
bptree.h \
@@ -13,15 +16,21 @@
breakpoint.h \
breakpoints.c \
breakpoints.h \
+ btnpanel.c \
+ btnpanel.h \
callbacks.c \
callbacks.h \
calltip.c \
calltip.h \
dbm_gdb.c \
+ dconfig.h \
+ dconfig.c \
debug.c \
debug.h \
debug_module.c \
debug_module.h \
+ gui.h \
+ gui.c \
keys.c \
keys.h \
ltree.c \
@@ -43,6 +52,6 @@
wtree.h
debugger_la_LIBADD = $(COMMONLIBS) -lutil
-debugger_la_CFLAGS = $(AM_CFLAGS) $(VTE_CFLAGS)
+debugger_la_CFLAGS = $(AM_CFLAGS) $(VTE_CFLAGS) -DDBGPLUG_DATA_DIR=\"$(plugindatadir)\" -DPLUGIN_NAME=\"$(plugin)\"
include $(top_srcdir)/build/cppcheck.mk
Modified: trunk/geany-plugins/debugger/src/bptree.c
===================================================================
--- trunk/geany-plugins/debugger/src/bptree.c 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/src/bptree.c 2011-08-22 00:10:59 UTC (rev 2160)
@@ -27,6 +27,7 @@
* bptree_set... if breakpoint has been changed altered/added/removed
*/
+#include <stdlib.h>
#include <memory.h>
#include <gtk/gtk.h>
@@ -83,7 +84,7 @@
void on_row_double_click(GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data)
{
GtkTreeIter iter;
- gboolean res = gtk_tree_model_get_iter (
+ gtk_tree_model_get_iter (
model,
&iter,
path);
@@ -111,7 +112,7 @@
GtkTreeIter iter;
GtkTreePath *tree_path = gtk_tree_path_new_from_string (path);
- gboolean res = gtk_tree_model_get_iter (
+ gtk_tree_model_get_iter (
model,
&iter,
tree_path);
@@ -147,7 +148,7 @@
GtkTreeIter iter;
GtkTreePath *tree_path = gtk_tree_path_new_from_string (path);
- gboolean res = gtk_tree_model_get_iter (
+ gtk_tree_model_get_iter (
model,
&iter,
tree_path);
@@ -182,7 +183,7 @@
GtkTreeIter iter;
GtkTreePath *tree_path = gtk_tree_path_new_from_string (path);
- gboolean res = gtk_tree_model_get_iter (
+ gtk_tree_model_get_iter (
model,
&iter,
tree_path);
@@ -280,9 +281,9 @@
path = gtk_tree_row_reference_get_path(reference_to_select);
else
{
- GtkTreeIter iter;
- gtk_tree_model_get_iter_first(model, &iter);
- path = gtk_tree_model_get_path(model, &iter);
+ GtkTreeIter tree_iter;
+ gtk_tree_model_get_iter_first(model, &tree_iter);
+ path = gtk_tree_model_get_path(model, &tree_iter);
}
/* set selection if any */
Modified: trunk/geany-plugins/debugger/src/breakpoints.c
===================================================================
--- trunk/geany-plugins/debugger/src/breakpoints.c 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/src/breakpoints.c 2011-08-22 00:10:59 UTC (rev 2160)
@@ -36,6 +36,7 @@
#include "markers.h"
#include "debug.h"
#include "bptree.h"
+#include "dconfig.h"
/* container for break-for-file g_tree GTree-s */
GHashTable* files = NULL;
@@ -92,6 +93,7 @@
* arguments:
* bp - breakpoint
*/
+void handle_break_remove(breakpoint* bp, gboolean success);
void breaks_remove_internal(breakpoint *bp)
{
handle_break_remove(bp, TRUE);
@@ -107,7 +109,7 @@
{
breakpoint* bp = NULL;
GTree* tree = NULL;
- if (tree = (GTree*)g_hash_table_lookup(files, file))
+ if ( (tree = (GTree*)g_hash_table_lookup(files, file)) )
bp = g_tree_lookup(tree, GINT_TO_POINTER(line));
return bp;
@@ -484,7 +486,7 @@
{
/* first look for the tree for the given file */
GTree *tree = NULL;
- if (tree = g_hash_table_lookup(files, file))
+ if ( (tree = g_hash_table_lookup(files, file)) )
{
/* lookup for the break in GTree*/
breakpoint *bp = (breakpoint*)g_tree_lookup(tree, GINT_TO_POINTER(line_from));
@@ -509,7 +511,7 @@
/* first look for the tree for the given file */
GTree *tree;
- if (tree = g_hash_table_lookup(files, file))
+ if ( (tree = g_hash_table_lookup(files, file)) )
{
breakpoint *bp = g_tree_lookup(tree, GINT_TO_POINTER(line));
if (bp)
@@ -555,3 +557,21 @@
{
return bptree_get_widget();
}
+
+/*
+ * Read new breakpoints from dconfig
+ */
+void breaks_read_config()
+{
+ /* clear all breaks */
+ breaks_remove_all();
+
+ GList *list = dconfig_breaks_get();
+
+ while(list)
+ {
+ breakpoint *bp = (breakpoint*)list->data;
+ breaks_add(bp->file, bp->line, bp->condition, bp->enabled, bp->hitscount);
+ list = list->next;
+ }
+}
Modified: trunk/geany-plugins/debugger/src/breakpoints.h
===================================================================
--- trunk/geany-plugins/debugger/src/breakpoints.h 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/src/breakpoints.h 2011-08-22 00:10:59 UTC (rev 2160)
@@ -40,4 +40,5 @@
GtkWidget* breaks_get_widget();
GList* breaks_get_for_document(char* file);
GList* breaks_get_all();
+void breaks_read_config();
Added: trunk/geany-plugins/debugger/src/btnpanel.c
===================================================================
--- trunk/geany-plugins/debugger/src/btnpanel.c (rev 0)
+++ trunk/geany-plugins/debugger/src/btnpanel.c 2011-08-22 00:10:59 UTC (rev 2160)
@@ -0,0 +1,302 @@
+/*
+ * btnpanel.c
+ *
+ * Copyright 2010 Alexander Petukhov <Alexander(dot)Petukhov(at)mail(dot)ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+/*
+ * buttons panel
+ */
+
+#include <sys/stat.h>
+
+#include "geanyplugin.h"
+extern GeanyFunctions *geany_functions;
+extern GeanyPlugin *geany_plugin;
+
+#include "gui.h"
+#include "breakpoint.h"
+#include "debug.h"
+#include "dconfig.h"
+#include "tpage.h"
+#include "breakpoints.h"
+#include "watch_model.h"
+#include "wtree.h"
+#include "btnpanel.h"
+
+#define CP_BUTTONS_PAD 5
+#define CONFIG_NAME ".debugger"
+
+static GtkWidget *savebtn = NULL;
+static GtkWidget *loadbtn = NULL;
+static GtkWidget *clearbtn = NULL;
+
+static GtkWidget *runbtn = NULL;
+static GtkWidget *restartbtn = NULL;
+static GtkWidget *stopbtn = NULL;
+
+static GtkWidget *stepoverbtn = NULL;
+static GtkWidget *stepinbtn = NULL;
+static GtkWidget *stepoutbtn = NULL;
+static GtkWidget *runcursorbtn = NULL;
+
+static GtkWidget *tabbtn = NULL;
+static GtkWidget *optbtn = NULL;
+
+static gboolean debugging = FALSE;
+
+/*
+ * load config button handler
+ */
+void on_config_load(GtkButton *button, gpointer user_data)
+{
+ GeanyDocument *doc = document_get_current();
+ if (!doc && !doc->real_path)
+ {
+ dialogs_show_msgbox(GTK_MESSAGE_ERROR, _("Error reading config file"));
+ }
+ else
+ {
+ gchar *folder = g_path_get_dirname(DOC_FILENAME(doc));
+ if (!dconfig_load(folder))
+ {
+ dialogs_show_msgbox(GTK_MESSAGE_ERROR, _("Error reading config file"));
+ }
+ else
+ {
+ /* update target page */
+ tpage_read_config();
+ /* breakpoints */
+ breaks_read_config();
+ /* watches */
+ wtree_read_config();
+ }
+ g_free(folder);
+ }
+}
+
+/*
+ * save config button handler
+ */
+void on_config_save(GtkButton *button, gpointer user_data)
+{
+ GeanyDocument *doc = document_get_current();
+ if (doc && doc->real_path)
+ {
+ /* open config file */
+ gchar *folder = g_path_get_dirname(DOC_FILENAME(doc));
+ if (!dconfig_save(folder))
+ {
+ dialogs_show_msgbox(GTK_MESSAGE_ERROR, _("Error saving config file"));
+ }
+ g_free(folder);
+ }
+}
+
+/*
+ * clear config values button handler
+ */
+void on_config_clear(GtkButton *button, gpointer user_data)
+{
+ /* target page */
+ tpage_clear();
+
+ /* breakpoints */
+ breaks_remove_all();
+
+ /* watches */
+ wtree_remove_all();
+}
+
+/*
+ * calls settings dialog
+ */
+void on_settings(GtkButton *button, gpointer user_data)
+{
+ plugin_show_configure(geany_plugin);
+}
+
+/*
+ * gets current file and line and calls debug function
+ */
+void on_execute_until(GtkButton *button, gpointer user_data)
+{
+ GeanyDocument *doc = document_get_current();
+ if (doc)
+ {
+ int line = sci_get_current_line(doc->editor->sci) + 1;
+ debug_execute_until(DOC_FILENAME(doc), line);
+ }
+}
+
+/*
+ * create and initialize buttons panel
+ */
+GtkWidget* btnpanel_create()
+{
+ GtkWidget *vbox = gtk_vbox_new(FALSE, CP_BUTTONS_PAD);
+ gtk_container_set_border_width (GTK_CONTAINER (vbox), 7);
+
+ GtkWidget *hbutton_box = gtk_hbox_new(FALSE, CP_BUTTONS_PAD);
+
+ runbtn = create_button("run.gif", _("Run"));
+ g_signal_connect(G_OBJECT(runbtn), "clicked", G_CALLBACK (debug_run), (gpointer)TRUE);
+
+ gtk_box_pack_start(GTK_BOX(hbutton_box), runbtn, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbutton_box, FALSE, TRUE, 0);
+
+ hbutton_box = gtk_hbox_new(TRUE, CP_BUTTONS_PAD);
+
+ restartbtn = create_button("restart.gif", _("Restart"));
+ g_signal_connect(G_OBJECT(restartbtn), "clicked", G_CALLBACK (debug_restart), (gpointer)TRUE);
+
+ stopbtn = create_button("stop.gif", _("Stop"));
+ g_signal_connect(G_OBJECT(stopbtn), "clicked", G_CALLBACK (debug_stop), (gpointer)TRUE);
+
+ gtk_box_pack_start(GTK_BOX(hbutton_box), restartbtn, FALSE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(hbutton_box), stopbtn, FALSE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbutton_box, FALSE, TRUE, 0);
+
+ hbutton_box = gtk_hbox_new(TRUE, CP_BUTTONS_PAD);
+
+ stepoverbtn = create_button("step_over.gif", _("Step over"));
+ g_signal_connect(G_OBJECT(stepoverbtn), "clicked", G_CALLBACK (debug_step_over), (gpointer)TRUE);
+
+ stepinbtn = create_button("step_in.png", _("Step into"));
+ g_signal_connect(G_OBJECT(stepinbtn), "clicked", G_CALLBACK (debug_step_into), (gpointer)TRUE);
+
+ gtk_box_pack_start(GTK_BOX(hbutton_box), stepoverbtn, FALSE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(hbutton_box), stepinbtn, FALSE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbutton_box, FALSE, TRUE, 0);
+
+ hbutton_box = gtk_hbox_new(TRUE, CP_BUTTONS_PAD);
+
+ stepoutbtn = create_button("step_out.gif", _("Step out"));
+ g_signal_connect(G_OBJECT(stepoutbtn), "clicked", G_CALLBACK (debug_step_out), (gpointer)TRUE);
+
+ runcursorbtn = create_button("run_to_cursor.gif", _("Run to cursor"));
+ g_signal_connect(G_OBJECT(runcursorbtn), "clicked", G_CALLBACK (on_execute_until), (gpointer)TRUE);
+
+ gtk_box_pack_start(GTK_BOX(hbutton_box), stepoutbtn, FALSE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(hbutton_box), runcursorbtn, FALSE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbutton_box, FALSE, TRUE, 0);
+
+ GtkWidget *vbox_panels_buttons = gtk_vbox_new(FALSE, 0);
+ GtkWidget *vbutton_box = gtk_vbox_new(TRUE, CP_BUTTONS_PAD);
+
+ loadbtn = create_stock_button(GTK_STOCK_OPEN, _("Load settings"));
+ g_signal_connect(G_OBJECT(loadbtn), "clicked", G_CALLBACK (on_config_load), (gpointer)TRUE);
+ gtk_box_pack_start(GTK_BOX(vbutton_box), loadbtn, FALSE, TRUE, 0);
+
+ savebtn = create_stock_button(GTK_STOCK_SAVE, _("Save settings"));
+ g_signal_connect(G_OBJECT(savebtn), "clicked", G_CALLBACK (on_config_save), NULL);
+ gtk_box_pack_start(GTK_BOX(vbutton_box), savebtn, FALSE, TRUE, 0);
+
+ clearbtn = create_stock_button(GTK_STOCK_CLEAR, _("Clear settings"));
+ g_signal_connect(G_OBJECT(clearbtn), "clicked", G_CALLBACK (on_config_clear), NULL);
+ gtk_box_pack_start(GTK_BOX(vbutton_box), clearbtn, FALSE, FALSE, 0);
+
+ gtk_box_pack_start(GTK_BOX(vbox_panels_buttons), vbutton_box, TRUE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), vbox_panels_buttons, TRUE, FALSE, 0);
+
+ vbutton_box = gtk_vbox_new(TRUE, CP_BUTTONS_PAD);
+ tabbtn = create_toggle_button("tabs.gif", _("Tabs"));
+ gtk_box_pack_start(GTK_BOX(vbox), tabbtn, FALSE, FALSE, 0);
+
+ optbtn = create_stock_button(GTK_STOCK_PREFERENCES, "Настройки");
+ g_signal_connect(G_OBJECT(optbtn), "clicked", G_CALLBACK (on_settings), NULL);
+ gtk_box_pack_start(GTK_BOX(vbox), optbtn, FALSE, FALSE, 0);
+
+ btnpanel_set_debug_state(DBS_IDLE);
+
+ return vbox;
+}
+
+/*
+ * disable load/save config buttons on document close
+ */
+void btnpanel_on_document_close()
+{
+ gtk_widget_set_sensitive(loadbtn, FALSE);
+ gtk_widget_set_sensitive(savebtn, FALSE);
+}
+
+/*
+ * enable load/save config buttons on document activate
+ * if page is not readonly and have config
+ */
+void btnpanel_on_document_activate(GeanyDocument *doc)
+{
+ if (debugging)
+ return;
+
+ if (!doc || !doc->real_path)
+ {
+ btnpanel_on_document_close();
+ return;
+ }
+
+ gtk_widget_set_sensitive(savebtn, TRUE);
+
+ gchar *dirname = g_path_get_dirname(DOC_FILENAME(doc));
+ gchar *config = g_build_path(G_DIR_SEPARATOR_S, dirname, CONFIG_NAME, NULL);
+ struct stat st;
+ gtk_widget_set_sensitive(loadbtn, !stat(config, &st));
+
+ g_free(config);
+}
+
+/*
+ * set buttons sensitive based on whether it is a config file
+ * in the current folder
+ */
+void btnpanel_set_have_config(gboolean haveconfig)
+{
+ gtk_widget_set_sensitive(loadbtn, haveconfig);
+}
+
+/*
+ * set buttons sensitive based on debugger state
+ */
+void btnpanel_set_debug_state(enum dbs state)
+{
+ debugging = (DBS_IDLE != state);
+
+ if (DBS_STOPPED == state)
+ {
+ set_button_image(runbtn, "continue.png");
+ gtk_widget_set_tooltip_text(runbtn, _("Continue"));
+ }
+ else
+ {
+ set_button_image(runbtn, "run.gif");
+ gtk_widget_set_tooltip_text(runbtn, _("Run"));
+ }
+
+ gtk_widget_set_sensitive(runbtn, DBS_IDLE == state || DBS_STOPPED == state);
+ gtk_widget_set_sensitive(restartbtn, DBS_IDLE != state);
+ gtk_widget_set_sensitive(stopbtn, DBS_IDLE != state);
+
+ gtk_widget_set_sensitive(stepoverbtn, DBS_STOPPED == state);
+ gtk_widget_set_sensitive(stepinbtn, DBS_STOPPED == state);
+ gtk_widget_set_sensitive(stepoutbtn, DBS_STOPPED == state);
+ gtk_widget_set_sensitive(runcursorbtn, DBS_STOPPED == state);
+
+ gtk_widget_set_sensitive(loadbtn, DBS_IDLE == state);
+ gtk_widget_set_sensitive(clearbtn, DBS_IDLE == state);
+}
Added: trunk/geany-plugins/debugger/src/btnpanel.h
===================================================================
--- trunk/geany-plugins/debugger/src/btnpanel.h (rev 0)
+++ trunk/geany-plugins/debugger/src/btnpanel.h 2011-08-22 00:10:59 UTC (rev 2160)
@@ -0,0 +1,27 @@
+/*
+ * btnpanel.h
+ *
+ * Copyright 2010 Alexander Petukhov <Alexander(dot)Petukhov(at)mail(dot)ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+GtkWidget* btnpanel_create();
+void btnpanel_on_document_close();
+void btnpanel_on_document_activate(GeanyDocument *doc);
+
+void btnpanel_set_have_config(gboolean haveconfig);
+void btnpanel_set_debug_state(enum dbs state);
Modified: trunk/geany-plugins/debugger/src/callbacks.c
===================================================================
--- trunk/geany-plugins/debugger/src/callbacks.c 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/src/callbacks.c 2011-08-22 00:10:59 UTC (rev 2160)
@@ -36,6 +36,8 @@
#include "markers.h"
#include "utils.h"
#include "bptree.h"
+#include "btnpanel.h"
+#include "dconfig.h"
extern GeanyFunctions *geany_functions;
@@ -50,7 +52,7 @@
*/
void on_document_close(GObject *obj, GeanyDocument *doc, gpointer user_data)
{
- tpage_on_document_close();
+ btnpanel_on_document_close();
}
/*
@@ -58,7 +60,7 @@
*/
void on_document_save(GObject *obj, GeanyDocument *doc, gpointer user_data)
{
- tpage_on_document_activate(doc);
+ btnpanel_on_document_activate(doc);
}
/*
@@ -73,7 +75,7 @@
*/
void on_document_activate(GObject *obj, GeanyDocument *doc, gpointer user_data)
{
- tpage_on_document_activate(doc);
+ btnpanel_on_document_activate(doc);
}
/*
@@ -96,10 +98,12 @@
scintilla_send_message(doc->editor->sci, SCI_SETYCARETPOLICY, CARET_SLOP | CARET_JUMPS | CARET_EVEN , 3);
/* check if current path contains config file */
- tpage_on_document_activate(doc);
+ gchar *folder = g_path_get_dirname(DOC_FILENAME(doc));
+ btnpanel_set_have_config(dconfig_is_found_at(folder));
+ g_free(folder);
GList *breaks;
- if (breaks = breaks_get_for_document(file))
+ if ( (breaks = breaks_get_for_document(file)) )
{
GList *iter = breaks;
while (iter)
@@ -264,6 +268,9 @@
case KEY_STOP:
debug_stop();
break;
+ case KEY_RESTART:
+ debug_restart();
+ break;
case KEY_STEP_OVER:
debug_step_over();
break;
Modified: trunk/geany-plugins/debugger/src/dbm_gdb.c
===================================================================
--- trunk/geany-plugins/debugger/src/dbm_gdb.c 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/src/dbm_gdb.c 2011-08-22 00:10:59 UTC (rev 2160)
@@ -26,6 +26,10 @@
#include <string.h>
#include <stdlib.h>
#include <poll.h>
+#include <ctype.h>
+#include <wctype.h>
+#include <unistd.h>
+
#include <gtk/gtk.h>
#include "breakpoint.h"
@@ -66,7 +70,7 @@
dbg_callbacks* dbg_cbs;
/* GDB command line arguments*/
-static gchar *gdb_args[] = { "gdb", "-i=mi", NULL };
+static const gchar *gdb_args[] = { "gdb", "-i=mi", NULL };
/* GDB pid*/
static GPid gdb_pid = 0;
@@ -130,7 +134,7 @@
*/
void colorize_message(gchar *message)
{
- gchar *color;
+ const gchar *color;
if ('=' == *message)
color = "rose";
else if ('^' == *message)
@@ -228,7 +232,6 @@
while(poll(&pfd, 1, 100))
{
gchar *line = NULL;
- GIOStatus st;
gsize terminator;
GError *err = NULL;
@@ -278,7 +281,7 @@
{
/* asyncronous record found */
char *record = NULL;
- if (record = strchr(line, ','))
+ if ( (record = strchr(line, ',')) )
{
*record = '\0';
record++;
@@ -380,7 +383,7 @@
* connects reader to output channel and exits
* after execution
*/
-void exec_async_command(gchar* command)
+void exec_async_command(const gchar* command)
{
#ifdef DEBUG_OUTPUT
dbg_cbs->send_message(command, "red");
@@ -419,7 +422,7 @@
* i.e. reading output right
* after execution
*/
-result_class exec_sync_command(gchar* command, gboolean wait4prompt, gchar** command_record)
+result_class exec_sync_command(const gchar* command, gboolean wait4prompt, gchar** command_record)
{
#ifdef DEBUG_OUTPUT
@@ -523,8 +526,7 @@
/* spawn GDB */
const gchar *exclude[] = { "LANG", NULL };
gchar **gdb_env = utils_copy_environment(exclude, "LANG", "C", NULL);
- const gchar *env_lang = g_getenv("LANG");
- if (!g_spawn_async_with_pipes(NULL, gdb_args, gdb_env,
+ if (!g_spawn_async_with_pipes(NULL, (gchar**)gdb_args, gdb_env,
GDB_SPAWN_FLAGS, NULL,
NULL, &gdb_pid, &gdb_in, &gdb_out, NULL, &err))
{
@@ -655,7 +657,7 @@
GList *iter = start_messages;
while (iter)
{
- dbg_cbs->send_message((gchar*)iter->data, "grey");
+ dbg_cbs->send_message((const gchar*)iter->data, "grey");
iter = iter->next;
}
free_start_messages();
@@ -664,6 +666,15 @@
}
/*
+ * starts debugging
+ */
+void restart(char* terminal_device)
+{
+ dbg_cbs->clear_messages();
+ exec_async_command("-exec-run &");
+}
+
+/*
* stops GDB
*/
void stop()
@@ -714,6 +725,41 @@
}
/*
+ * gets breakpoint number by file and line
+ */
+int get_break_number(char* file, int line)
+{
+ gchar* record;
+ exec_sync_command("-break-list", TRUE, &record);
+
+ gchar* bstart = record;
+ while ( (bstart = strstr(bstart, "bkpt=")) )
+ {
+ bstart += strlen("bkpt={number=\"");
+ *strchr(bstart, '\"') = '\0';
+ int num = atoi(bstart);
+
+ bstart += strlen(bstart) + 1;
+ bstart = strstr(bstart, "original-location=\"") + strlen("original-location=\"");
+ *strchr(bstart, ':') = '\0';
+ gchar *fname = bstart;
+
+ bstart += strlen(bstart) + 1;
+ *strchr(bstart, '\"') = '\0';
+ int bline = atoi(bstart);
+
+ if (!strcmp(fname, file) && bline == line)
+ return num;
+
+ bstart += strlen(bstart) + 1;
+ }
+
+ free(record);
+
+ return -1;
+}
+
+/*
* set breakpoint
*/
gboolean set_break(breakpoint* bp, break_set_activity bsa)
@@ -784,41 +830,6 @@
}
/*
- * gets breakpoint number by file and line
- */
-int get_break_number(char* file, int line)
-{
- gchar* record;
- result_class rc = exec_sync_command("-break-list", TRUE, &record);
-
- gchar* bstart = record;
- while (bstart = strstr(bstart, "bkpt="))
- {
- bstart += strlen("bkpt={number=\"");
- *strchr(bstart, '\"') = '\0';
- int num = atoi(bstart);
-
- bstart += strlen(bstart) + 1;
- bstart = strstr(bstart, "original-location=\"") + strlen("original-location=\"");
- *strchr(bstart, ':') = '\0';
- gchar *fname = bstart;
-
- bstart += strlen(bstart) + 1;
- *strchr(bstart, '\"') = '\0';
- int bline = atoi(bstart);
-
- if (!strcmp(fname, file) && bline == line)
- return num;
-
- bstart += strlen(bstart) + 1;
- }
-
- free(record);
-
- return -1;
-}
-
-/*
* removes breakpoint
*/
gboolean remove_break(breakpoint* bp)
@@ -933,7 +944,7 @@
GString *dest = g_string_new("");
gchar *slash;
- while (slash = strstr(src, "\\x"))
+ while ( (slash = strstr(src, "\\x")) )
{
/* append what has been missed
unescaping it in advance */
@@ -1066,12 +1077,9 @@
*/
void get_variables (GList *vars)
{
- GList *variables;
-
while (vars)
{
gchar command[1000];
- result_class rc;
variable *var = (variable*)vars->data;
@@ -1136,7 +1144,7 @@
gchar *record = NULL;
exec_sync_command("-file-list-exec-source-files", TRUE, &record);
gchar *pos = record;
- while (pos = strstr(pos, "fullname=\""))
+ while ( (pos = strstr(pos, "fullname=\"")) )
{
pos += strlen("fullname=\"");
*(strchr(pos, '\"')) = '\0';
@@ -1159,7 +1167,6 @@
void update_watches()
{
gchar command[1000];
- result_class rc;
/* delete all GDB variables */
GList *iter = watches;
@@ -1355,7 +1362,7 @@
if (RC_DONE == rc)
{
pos = record;
- while (pos = strstr(pos, "child={"))
+ while ( (pos = strstr(pos, "child={")) )
{
gchar *name, *internal;
@@ -1394,7 +1401,6 @@
variable* add_watch(gchar* expression)
{
gchar command[1000];
- result_class rc;
variable *var = variable_new(expression);
watches = g_list_append(watches, var);
Added: trunk/geany-plugins/debugger/src/dconfig.c
===================================================================
--- trunk/geany-plugins/debugger/src/dconfig.c (rev 0)
+++ trunk/geany-plugins/debugger/src/dconfig.c 2011-08-22 00:10:59 UTC (rev 2160)
@@ -0,0 +1,388 @@
+/*
+ *
+ * dconfig.c
+ *
+ * Copyright 2010 Alexander Petukhov <Alexander(dot)Petukhov(at)mail(dot)ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+ /*
+ * Working with debugger configs.
+ */
+
+#include <sys/stat.h>
+
+#include "geanyplugin.h"
+extern GeanyFunctions *geany_functions;
+extern GeanyPlugin *geany_plugin;
+
+#include "dconfig.h"
+#include "breakpoint.h"
+#include "debug.h"
+#include "watch_model.h"
+#include "wtree.h"
+#include "breakpoints.h"
+#include "tpage.h"
+
+#define CONFIG_NAME ".debugger"
+
+/* config file markers */
+#define ENVIRONMENT_MARKER "[ENV]"
+#define BREAKPOINTS_MARKER "[BREAK]"
+#define WATCH_MARKER "[WATCH]"
+
+/* maximus config file line length */
+#define MAXLINE 1000
+
+static gchar *target = NULL;
+static int module = -1;
+static gchar *args = NULL;
+static GList *env = NULL;
+static GList *breaks = NULL;
+static GList *watches = NULL;
+
+/*
+ * reads line from a file
+ */
+int readline(FILE *file, gchar *buffer, int buffersize)
+{
+ gchar c;
+ int read = 0;
+ while (buffersize && fread(&c, 1, 1, file) && '\n' != c)
+ {
+ buffer[read++] = c;
+ buffersize--;
+ }
+ buffer[read] = '\0';
+
+ return read;
+}
+
+/*
+ * checks whether a config fileis founs in the folder
+ */
+gboolean dconfig_is_found_at(gchar *folder)
+{
+ gchar *config = g_build_path(G_DIR_SEPARATOR_S, folder, CONFIG_NAME, NULL);
+ gboolean res = g_file_test(config, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR);
+ g_free(config);
+
+ return res;
+}
+
+/*
+ * loads config from a folder
+ */
+gboolean dconfig_load(gchar *folder)
+{
+ dconfig_clear();
+
+ gchar *path = g_build_path(G_DIR_SEPARATOR_S, folder, CONFIG_NAME, NULL);
+ FILE *file = fopen(path, "r");
+ if (!file)
+ {
+ return FALSE;
+ }
+
+ /* target */
+ gchar buffer[FILENAME_MAX];
+ if(!readline(file, buffer, FILENAME_MAX - 1))
+ {
+ memset(target, 0, FILENAME_MAX * sizeof(gchar));
+ }
+ target = g_strdup(buffer);
+
+ /* debugger */
+ gchar debugger[FILENAME_MAX];
+ if(readline(file, debugger, FILENAME_MAX - 1))
+ {
+ module = debug_get_module_index(debugger);
+ if (-1 == module)
+ {
+ module = 0;
+ }
+ }
+
+ /* arguments */
+ if(!readline(file, buffer, FILENAME_MAX - 1))
+ {
+ memset(buffer, 0, FILENAME_MAX * sizeof(gchar));
+ }
+ args = g_strdup(buffer);
+
+ /* breakpoints and environment variables */
+ gchar line[MAXLINE];
+ while (readline(file, line, MAXLINE))
+ {
+ if (!strcmp(line, BREAKPOINTS_MARKER))
+ {
+ /* file */
+ gchar _path[FILENAME_MAX];
+ readline(file, _path, MAXLINE);
+
+ /* line */
+ int nline;
+ readline(file, line, MAXLINE);
+ sscanf(line, "%i", &nline);
+
+ /* hitscount */
+ int hitscount;
+ readline(file, line, MAXLINE);
+ sscanf(line, "%d", &hitscount);
+
+ /* condition */
+ gchar condition[MAXLINE];
+ readline(file, condition, MAXLINE);
+
+ /* enabled */
+ gboolean enabled;
+ readline(file, line, MAXLINE);
+ sscanf(line, "%d", &enabled);
+
+ /* check whether file is available */
+ struct stat st;
+ if(!stat(_path, &st))
+ {
+ breakpoint *bp = break_new_full(_path, nline, condition, enabled, hitscount);
+ breaks = g_list_append(breaks, bp);
+ }
+ }
+ else if (!strcmp(line, ENVIRONMENT_MARKER))
+ {
+ gchar name[MAXLINE], value[1000];
+ if(readline(file, name, MAXLINE) && readline(file, value, MAXLINE))
+ {
+ env = g_list_append(env, name);
+ env = g_list_append(env, value);
+ }
+ }
+ else if (!strcmp(line, WATCH_MARKER))
+ {
+ gchar watch[MAXLINE];
+ if(readline(file, watch, MAXLINE))
+ {
+ watches = g_list_append(watches, g_strdup(watch));
+ }
+ }
+ }
+
+ return TRUE;
+}
+
+/*
+ * saves config to a folder
+ */
+gboolean dconfig_save(gchar *folder)
+{
+ /* open config file */
+ gchar *config_file = g_build_path(G_DIR_SEPARATOR_S, folder, CONFIG_NAME, NULL);
+
+ FILE *config = fopen(config_file, "w");
+ if (config)
+ {
+ /* get target */
+ const gchar *_target = tpage_get_target();
+ fprintf(config, "%s\n", _target);
+
+ /* debugger type */
+ gchar *debugger = tpage_get_debugger();
+ fprintf(config, "%s\n", debugger);
+
+ /* get command line arguments */
+ gchar *_args = tpage_get_commandline();
+ fprintf(config, "%s\n", _args);
+ g_free(_args);
+
+ /* environment */
+ GList *_env = tpage_get_environment();
+ GList *iter = _env;
+
+ while(iter)
+ {
+ gchar *name = (gchar*)iter->data;
+ iter = iter->next;
+ gchar *value = (gchar*)iter->data;
+
+ fprintf(config, "%s\n", ENVIRONMENT_MARKER);
+ fprintf(config, "%s\n%s\n", name, value);
+
+ iter = iter->next;
+ }
+
+ /* breakpoints */
+ GList *_breaks = breaks_get_all();
+ GList *biter = _breaks;
+ while (biter)
+ {
+ breakpoint *bp = (breakpoint*)biter->data;
+
+ fprintf(config, "%s\n", BREAKPOINTS_MARKER);
+ fprintf(config, "%s\n%i\n%i\n%s\n%i\n",
+ bp->file, bp->line, bp->hitscount, bp->condition, bp->enabled);
+
+ biter = biter->next;
+ }
+ g_list_free(_breaks);
+ _breaks = NULL;
+
+ /* watches */
+ GList *cur_watches = wtree_get_watches();
+ biter = cur_watches;
+ while (biter)
+ {
+ gchar *watch = (gchar*)biter->data;
+
+ fprintf(config, "%s\n", WATCH_MARKER);
+ fprintf(config, "%s\n", watch);
+
+ biter = biter->next;
+ }
+ g_list_foreach(cur_watches, (GFunc)g_free, NULL);
+ g_list_free(cur_watches);
+ cur_watches = NULL;
+
+ fclose(config);
+ }
+
+ g_free(config_file);
+
+ return (gboolean)config;
+}
+
+/*
+ * gets target
+ */
+gchar* dconfig_target_get()
+{
+ return target;
+}
+
+/*
+ * sets target
+ */
+void dconfig_target_set(gchar *newvalue)
+{
+ if (target)
+ {
+ g_free(target);
+ }
+ target = newvalue;
+}
+
+/*
+ * gets debugger module index
+ */
+int dconfig_module_get()
+{
+ return module;
+}
+
+/*
+ * sets debugger module index
+ */
+void dconfig_module_set(int newvalue)
+{
+ module = newvalue;
+}
+
+/*
+ * gets command line arguments
+ */
+gchar* dconfig_args_get()
+{
+ return args;
+}
+
+/*
+ * sets command line arguments
+ */
+void dconfig_args_set(gchar *newvalue)
+{
+ if (args)
+ {
+ g_free(args);
+ }
+ args = newvalue;
+}
+
+/*
+ * gets environment variables
+ */
+GList* dconfig_env_get()
+{
+ return env;
+}
+
+/*
+ * removes all environment variables
+ */
+void dconfig_env_clear()
+{
+ g_list_foreach(env, (GFunc)g_free, NULL);
+ g_list_free(env);
+ env = NULL;
+}
+
+/*
+ * gets breakpoints
+ */
+GList* dconfig_breaks_get()
+{
+ return breaks;
+}
+
+/*
+ * clears breakpoints
+ */
+void dconfig_breaks_clear()
+{
+ g_list_foreach(breaks, (GFunc)g_free, NULL);
+ g_list_free(breaks);
+ breaks = NULL;
+}
+
+/*
+ * gets watches
+ */
+GList* dconfig_watches_get()
+{
+ return watches;
+}
+
+/*
+ * clears watches
+ */
+void dconfig_watches_clear()
+{
+ g_list_foreach(watches, (GFunc)g_free, NULL);
+ g_list_free(watches);
+ watches = NULL;
+}
+
+/*
+ * clears all config values
+ */
+void dconfig_clear()
+{
+ dconfig_target_set(NULL);
+ dconfig_module_set(0);
+ dconfig_args_set(NULL);
+ dconfig_env_clear();
+
+ dconfig_breaks_clear();
+ dconfig_watches_clear();
+}
Added: trunk/geany-plugins/debugger/src/dconfig.h
===================================================================
--- trunk/geany-plugins/debugger/src/dconfig.h (rev 0)
+++ trunk/geany-plugins/debugger/src/dconfig.h 2011-08-22 00:10:59 UTC (rev 2160)
@@ -0,0 +1,34 @@
+/*
+ * dconfig.h
+ *
+ * Copyright 2010 Alexander Petukhov <Alexander(dot)Petukhov(at)mail(dot)ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+gboolean dconfig_is_found_at(gchar *folder);
+gboolean dconfig_load(gchar *folder);
+gboolean dconfig_save(gchar *folder);
+void dconfig_clear();
+
+gchar* dconfig_target_get();
+int dconfig_module_get();
+gchar* dconfig_args_get();
+GList* dconfig_env_get();
+GList* dconfig_breaks_get();
+GList* dconfig_watches_get();
+
+
Modified: trunk/geany-plugins/debugger/src/debug.c
===================================================================
--- trunk/geany-plugins/debugger/src/debug.c 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/src/debug.c 2011-08-22 00:10:59 UTC (rev 2160)
@@ -30,7 +30,11 @@
*/
#include <stdio.h>
+
#include <stdlib.h>
+int unlockpt(int fildes);
+int grantpt(int fd);
+
#include <string.h>
#include <unistd.h>
#include <pty.h>
@@ -53,6 +57,8 @@
#include "ltree.h"
#include "tpage.h"
#include "calltip.h"
+#include "bptree.h"
+#include "btnpanel.h"
/*
* calltip size
@@ -62,7 +68,7 @@
/* module description structure (name/module pointer) */
typedef struct _module_description {
- gchar *title;
+ const gchar *title;
dbg_module *module;
} module_description;
@@ -92,6 +98,11 @@
*/
gboolean exit_pending = FALSE;
+/* flag to set when debug restart is requested while debugger is running.
+ * Then this flag is set to TRUE, and debug_request_interrupt function is called
+ */
+gboolean restart_pending = FALSE;
+
/* debug terminal PTY master/slave file descriptors */
int pty_master, pty_slave;
@@ -200,8 +211,8 @@
{
/* get iterator to the changed row */
GtkTreeIter iter;
- GtkTreePath *tree_path = gtk_tree_path_new_from_string (path);
- gboolean res = gtk_tree_model_get_iter (
+ GtkTreePath *tree_path = gtk_tree_path_new_from_string (path);
+ gtk_tree_model_get_iter (
gtk_tree_view_get_model(GTK_TREE_VIEW(wtree)),
&iter,
tree_path);
@@ -257,11 +268,11 @@
/* if new watch has been added - set selection to the new created row */
if (is_empty_row)
{
- GtkTreePath *path = gtk_tree_model_get_path(wmodel, &newiter);
+ GtkTreePath *_path = gtk_tree_model_get_path(wmodel, &newiter);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(wtree));
gtk_tree_selection_unselect_all(selection);
- gtk_tree_selection_select_path(selection, path);
- gtk_tree_path_free(path);
+ gtk_tree_selection_select_path(selection, _path);
+ gtk_tree_path_free(_path);
}
}
@@ -276,7 +287,7 @@
* text has been dragged into the watch tree view
*/
static void on_watch_dragged_callback(GtkWidget *wgt, GdkDragContext *context, int x, int y,
- GtkSelectionData *seldata, guint info, guint time,
+ GtkSelectionData *seldata, guint info, guint _time,
gpointer userdata)
{
/* string that is dragged */
@@ -582,6 +593,9 @@
/* disable widgets */
enable_sensitive_widgets(FALSE);
+
+ /* update buttons panel state */
+ btnpanel_set_debug_state(debug_state);
}
@@ -593,6 +607,12 @@
/* update debug state */
debug_state = DBS_STOPPED;
+ /* update buttons panel state */
+ if (!interrupt_data)
+ {
+ btnpanel_set_debug_state(debug_state);
+ }
+
/* clear calltips cache */
g_hash_table_remove_all(calltips);
@@ -604,6 +624,15 @@
exit_pending = FALSE;
return;
}
+
+ /* if the stop was requested for asyncronous exitig -
+ * stop debug module and exit */
+ if (restart_pending)
+ {
+ active_module->restart();
+ restart_pending = FALSE;
+ return;
+ }
/* check for async activities pending */
if (interrupt_data)
@@ -770,12 +799,15 @@
/* update debug state */
debug_state = DBS_IDLE;
+
+ /* update buttons panel state */
+ btnpanel_set_debug_state(debug_state);
}
/*
* called from debugger module to show a message in debugger messages pane
*/
-static void on_debugger_message (gchar* message, gchar *color)
+static void on_debugger_message (const gchar* message, const gchar *color)
{
gchar *msg = g_strdup_printf("%s\n", message);
@@ -791,6 +823,18 @@
}
/*
+ * called from debugger module to clear messages tab
+ */
+static void on_debugger_messages_clear ()
+{
+ /* clear debug messages window */
+ GtkTextIter start, end;
+ GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(debugger_messages_textview));
+ gtk_text_buffer_get_bounds(buffer, &start, &end);
+ gtk_text_buffer_delete(buffer, &start, &end);
+}
+
+/*
* called from debugger module to show an error message box
*/
static void on_debugger_error (gchar* message)
@@ -804,6 +848,7 @@
on_debugger_stopped,
on_debugger_exited,
on_debugger_message,
+ on_debugger_messages_clear,
on_debugger_error,
};
@@ -881,9 +926,9 @@
vte_terminal_set_pty(VTE_TERMINAL(terminal), pty_master);
GtkWidget *scrollbar = gtk_vscrollbar_new(GTK_ADJUSTMENT(VTE_TERMINAL(terminal)->adjustment));
GTK_WIDGET_UNSET_FLAGS(scrollbar, GTK_CAN_FOCUS);
- GtkWidget *frame = gtk_frame_new(NULL);
+ GtkWidget *_frame = gtk_frame_new(NULL);
GtkWidget *hbox = gtk_hbox_new(FALSE, 0);
- gtk_container_add(GTK_CONTAINER(frame), hbox);
+ gtk_container_add(GTK_CONTAINER(_frame), hbox);
gtk_box_pack_start(GTK_BOX(hbox), terminal, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(hbox), scrollbar, FALSE, FALSE, 0);
/* set the default widget size first to prevent VTE expanding too much,
@@ -897,7 +942,7 @@
gchar *font = utils_get_setting_string(config, "VTE", "font", "Monospace 10");
vte_terminal_set_font_from_string (VTE_TERMINAL(terminal), font);
gtk_notebook_append_page(GTK_NOTEBOOK(debug_notebook),
- frame,
+ _frame,
gtk_label_new(_("Debug terminal")));
/* debug messages page */
@@ -971,12 +1016,12 @@
*/
int debug_get_module_index(gchar *modulename)
{
- int index = 0;
- while (modules[index].title)
+ int _index = 0;
+ while (modules[_index].title)
{
- if (!strcmp(modules[index].title, modulename))
- return index;
- index++;
+ if (!strcmp(modules[_index].title, modulename))
+ return _index;
+ _index++;
}
return -1;
@@ -991,7 +1036,7 @@
module_description *desc = modules;
while (desc->title)
{
- mods = g_list_append(mods, desc->title);
+ mods = g_list_append(mods, (gpointer)desc->title);
desc++;
}
@@ -1097,6 +1142,25 @@
}
/*
+ * restarts debug process
+ */
+void debug_restart()
+{
+ if (DBS_STOPPED == debug_state)
+ {
+ /* stop instantly if not running */
+ active_module->restart();
+ debug_state = DBS_RUN_REQUESTED;
+ }
+ else if (DBS_IDLE != debug_state)
+ {
+ /* if running - request interrupt */
+ restart_pending = TRUE;
+ active_module->request_interrupt();
+ }
+}
+
+/*
* stops debug process
*/
void debug_stop()
Modified: trunk/geany-plugins/debugger/src/debug.h
===================================================================
--- trunk/geany-plugins/debugger/src/debug.h 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/src/debug.h 2011-08-22 00:10:59 UTC (rev 2160)
@@ -56,4 +56,5 @@
void debug_on_file_open(GeanyDocument *doc);
gchar* debug_get_calltip_for_expression(gchar* expression);
GList* debug_get_stack();
+void debug_restart();
Modified: trunk/geany-plugins/debugger/src/debug_module.c
===================================================================
--- trunk/geany-plugins/debugger/src/debug_module.c 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/src/debug_module.c 2011-08-22 00:10:59 UTC (rev 2160)
@@ -64,7 +64,7 @@
}
/* reset all variable fields (except name) */
-variable *variable_reset(variable *var)
+void variable_reset(variable *var)
{
g_string_assign(var->internal, "");
g_string_assign(var->type, "");
Modified: trunk/geany-plugins/debugger/src/debug_module.h
===================================================================
--- trunk/geany-plugins/debugger/src/debug_module.h 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/src/debug_module.h 2011-08-22 00:10:59 UTC (rev 2160)
@@ -24,7 +24,8 @@
void (*set_run) ();
void (*set_stopped) ();
void (*set_exited) (int code);
- void (*send_message) (gchar* message, gchar *color);
+ void (*send_message) (const gchar* message, const gchar *color);
+ void (*clear_messages) ();
void (*report_error) (gchar* message);
} dbg_callbacks;
@@ -77,6 +78,7 @@
gboolean (*init) (dbg_callbacks* callbacks);
gboolean (*load) (char* file, char* commandline, GList* env, GList *witer);
void (*run) (char* terminal_device);
+ void (*restart) ();
void (*stop) ();
void (*resume) ();
void (*step_over) ();
@@ -111,6 +113,7 @@
init, \
load, \
run, \
+ restart, \
stop, \
resume, \
step_over, \
@@ -131,8 +134,8 @@
error_message, \
MODULE_FEATURES }
-void variable_free(variable *var);
+void variable_free(variable *var);
variable* variable_new(gchar *name);
variable* variable_new2(gchar *name, gchar *internal);
-variable* variable_reset(variable *var);
+void variable_reset(variable *var);
Added: trunk/geany-plugins/debugger/src/gui.c
===================================================================
--- trunk/geany-plugins/debugger/src/gui.c (rev 0)
+++ trunk/geany-plugins/debugger/src/gui.c 2011-08-22 00:10:59 UTC (rev 2160)
@@ -0,0 +1,92 @@
+/*
+ * gui.c
+ *
+ * Copyright 2010 Alexander Petukhov <Alexander(dot)Petukhov(at)mail(dot)ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+/*
+ * function for creating GUI elements
+ */
+
+#include <gtk/gtk.h>
+
+/*
+ * creates a button with an icon from file and a tooltip
+ */
+GtkWidget* create_button(const gchar *icon, const gchar *tooltip)
+{
+ GtkWidget *btn = gtk_button_new();
+
+ gchar *path = g_build_path(G_DIR_SEPARATOR_S, DBGPLUG_DATA_DIR, icon, NULL);
+ GtkWidget *image = gtk_image_new_from_file(path);
+ g_free(path);
+
+ gtk_widget_show(image);
+ gtk_button_set_image(GTK_BUTTON(btn), image);
+
+ gtk_widget_set_tooltip_text(btn, tooltip);
+
+ return btn;
+}
+
+/*
+ * creates a button with a stock icon and a tooltip
+ */
+GtkWidget* create_stock_button(const gchar *stockid, const gchar *tooltip)
+{
+ GtkWidget *btn = gtk_button_new();
+ GtkWidget *image = gtk_image_new_from_stock (stockid, GTK_ICON_SIZE_MENU);
+ gtk_widget_show(image);
+ gtk_button_set_image(GTK_BUTTON(btn), image);
+
+ gtk_widget_set_tooltip_text(btn, tooltip);
+
+ return btn;
+}
+
+/*
+ * creates a toggle button with an icon from file and a tooltip
+ */
+GtkWidget* create_toggle_button(const gchar *icon, const gchar *tooltip)
+{
+ GtkWidget *btn = gtk_toggle_button_new();
+
+ gchar *path = g_build_path(G_DIR_SEPARATOR_S, DBGPLUG_DATA_DIR, icon, NULL);
+ GtkWidget *image = gtk_image_new_from_file(path);
+ g_free(path);
+
+ gtk_widget_show(image);
+ gtk_button_set_image(GTK_BUTTON(btn), image);
+
+ gtk_widget_set_tooltip_text(btn, tooltip);
+
+ return btn;
+}
+
+/*
+ * sets button icon from file
+ */
+void set_button_image(GtkWidget *btn, const gchar *icon)
+{
+ gchar *path = g_build_path(G_DIR_SEPARATOR_S, DBGPLUG_DATA_DIR, icon, NULL);
+ GtkWidget *image = gtk_image_new_from_file(path);
+ g_free(path);
+
+ gtk_widget_show(image);
+ gtk_button_set_image(GTK_BUTTON(btn), image);
+}
Added: trunk/geany-plugins/debugger/src/gui.h
===================================================================
--- trunk/geany-plugins/debugger/src/gui.h (rev 0)
+++ trunk/geany-plugins/debugger/src/gui.h 2011-08-22 00:10:59 UTC (rev 2160)
@@ -0,0 +1,26 @@
+/*
+ * gui.c
+ *
+ * Copyright 2010 Alexander Petukhov <Alexander(dot)Petukhov(at)mail(dot)ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+GtkWidget* create_button(const gchar *icon, const gchar *tooltip);
+GtkWidget* create_stock_button(const gchar *stockid, const gchar *tooltip);
+GtkWidget* create_toggle_button(const gchar *stockid, const gchar *tooltip);
+
+void set_button_image(GtkWidget *btn, const gchar *icon);
Modified: trunk/geany-plugins/debugger/src/keys.c
===================================================================
--- trunk/geany-plugins/debugger/src/keys.c 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/src/keys.c 2011-08-22 00:10:59 UTC (rev 2160)
@@ -44,6 +44,7 @@
keyinfo keys[] = {
{ "key_debug_run", "Run / Continue", KEY_RUN},
{ "key_debug_stop", "Stop", KEY_STOP},
+ { "key_debug_restart", "Restart", KEY_RESTART},
{ "key_debug_step_into", "Step into", KEY_STEP_INTO},
{ "key_debug_step_over", "Step over", KEY_STEP_OVER},
{ "key_debug_step_out", "Step out", KEY_STEP_OUT},
@@ -71,19 +72,19 @@
keys_callback);
/* add keys */
- int index = 0;
- while (keys[index].key_name)
+ int _index = 0;
+ while (keys[_index].key_name)
{
keybindings_set_item(
key_group,
- keys[index].key_id,
+ keys[_index].key_id,
NULL,
0,
0,
- keys[index].key_name,
- _(keys[index].key_label),
+ keys[_index].key_name,
+ _(keys[_index].key_label),
NULL);
- index++;
+ _index++;
}
return 1;
Modified: trunk/geany-plugins/debugger/src/keys.h
===================================================================
--- trunk/geany-plugins/debugger/src/keys.h 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/src/keys.h 2011-08-22 00:10:59 UTC (rev 2160)
@@ -24,6 +24,7 @@
{
KEY_RUN,
KEY_STOP,
+ KEY_RESTART,
KEY_STEP_OVER,
KEY_STEP_INTO,
KEY_STEP_OUT,
Modified: trunk/geany-plugins/debugger/src/markers.c
===================================================================
--- trunk/geany-plugins/debugger/src/markers.c 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/src/markers.c 2011-08-22 00:10:59 UTC (rev 2160)
@@ -34,8 +34,8 @@
#include "xpm/breakpoint_disabled.xpm"
#include "xpm/breakpoint_condition.xpm"
-#include "xpm/arrow_1_disable.xpm"
-#include "xpm/arrow_1_yellow.xpm"
+#include "xpm/frame.xpm"
+#include "xpm/frame_current.xpm"
/* markers identifiers */
#define M_FIRST 12
@@ -84,10 +84,10 @@
scintilla_send_message(sci, SCI_MARKERSETALPHA, M_CI_BACKGROUND, 75);
/* currect instruction arrow */
- scintilla_send_message(sci, SCI_MARKERDEFINEPIXMAP, M_CI_ARROW, (long)arrow_1_yellow_xpm);
+ scintilla_send_message(sci, SCI_MARKERDEFINEPIXMAP, M_CI_ARROW, (long)frame_current_xpm);
/* frame marker current */
- scintilla_send_message(sci, SCI_MARKERDEFINEPIXMAP, M_FRAME, (long)arrow_1_disable_xpm);
+ scintilla_send_message(sci, SCI_MARKERDEFINEPIXMAP, M_FRAME, (long)frame_xpm);
}
/*
Modified: trunk/geany-plugins/debugger/src/plugin.c
===================================================================
--- trunk/geany-plugins/debugger/src/plugin.c 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/src/plugin.c 2011-08-22 00:10:59 UTC (rev 2160)
@@ -34,6 +34,9 @@
#include "debug.h"
#include "tpage.h"
#include "utils.h"
+#include "btnpanel.h"
+#include "keys.h"
+#include "dconfig.h"
/* These items are set by Geany before plugin_init() is called. */
GeanyPlugin *geany_plugin;
@@ -53,7 +56,7 @@
"Alexander Petukhov <devel at apetukhov.ru>")
/* vbox for keeping breaks/stack/watch notebook */
-static GtkWidget *vbox = NULL;
+static GtkWidget *hbox = NULL;
PluginCallback plugin_callbacks[] =
{
@@ -76,25 +79,27 @@
{
main_locale_init(LOCALEDIR, GETTEXT_PACKAGE);
+ keys_init();
+
/* main box */
- vbox = gtk_vbox_new(1, 0);
+ hbox = gtk_hbox_new(FALSE, 0);
GtkWidget *debug_notebook = gtk_notebook_new ();
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(debug_notebook), GTK_POS_TOP);
- keys_init();
-
/* add target page */
tpage_init();
gtk_notebook_append_page(GTK_NOTEBOOK(debug_notebook),
tpage_get_widget(),
gtk_label_new(_("Target")));
+ gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(debug_notebook), tpage_get_widget(), TRUE);
/* init brekpoints */
breaks_init(editor_open_position);
gtk_notebook_append_page(GTK_NOTEBOOK(debug_notebook),
breaks_get_widget(),
gtk_label_new(_("Breakpoints")));
+ gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(debug_notebook), breaks_get_widget(), TRUE);
/* init markers */
markers_init();
@@ -103,18 +108,18 @@
debug_init(debug_notebook);
gtk_widget_show_all(debug_notebook);
+
+ GtkWidget* vbox = btnpanel_create();
+
+ gtk_box_pack_start(GTK_BOX(hbox), debug_notebook, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), debug_notebook, 1, 1, 0);
- gtk_widget_show_all(vbox);
+ gtk_widget_show_all(hbox);
gtk_notebook_append_page(
GTK_NOTEBOOK(geany->main_widgets->message_window_notebook),
- vbox,
+ hbox,
gtk_label_new(_("Debug")));
-
- /* if we have config in current path - load it */
- if (tpage_have_config())
- tpage_load_config();
}
@@ -127,7 +132,7 @@
GtkWidget *plugin_configure(GtkDialog *dialog)
{
/* configuration dialog */
- vbox = gtk_vbox_new(FALSE, 6);
+ GtkWidget *vbox = gtk_vbox_new(FALSE, 6);
gtk_widget_show_all(vbox);
return vbox;
@@ -153,6 +158,9 @@
/* destroy breaks */
breaks_destroy();
+ /* clears config */
+ dconfig_clear();
+
/* release other allocated strings and objects */
- gtk_widget_destroy(vbox);
+ gtk_widget_destroy(hbox);
}
Modified: trunk/geany-plugins/debugger/src/stree.c
===================================================================
--- trunk/geany-plugins/debugger/src/stree.c 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/src/stree.c 2011-08-22 00:10:59 UTC (rev 2160)
@@ -79,7 +79,7 @@
GtkTreePath *path = (GtkTreePath*)rows->data;
GtkTreeIter iter;
- gboolean res = gtk_tree_model_get_iter (
+ gtk_tree_model_get_iter (
gtk_tree_view_get_model(GTK_TREE_VIEW(tree)),
&iter,
path);
Modified: trunk/geany-plugins/debugger/src/tpage.c
===================================================================
--- trunk/geany-plugins/debugger/src/tpage.c 2011-08-20 15:05:19 UTC (rev 2159)
+++ trunk/geany-plugins/debugger/src/tpage.c 2011-08-22 00:10:59 UTC (rev 2160)
@@ -39,23 +39,14 @@
#include "watch_model.h"
#include "wtree.h"
#include "debug.h"
+#include "dconfig.h"
+#include "tpage.h"
/* boxes margins */
#define SPACING 5
-/* config file name */
-#define CONFIG_NAME ".debugger"
-
-/* config file markers */
-#define ENVIRONMENT_MARKER "[ENV]"
-#define BREAKPOINTS_MARKER "[BREAK]"
-#define WATCH_MARKER "[WATCH]"
-
-/* maximus config file line length */
-#define MAXLINE 1000
-
/* environment variables tree view columns minumum width in characters */
-#define MW_NAME 15
+#define MW_NAME 15
#define MW_VALUE 0
/* environment variables tree view columns */
@@ -72,9 +63,6 @@
/* flag shows we entered new env variable name and now entering its value */
gboolean entering_new_var = FALSE;
-/* holds config file path for the currently open folder */
-gchar current_path[FILENAME_MAX];
-
/* reference to the env tree view empty row */
static GtkTreeRowReference *empty_row = NULL;
@@ -100,11 +88,6 @@
/* debugger messages text view */
GtkWidget *textview = NULL;
-/* config manipulating buttons */
-GtkWidget *savebtn = NULL;
-GtkWidget *loadbtn = NULL;
-GtkWidget *clearbtn = NULL;
-
/* env variable name cloumn */
GtkTreeViewColumn *column_name = NULL;
GtkCellRenderer *renderer_name = NULL;
@@ -268,7 +251,7 @@
gboolean empty = !gtk_tree_path_compare(tree_path, gtk_tree_row_reference_get_path(empty_row));
- gboolean res = gtk_tree_model_get_iter (
+ gtk_tree_model_get_iter (
model,
&iter,
tree_path);
@@ -366,7 +349,7 @@
gboolean empty = !gtk_tree_path_compare(tree_path, gtk_tree_row_reference_get_path(empty_row));
- gboolean res = gtk_tree_model_get_iter (
+ gtk_tree_model_get_iter (
model,
&iter,
tree_path);
@@ -405,234 +388,39 @@
g_free(striped);
}
-/*
- * save config
- */
-void on_save_config(GtkButton *button, gpointer user_data)
+void tpage_read_config()
{
- /* open config file */
- FILE *config = fopen(current_path, "w");
-
- /* get target */
- const gchar *target = gtk_entry_get_text(GTK_ENTRY(targetname));
- fprintf(config, "%s\n", target);
-
- /* debugger type */
- gchar *debugger = gtk_combo_box_get_active_text(GTK_COMBO_BOX(cmb_debugger));
- fprintf(config, "%s\n", debugger);
-
- /* get command line arguments */
- GtkTextIter start, end;
- GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
-
- gtk_text_buffer_get_start_iter(buffer, &start);
- gtk_text_buffer_get_end_iter(buffer, &end);
-
- gchar *args = gtk_text_buffer_get_text(buffer, &start, &end, FALSE);
- gchar** lines = g_strsplit(args, "\n", 0);
- g_free(args);
- args = g_strjoinv(" ", lines);
- g_strfreev(lines);
- fprintf(config, "%s\n", args);
- g_free(args);
+ /* remove old values */
+ tpage_clear();
- /* environment */
- GtkTreeIter iter;
- GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(envtree));
- gtk_tree_model_get_iter_first(model, &iter);
- do
- {
- gchar *name, *value;
- gtk_tree_model_get (
- model,
- &iter,
- NAME, &name,
- VALUE, &value,
- -1);
- if (strlen(name))
- {
- fprintf(config, "%s\n", ENVIRONMENT_MARKER);
- fprintf(config, "%s\n%s\n", name, value);
- }
-
- g_free(name);
- g_free(value);
- }
- while (gtk_tree_model_iter_next(model, &iter));
-
- /* breakpoints */
- GList *breaks = breaks_get_all();
- GList *biter = breaks;
- while (biter)
- {
- breakpoint *bp = (breakpoint*)biter->data;
-
- fprintf(config, "%s\n", BREAKPOINTS_MARKER);
- fprintf(config, "%s\n%i\n%i\n%s\n%i\n",
- bp->file, bp->line, bp->hitscount, bp->condition, bp->enabled);
-
- biter = biter->next;
- }
- g_list_free(breaks);
- breaks = NULL;
-
- /* watches */
- GList *watches = wtree_get_watches();
- biter = watches;
- while (biter)
- {
- gchar *watch = (gchar*)biter->data;
-
- fprintf(config, "%s\n", WATCH_MARKER);
- fprintf(config, "%s\n", watch);
-
- biter = biter->next;
- }
- g_list_foreach(watches, (GFunc)g_free, NULL);
- g_list_free(watches);
- watches = NULL;
-
-
- fclose(config);
-
- dialogs_show_msgbox(GTK_MESSAGE_INFO, _("Config saved successfully"));
-}
-
-/*
- * reads line from a file
- */
-int readline(FILE *file, gchar *buffer, int buffersize)
-{
- gchar c;
- int read = 0;
- while (buffersize && fread(&c, 1, 1, file) && '\n' != c)
- {
- buffer[read++] = c;
- buffersize--;
- }
- buffer[read] = '\0';
-
- return read;
-}
-
-/*
- * load config file
- */
-void on_load_config(GtkButton *button, gpointer user_data)
-{
- FILE *config = fopen(current_path, "r");
- if (!config)
- dialogs_show_msgbox(GTK_MESSAGE_ERROR, _("Error reading config file"));
-
/* target */
- gchar target[FILENAME_MAX];
- readline(config, target, FILENAME_MAX - 1);
- gtk_entry_set_text(GTK_ENTRY(targetname), target);
-
+ gtk_entry_set_text(GTK_ENTRY(targetname), dconfig_target_get());
+
/* debugger */
- gchar debugger[FILENAME_MAX];
- readline(config, debugger, FILENAME_MAX - 1);
- int index = debug_get_module_index(debugger);
- if (-1 == index)
- {
- dialogs_show_msgbox(GTK_MESSAGE_ERROR, _("Configuration error: debugger module \'%s\' is not found"), debugger);
- gtk_combo_box_set_active(GTK_COMBO_BOX(cmb_debugger), 0);
- }
- else
- gtk_combo_box_set_active(GTK_COMBO_BOX(cmb_debugger), index);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(cmb_debugger), dconfig_module_get());
/* arguments */
- gchar arguments[FILENAME_MAX];
- readline(config, arguments, FILENAME_MAX - 1);
GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
- gtk_text_buffer_set_text(buffer, arguments, -1);
+ gtk_text_buffer_set_text(buffer, dconfig_args_get(), -1);
- /* breakpoints and environment variables */
- breaks_remove_all();
- wtree_remove_all();
-
- gboolean wrongbreaks = FALSE;
- gchar line[MAXLINE];
- gtk_list_store_clear(store);
- while (readline(config, line, MAXLINE))
+ /* environment */
+ GList *env = dconfig_env_get();
+ while (env)
{
- if (!strcmp(line, BREAKPOINTS_MARKER))
- {
- /* file */
- gchar file[FILENAME_MAX];
- readline(config, file, MAXLINE);
-
- /* line */
- int nline;
- readline(config, line, MAXLINE);
- sscanf(line, "%d", &nline);
-
- /* hitscount */
- int hitscount;
- readline(config, line, MAXLINE);
- sscanf(line, "%d", &hitscount);
+ gchar *name = (gchar*)env->data;
+ env = env->next;
+ gchar *value = (gchar*)env->data;
- /* condition */
- gchar condition[MAXLINE];
- readline(config, condition, MAXLINE);
+ GtkTreeIter iter;
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter, NAME, name, VALUE, value, -1);
- /* enabled */
- gboolean enabled;
- readline(config, line, MAXLINE);
- sscanf(line, "%d", &enabled);
-
- /* check whether file is available */
- struct stat st;
- if(!stat(file, &st))
- breaks_add(file, nline, condition, enabled, hitscount);
- else
- wrongbreaks = TRUE;
- }
- else if (!strcmp(line, ENVIRONMENT_MARKER))
- {
- gchar name[MAXLINE], value[1000];
- readline(config, name, MAXLINE);
- readline(config, value, MAXLINE);
-
- GtkTreeIter iter;
- gtk_list_store_append(store, &iter);
-
- gtk_list_store_set(store, &iter, NAME, name, VALUE, value, -1);
- }
- else if (!strcmp(line, WATCH_MARKER))
- {
- gchar watch[MAXLINE];
- readline(config, watch, MAXLINE);
- wtree_add_watch(watch);
- }
- else
- {
- dialogs_show_msgbox(GTK_MESSAGE_ERROR, _("Error reading config file"));
- break;
- }
+ env = env->next;
}
- if (wrongbreaks)
- dialogs_show_msgbox(GTK_MESSAGE_ERROR, _("Some breakpoints can't be set as the files are missed"));
-
- add_empty_row();
-
- fclose(config);
-
- if (user_data)
- dialogs_show_msgbox(GTK_MESSAGE_INFO, _("Config loaded successfully"));
}
-/*
- * clears current configuration
- */
-void on_clear(GtkButton *button, gpointer user_data)
+void tpage_clear()
{
- /* breakpoints */
- breaks_remove_all();
-
- /* watches */
- wtree_remove_all();
-
/* target */
gtk_entry_set_text(GTK_ENTRY(targetname), "");
@@ -646,7 +434,6 @@
/* environment variables */
gtk_list_store_clear(store);
add_empty_row();
-
}
/*
@@ -701,6 +488,14 @@
}
/*
+ * get selected debugger name
+ */
+gchar* tpage_get_debugger()
+{
+ return gtk_combo_box_get_active_text(GTK_COMBO_BOX(cmb_debugger));
+}
+
+/*
* get command line
*/
gchar* tpage_get_commandline()
@@ -728,13 +523,13 @@
GList *env = NULL;
GtkTreeIter iter;
- GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(envtree));
- gtk_tree_model_get_iter_first(model, &iter);
+ GtkTreeModel *_model = gtk_tree_view_get_model(GTK_TREE_VIEW(envtree));
+ gtk_tree_model_get_iter_first(_model, &iter);
do
{
gchar *name, *value;
gtk_tree_model_get (
- model,
+ _model,
&iter,
NAME, &name,
VALUE, &value,
@@ -746,48 +541,12 @@
env = g_list_append(env, value);
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Plugins-Commits
mailing list