[geany/geany-plugins] fd9dbc: Removing sources of geanyGDB from tree

Frank Lanitz git-noreply at geany.org
Thu Nov 15 19:57:40 UTC 2012


Branch:      refs/heads/master
Author:      Frank Lanitz <frank at frank.uvena.de>
Committer:   Frank Lanitz <frank at frank.uvena.de>
Date:        Mon, 17 Sep 2012 14:13:58 UTC
Commit:      fd9dbc8dc1410ad0c71f6ec7659c1b2f22822cbd
             https://github.com/geany/geany-plugins/commit/fd9dbc8dc1410ad0c71f6ec7659c1b2f22822cbd

Log Message:
-----------
Removing sources of geanyGDB from tree


Modified Paths:
--------------
    build/geanygdb.m4
    geanygdb/AUTHORS
    geanygdb/COPYING
    geanygdb/ChangeLog
    geanygdb/INSTALL
    geanygdb/Makefile.am
    geanygdb/NEWS
    geanygdb/README
    geanygdb/THANKS
    geanygdb/TODO
    geanygdb/doc/geany.css
    geanygdb/src/Makefile.am
    geanygdb/src/gdb-io-break.c
    geanygdb/src/gdb-io-envir.c
    geanygdb/src/gdb-io-frame.c
    geanygdb/src/gdb-io-priv.h
    geanygdb/src/gdb-io-read.c
    geanygdb/src/gdb-io-run.c
    geanygdb/src/gdb-io-stack.c
    geanygdb/src/gdb-io.h
    geanygdb/src/gdb-lex.c
    geanygdb/src/gdb-lex.h
    geanygdb/src/gdb-ui-break.c
    geanygdb/src/gdb-ui-envir.c
    geanygdb/src/gdb-ui-frame.c
    geanygdb/src/gdb-ui-locn.c
    geanygdb/src/gdb-ui-main.c
    geanygdb/src/gdb-ui.h
    geanygdb/src/geanygdb.c
    geanygdb/src/ttyhelper.c
    geanygdb/tests/Makefile.am
    geanygdb/tests/unittests.c
    geanygdb/wscript_build
    geanygdb/wscript_configure

Modified: build/geanygdb.m4
12 files changed, 0 insertions(+), 12 deletions(-)
===================================================================
@@ -1,12 +0,0 @@
-AC_DEFUN([GP_CHECK_GEANYGDB],
-[
-    GP_ARG_DISABLE([GeanyGDB], [no])
-    GP_STATUS_PLUGIN_ADD([GeanyGDB], [$enable_geanygdb])
-    AC_CHECK_HEADERS([elf.h])
-    AC_CHECK_HEADERS([elf_abi.h])
-    AC_CONFIG_FILES([
-        geanygdb/Makefile
-        geanygdb/src/Makefile
-        geanygdb/tests/Makefile
-    ])
-])


Modified: geanygdb/AUTHORS
3 files changed, 0 insertions(+), 3 deletions(-)
===================================================================
@@ -1,3 +0,0 @@
-Jeff Pohlmeyer <yetanothergeek at gmail.com>
-Dominic Hopf <dmaphy at googlemail.com>
-Thomas Martitz <thomas.martitz at student.htw-berlin.de>


Modified: geanygdb/COPYING
340 files changed, 0 insertions(+), 340 deletions(-)
===================================================================
@@ -1,340 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-	51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    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 St, Fifth Floor, Boston, MA  02110-1301 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year  name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.


Modified: geanygdb/ChangeLog
94 files changed, 0 insertions(+), 94 deletions(-)
===================================================================
@@ -1,94 +0,0 @@
-2010-03-22  Thomas Martitz  <thomas.martitz at student.htw-berlin.de>
-
- * src/gdb-io-run.c: Fix the general geany slowness that geanygdb causes once a binary is loaded.
-
-2010-03-15  Thomas Martitz  <thomas.martitz at student.htw-berlin.de>
-
- * src/gdb-io-run.c, src/gdb-ui-break.c: Run gdb with LANG=C to avoid
-   locale-related clashes when parsing the gdb output for the localized version
-   break- and watchpoints
-
-2010-03-01  Dominic Hopf  <dmaphy at googlemail.com>
-
- * src/gdb-io-run.c, src/gdb-io-read.c: Improve the way a running process gets
-   killed (thanks Thomas Martitz)
-
-
-2010-01-16  Dominic Hopf  <dmaphy at googlemail.com>
-
- * src/gdb-ui-main.c, src/gdb-ui.h, src/geanygdb.c:
-   Add a menu entry for GeanyGDB, add possibility to set keyboard shortcuts, add
-   page in the bottom toolbar which in the future may be used to display the
-   stack and local variables or watches. This changes were all made by Radu
-   Stefan, thanks very much.
-
-
-2010-01-04  Dominic Hopf  <dmaphy at googlemail.com>
-
- * src/geanygdb.c, src/gdb-ui-frame.c, src/gdb-ui-locn.c, src/gdb-io-run.c,
-   src/gdb-io-stack.c, src/gdb-io-read.c, src/gdb-ui.h, src/gdb-io-envir.c,
-   src/gdb-io-break.c, src/gdb-ui-envir.c, src/gdb-ui-main.c,
-   src/gdb-ui-break.c, src/gdb-io-frame.c: Update sources to use more current
-   plugin API functions and fix a widget-not-found-warning.
-
-
-2010-01-02  Dominic Hopf  <dmaphy at googlemail.com>
- * Any file: Update copyright information.
-
-
-2009-12-13  Dominic Hopf  <dmaphy at googlemail.com>
- * geanydebug.c, geanygdb.c, Makefile.am: Finally fix any remaining naming
-   issues, GeanyGDB will show up as "GeanyGDB" now in the plugin manager.
- * INSTALL, README: Remove installation instructions and add hint for
-   Geany-Plugins instead, update wording and notation for GeanyGDB.
-
-
-2009-10-27  Dominic Hopf  <dmaphy at googlemail.com>
- * TODO: Add a TODO file, to note some things to get done for next releases.
-
-
-2009-10-18  Dominic Hopf <dmaphy at googlemail.com>
- * AUTHORS: Add Dominic Hopf to the AUTHORS.
-
-
-2009-09-02  Dominic Hopf  <dmaphy at googlemail.com>
- * src/gdb-ui-main.c: Fix an issue with button labels, where some localizations
-   may caused a stack overflow, remember the last targetpath.
-
-
-2009-05-07  Dominic Hopf  <dmaphy at googlemail.com>
- * Makefile.am: Install ttyhelper and geanydebug.so to /usr/lib/geany/,
-   patch by Chow Loong Jin, thanks!
-
-
-2009-05-04  Dominic Hopf  <dmaphy at googlemail.com>
- * search for a globally installed tty helper in $PREFIX/$LIBDIR/geany/,
-   and fall back to the users config dir if not found. this fixes problems when
-   the plugin is installed to ~/.config/geany/plugins/.
- * configure.in, README: Be consistent with naming issues, name of this plugin
-   is GeanyGDB, unix name is geanygdb.
- * src/geanydebug.c, src/Makefile.am, INSTALL: Rename configuration directory
-   for this plugin from "debugger" to "geanygdb", GeanyGDB will try t
-   automatically rename ~/.config/geany/plugins/debugger/ to
-   ~/.config/geany/plugins/geanygdb/. You are recommended to backup this
-   directory.
-
-
-2009-05-02  Dominic Hopf  <dmaphy at googlemail.com>
- * src/gdb-ui-break.c: Fix a crash when trying to delete breakpoints or
-   watchpoints without selecting one. (thanks to eht16)
-
-
-2009-05-01  Dominic Hopf  <dmaphy at googlemail.com>
- * configure.in: Fix Geany version dependency
-
-
-2009-04-18  Dominic Hopf  <dmaphy at googlemail.com>
- * INSTALL: Add installation instructions for GeanyGDB.
- * README: Remove hint to conflicts with geanylua since there is geanylua 0.7.0
-   (at least in svn) where this issue should have been fixed.
- * src/geanydebug.c: Remove version definition since it is defined by autotools
-   or waf.
- * configure.in: Version bump to 0.0.2.
- * this maintenance release will be compatible with Geany 0.16
- * README, INSTALL: Rewrite Documentation in ReST.


Modified: geanygdb/INSTALL
11 files changed, 0 insertions(+), 11 deletions(-)
===================================================================
@@ -1,11 +0,0 @@
-============
-Installation
-============
-
-
-Please note that this plugin just should work with Geany 0.16 or higher. There
-is no guarantee that it works with versions below 0.16.
-
-GeanyGDB is part of the Geany-Plugins project. Please consider compiling and/or
-installing Geany-Plugins. A separate compilation of GeanyGDB is not supported
-anymore.


Modified: geanygdb/Makefile.am
4 files changed, 0 insertions(+), 4 deletions(-)
===================================================================
@@ -1,4 +0,0 @@
-include $(top_srcdir)/build/vars.auxfiles.mk
-
-SUBDIRS = src tests
-plugin = geanygdb


Modified: geanygdb/NEWS
1 files changed, 0 insertions(+), 1 deletions(-)
===================================================================
@@ -1 +0,0 @@
-See "ChangeLog"


Modified: geanygdb/README
140 files changed, 0 insertions(+), 140 deletions(-)
===================================================================
@@ -1,140 +0,0 @@
-===============
-GeanyGDB Plugin
-===============
-
-.. contents::
-
-
-About
-=====
-
-GeanyGDB is a plugin for Geany which provides integrated debugging support
-within Geany via the GNU Debugger (GDB).
-
-Geany is a small and lightweight integrated development environment using the
-GTK2 toolkit.
-
-The GNU Debugger is a source-level debugger for C, C++, Fortran, Modula 2 and
-Java programs.
-
-It was developed and tested on openSUSE-10.3 with GDB-6.7.50 by Jeff Pohlmeyer.
-Current maintainer is Dominic Hopf, he develops with current Git versions on
-current Fedora systems. Other recent versions of GDB will probably work, but
-operating systems other than Linux-PC will not work, at least not without some
-considerable hacking.
-
-
-Current Version
-===============
-
-GeanyGDB now is part of the Geany-Plugins project. The current version of
-Geany-Plugins is 0.20. The last stable release of GeanyGDB is 0.0.2. You are
-recommended to use the more current versions of GeanyGDB shipped with
-Geany-Plugins.
-
-
-Requirements
-============
-
-If you like to compile Geany-Plugins yourself, you will need the GTK (>= 2.8.0)
-libraries and header files. You will also need its dependency libraries and header
-files, such as Pango, Glib and ATK. All these files are available at
-http://www.gtk.org or as package via your distributor.
-
-And obviously, you will need have Geany installed. If you have Geany installed
-from the sources, you should be ready to go. If you are using a prepared package
-e.g. from your distribution you probably need to install an additional package,
-which might be called geany-dev or geany-devel.
-Please note that in order to compile and use GeanyGDB, you will need Geany 0.16
-or later.
-
-Furthermore you need, of course, a C compiler and the Make tool.
-The GNU versions of these tools are recommended.
-
-And last but not least: GDB.
-
-
-Installation
-============
-
-Please consider to compile and/or install the Geany-Plugins project, as GeanyGDB
-now is part of Geany-Plugins.
-
-
-Documentation
-=============
-
-There is no real documentation, but if you hover your mouse over the buttons
-in the GeanyGDBs sidebar panel in Geany the tooltips should give you some idea
-of what to do next. There are also a few "rough draft" notes below:
-
-Most of the console output from GDB is sent to the "Compiler" message window
-in Geany, and you can send standard commands to GDB using the "Console" entry
-on the debug sidebar. This should be used with caution, since GDB's machine
-interface and console interface don't always play well together.
-
-Also note that the plugin sets its own internal breakpoint #1 to grab the
-program's PID on startup, so any user-specified breakpoint numbers begin
-at #2, and if you manually delete the #1 breakpoint it will likely cause
-you some problems.
-
-Whenever the target program hits a breakpoint or encounters a segfault etc.
-it will try to open the appropriate source file and jump to the correct line.
-
-To examine the state of the program's variables, you can click on the "Stack"
-button in the debug sidebar. Note that the interaction between the plugin and
-GDB can sometimes be quite slow, so please be patient when waiting
-for the dialogs to open.
-
-The "Add breakpoint", "Add watchpoint", and "Run to" dialogs will try to
-suggest some values based on your current position in whatever file you
-have open in Geany, but if you don't like the choice, just click the "Clear"
-button and type in whatever you please.
-
-GeanyGDB tries to enable only the buttons that are relevant to the current
-state, but ocassionally it might end up getting things wrong. If this happens,
-you should be able to click the "Unload" button and everything will be reset.
-
-If you try to unload the plugin using the plugin manager while it has a
-program loaded, the plugin manager might appear to hang for a few seconds,
-while GDB tries to shut down. Again, just be patient, but note that it is
-much better use the "Unload" button in the debug sidebar before trying to
-disable the plugin.
-
-
-Download
-========
-
-Current Version
----------------
-
-Current versions of Geany-Plugins can be found at http://plugins.geany.org/geany-plugins/.
-
-You can also check out more current sources of Geany-Plugins from Git, but note
-that Git checkouts may not run stable.
-
-  git clone git://github.com/geany/geany-plugins.git
-
-
-Older Versions
---------------
-
-======================= ================ =========================================================
-Geany Version           GeanyGDB Version Download
-======================= ================ =========================================================
-known to work with 0.14            0.0.1 http://plugins.geany.org/geanygdb/geanydebug-0.0.1.tar.gz
-                   0.16            0.0.2 http://plugins.geany.org/geanygdb/geanygdb-0.0.2.tar.gz
-======================= ================ =========================================================
-
-
-
-
-Contact
-=======
-Geanys official homepage is http://geany.org/
-
-mailing list is geany at uvena.de
-
-eMail to dmaphy at googlemail.com
-
-meet us in IRC on channels #geany or #geany-de using chat.freenode.net


Modified: geanygdb/THANKS
20 files changed, 0 insertions(+), 20 deletions(-)
===================================================================
@@ -1,20 +0,0 @@
-Thanks to:
-
-Salvador E. Tropea <set(at)users(dot)sf(dot)net>
-  Author of the libmigdb library. ( This project doesn't use any code from
-  libmigdb, but his project made me believe such a thing was even possible. )
-
-
-Enrico Troeger <enrico(dot)troeger(at)uvena(dot)de>
-  Geany IDE author.
-
-
-Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
-  Chief architect of the Geany plugin API.
-
-
-Yura Siamashka yurand2(at)gmail(dot)com
-  Initial autotools scripts ( adapted from the geanyvc plugin. )
-  and improvements to INSTALL instructions.
-
-


Modified: geanygdb/TODO
10 files changed, 0 insertions(+), 10 deletions(-)
===================================================================
@@ -1,10 +0,0 @@
-====
-TODO
-====
-
-* Load the currently viewed source file. Or at least, have some quick way to
-  load the current file. (requested by mail)
-* Make it possible to add parameters to the run command
-* AVR (avr-gdb) support
-* cris-gdb support
-* maybe generic support for other gdb-compatible or gdb-based debuggers


Modified: geanygdb/doc/geany.css
114 files changed, 0 insertions(+), 114 deletions(-)
===================================================================
@@ -1,114 +0,0 @@
-/*
-:Author: Enrico Troeger
-:Contact: enrico(dot)troeger(at)uvena(dot)de
-:Copyright: This stylesheet has been placed in the public domain.
-
-Stylesheet for Geany's documentation based on a version of John Gabriele.
-*/
-
- at media screen {
-
-	body {
-		background-color: #f2f2f2;
-		color: #404040;
-		margin-left: 0.4em;
-		width: 60em;
-		font-size: 90%;
-	}
-
-	a {
-		color: #990000;
-	}
-
-	a:visited {
-		color: #7E558E;
-	}
-
-	a:hover {
-		text-decoration: none;
-	}
-
-	h1 {
-		border-top: 1px dotted;
-		margin-top: 2em;
-	}
-
-	h1, h2, h3 {
-		font-family: sans-serif;
-		color: #5D0606;
-	}
-
-	h1.title {
-	  text-align: left }
-
-	h2 {
-		margin-top: 30px;
-	}
-
-	h2.subtitle {
-	  text-align: left }
-
-	h3 {
-		padding-left: 3px;
-	}
-
-	blockquote, pre {
-		border: 1px solid;
-		padding: 0.4em;
-	}
-
-	blockquote {
-		font-family: sans-serif;
-		background-color: #DBEDD5;
-		border: 1px dotted;
-		border-left: 4px solid;
-		border-color: #9FD98C;
-	}
-
-	pre {
-		background-color: #ECDFCE;
-		border: 1px dotted;
-		border-left: 4px solid;
-		border-color: #D9BE9A;
-	}
-
-	tt, pre, code {
-		color: #6D4212;
-	}
-
-	table {
-		border: 1px solid #D9BE9A;
-	}
-
-	th {
-		background-color: #ECDFCE;
-		border: 1px dotted #D9BE9A;
-	}
-
-	td {
-		border: 1px dotted #D9BE9A;
-	}
-
-	.docinfo-name {
-		color: #5D0606;
-	}
-
-	p.admonition-title {
-		color: #990000;
-		font-weight: bold;
-	}
-
-	div.note {
-		margin: 1em 3em;
-		padding: 0em;
-	}
-
-	dt {
-		font-style: italic;
-	}
-
-}
-
- at media print {
-
-}


Modified: geanygdb/src/Makefile.am
31 files changed, 0 insertions(+), 31 deletions(-)
===================================================================
@@ -1,31 +0,0 @@
-include $(top_srcdir)/build/vars.build.mk
-
-geanygdbdir = $(libexecdir)/geany-plugins/geanygdb
-geanyplugins_LTLIBRARIES = geanygdb.la
-geanygdb_PROGRAMS = ttyhelper
-
-geanygdb_la_SOURCES = \
-	gdb-io.h \
-	gdb-io-priv.h \
-	gdb-lex.h \
-	gdb-ui.h \
-	gdb-ui-envir.c \
-	geanygdb.c \
-	gdb-io-break.c \
-	gdb-lex.c \
-	gdb-ui-frame.c \
-	gdb-ui-main.c \
-	gdb-io-frame.c \
-	gdb-io-run.c \
-	gdb-io-read.c \
-	gdb-ui-break.c \
-	gdb-io-envir.c \
-	gdb-io-stack.c \
-	gdb-ui-locn.c
-
-geanygdb_la_CFLAGS = $(AM_CFLAGS) -DTTYHELPERDIR=\""$(geanygdbdir)"\"
-geanygdb_la_LIBADD = $(COMMONLIBS)
-
-ttyhelper_SOURCES = ttyhelper.c
-
-include $(top_srcdir)/build/cppcheck.mk


Modified: geanygdb/src/gdb-io-break.c
334 files changed, 0 insertions(+), 334 deletions(-)
===================================================================
@@ -1,334 +0,0 @@
-/*
- * gdb-io-break.c - Breakpoint management functions for GDB wrapper library.
- * Copyright 2008 Jeff Pohlmeyer <yetanothergeek(at)gmail(dot)com>
- *
- * 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. *
- */
-
-#include <string.h>
-
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#endif
-#include <geanyplugin.h>
-
-#include "gdb-io-priv.h"
-
-
-static GdbListFunc gdbio_break_list_func = NULL;
-
-static GSList *breakpoint_list = NULL;
-
-
-static void
-free_breakpoint_list(void)
-{
-	GSList *p;
-	for (p = breakpoint_list; p; p = p->next)
-	{
-		GdbBreakPointInfo *bpi = p->data;
-		if (bpi)
-		{
-			g_free(bpi->addr);
-			g_free(bpi->disp);
-			g_free(bpi->enabled);
-			g_free(bpi->file);
-			g_free(bpi->fullname);
-			g_free(bpi->func);
-			g_free(bpi->line);
-			g_free(bpi->number);
-			g_free(bpi->times);
-			g_free(bpi->type);
-			g_free(bpi->what);
-			g_free(bpi->cond);
-			g_free(bpi->ignore);
-			g_free(bpi);
-		}
-	}
-	g_slist_free(breakpoint_list);
-	breakpoint_list = NULL;
-}
-
-
-
-#define populate(rec, hash, key) \
-	do \
-	{ \
-		const gchar *populate_key = gdblx_lookup_string(hash, #key""); \
-		if (populate_key) \
-		{ \
-			rec->key = g_strdup(populate_key); \
-		} \
-	} \
-	while (0)
-
-
-
-static void
-breakpoint_cb(gpointer data, gpointer user_data)
-{
-	GdbLxValue *v = (GdbLxValue *) data;
-	if (v && (v->type == vt_HASH) && (v->hash))
-	{
-		GHashTable *bkpt = v->hash;
-		if (bkpt)
-		{
-			GdbBreakPointInfo *bpi = g_new0(GdbBreakPointInfo, 1);
-			populate(bpi, bkpt, addr);
-			populate(bpi, bkpt, disp);
-			populate(bpi, bkpt, enabled);
-			populate(bpi, bkpt, file);
-			populate(bpi, bkpt, fullname);
-			populate(bpi, bkpt, func);
-			populate(bpi, bkpt, line);
-			populate(bpi, bkpt, number);
-			populate(bpi, bkpt, times);
-			populate(bpi, bkpt, type);
-			populate(bpi, bkpt, what);
-			populate(bpi, bkpt, cond);
-			populate(bpi, bkpt, ignore);
-			breakpoint_list = g_slist_append(breakpoint_list, bpi);
-		}
-	}
-}
-
-
-static void
-parse_break_list(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	HTAB(h, BreakpointTable);
-	gdbio_pop_seq(seq);
-	if (BreakpointTable && gdbio_break_list_func)
-	{
-		HLST(BreakpointTable, body);
-		if (body)
-		{
-			free_breakpoint_list();
-			g_slist_foreach(body, breakpoint_cb, NULL);
-			gdbio_break_list_func(breakpoint_list);
-			free_breakpoint_list();
-		}
-		else
-		{
-			gdbio_break_list_func(NULL);
-		}
-	}
-	if (h)
-		g_hash_table_destroy(h);
-}
-
-
-
-void
-gdbio_show_breaks(GdbListFunc func)
-{
-	gdbio_break_list_func = func;
-	if (func)
-	{
-		gdbio_send_seq_cmd(parse_break_list, "-break-list\n");
-	}
-}
-
-
-
-static void
-added_break(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	gdbio_pop_seq(seq);
-	if (h)
-	{
-		HTAB(h, bkpt);
-		if (bkpt)
-		{
-			HSTR(bkpt, file);
-			HSTR(bkpt, line);
-			HSTR(bkpt, func);
-			HSTR(bkpt, number);
-			if (func)
-			{
-				gdbio_info_func(_("Added breakpoint #%s in %s() at %s:%s\n"), number,
-						func, file, line);
-			}
-			else
-			{
-				gdbio_info_func(_("Added breakpoint #%s at %s:%s\n"), number, file,
-						line);
-			}
-
-		}
-		else
-		{
-			HTAB(h, wpt);
-			if (wpt)
-			{
-				HSTR(wpt, exp);
-				HSTR(wpt, number);
-				gdbio_info_func(_("Added write watchpoint #%s for %s\n"), number, exp);
-			}
-			else
-			{
-				HTAB(h, hw_awpt);
-				if (hw_awpt)
-				{
-					HSTR(hw_awpt, exp);
-					HSTR(hw_awpt, number);
-					gdbio_info_func(_("Added read/write watchpoint #%s for %s\n"),
-							number, exp);
-				}
-				else
-				{
-					HTAB(h, hw_rwpt);
-					if (hw_rwpt)
-					{
-						HSTR(hw_rwpt, exp);
-						HSTR(hw_rwpt, number);
-						gdbio_info_func
-							(_("Added read watchpoint #%s for %s\n"),
-							 number, exp);
-					}
-				}
-			}
-		}
-		g_hash_table_destroy(h);
-	}
-	if (gdbio_break_list_func)
-	{
-		gdbio_show_breaks(gdbio_break_list_func);
-	}
-}
-
-/* opt is "-r" (read) or "-a" (r/w) or NULL or empty (write) */
-void
-gdbio_add_watch(GdbListFunc func, const gchar * option, const gchar * varname)
-{
-	gdbio_break_list_func = func;
-	gdbio_send_seq_cmd(added_break, "-break-watch %s %s\n", option ? option : "", varname);
-}
-
-
-
-void
-gdbio_add_break(GdbListFunc func, const gchar * filename, const gchar * locn)
-{
-	gdbio_break_list_func = func;
-	if (filename && *filename)
-	{
-		gdbio_send_seq_cmd(added_break, "-break-insert %s:%s\n", filename, locn);
-	}
-	else
-	{
-		gdbio_send_seq_cmd(added_break, "-break-insert %s\n", locn);
-	}
-}
-
-
-static void
-deleted_break(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	gdbio_pop_seq(seq);
-	if (h)
-	{
-		g_hash_table_destroy(h);
-		gdbio_info_func(_("Watch/breakpoint deleted.\n"));
-	}
-	if (gdbio_break_list_func)
-	{
-		gdbio_show_breaks(gdbio_break_list_func);
-	}
-}
-
-
-
-static void
-toggled_break(gint seq, gchar ** list, gchar * resp)
-{
-	gdbio_pop_seq(seq);
-	if (strncmp(resp, "^error", 6) == 0)
-	{
-		if (resp[6] == ',')
-		{
-			GHashTable *h = gdblx_parse_results(resp + 7);
-			HSTR(h, msg);
-
-			if (msg)
-			{
-				gchar *tmp =
-					g_strconcat(_("Failed to toggle breakpoint -\n"), msg, NULL);
-				gdbio_error_func(tmp);
-				if (tmp)
-				{
-					g_free(tmp);
-				}
-			}
-			else
-			{
-			}
-			if (h)
-			{
-				g_hash_table_destroy(h);
-			}
-		}
-	}
-	else
-	{
-		gdbio_info_func(_("Watch/breakpoint toggled.\n"));
-	}
-}
-
-
-
-static void
-edited_break(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	gdbio_pop_seq(seq);
-	if (h)
-	{
-		g_hash_table_destroy(h);
-		gdbio_info_func(_("Watch/breakpoint modified.\n"));
-	}
-}
-
-
-void
-gdbio_delete_break(GdbListFunc func, const gchar * number)
-{
-	gdbio_break_list_func = func;
-	gdbio_send_seq_cmd(deleted_break, "-break-delete %s\n", number);
-}
-
-
-void
-gdbio_enable_break(const gchar * number, gboolean enabled)
-{
-	gdbio_send_seq_cmd(toggled_break, "-break-%s %s\n", enabled ? "enable" : "disable", number);
-}
-
-
-void
-gdbio_ignore_break(const gchar * number, const gchar * times)
-{
-	gdbio_send_seq_cmd(edited_break, "-break-after %s %s\n", number, times);
-}
-
-
-void
-gdbio_break_cond(const gchar * number, const gchar * expr)
-{
-	gdbio_send_seq_cmd(edited_break, "-break-condition %s %s\n", number, expr);
-}


Modified: geanygdb/src/gdb-io-envir.c
196 files changed, 0 insertions(+), 196 deletions(-)
===================================================================
@@ -1,196 +0,0 @@
-/*
- * gdb-io-envir.c - Environment settings for GDB wrapper library.
- * Copyright 2008 Jeff Pohlmeyer <yetanothergeek(at)gmail(dot)com>
- *
- * 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. *
- */
-
-#include <string.h>
-
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#endif
-#include <geanyplugin.h>
-
-#include "gdb-io-priv.h"
-
-
-static GdbEnvironFunc gdbio_environ_func = NULL;
-
-static GdbEnvironInfo env_info = { NULL, NULL, NULL, NULL };
-
-
-static void
-free_env_info(void)
-{
-	g_free(env_info.cwd);
-	g_free(env_info.path);
-	g_free(env_info.args);
-	g_free(env_info.dirs);
-	memset(&env_info, '\0', sizeof(env_info));
-}
-
-
-
-static gchar *
-unquote(gchar * quoted)
-{
-	gint len = quoted ? strlen(quoted) : 0;
-	if (len && (quoted[0] == '"') && (quoted[len - 1] == '"'))
-	{
-		gchar *tmp = g_strndup(quoted + 1, len - 2);
-		gchar *rv = g_strcompress(tmp);
-		g_free(tmp);
-		return rv;
-	}
-	else
-		return NULL;
-}
-
-
-
-static void
-get_env_args(gint seq, gchar ** list, gchar * resp)
-{
-	gchar *args;
-	gint i;
-	gdbio_pop_seq(seq);
-	for (i = 0; list[i]; i++)
-	{
-		if (strncmp(list[i], "~\"", 2) == 0)
-		{
-			args = unquote(list[i] + 1);
-			if (args && *args)
-			{
-				gchar *quote = strchr(g_strstrip(args), '"');
-				if (quote)
-				{
-					memmove(args, quote + 1, strlen(quote));
-					quote = strrchr(args, '"');
-					if (quote && g_str_equal(quote, "\"."))
-					{
-						*quote = '\0';
-						break;
-					}
-				}
-			}
-			g_free(args);
-			args = NULL;
-		}
-	}
-	env_info.args = args;
-	if (gdbio_environ_func)
-	{
-		gdbio_environ_func(&env_info);
-	}
-}
-
-
-
-static void
-get_env_dirs(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	HSTR(h, source_path);
-	gdbio_pop_seq(seq);
-	if (source_path)
-	{
-		gchar *p;
-		env_info.dirs = g_strdup(source_path);
-		p = strstr(env_info.dirs, "$cdir:$cwd");
-		if (p)
-		{
-			memmove(p, p + 10, strlen(p + 10) + 1);
-		}
-		p = strchr(env_info.dirs, '\0');
-		if (p)
-		{
-			while (p > env_info.dirs)
-			{
-				p--;
-				if (*p == ':')
-				{
-					*p = '\0';
-				}
-				else
-				{
-					break;
-				}
-			}
-		}
-	}
-	else
-	{
-		gdbio_info_func(_("Failed to retrieve source search path setting from GDB."));
-/*		gdblx_dump_table(h);*/
-	}
-	if (h)
-		g_hash_table_destroy(h);
-	gdbio_send_seq_cmd(get_env_args, "show args\n");
-}
-
-
-static void
-get_env_path(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	HSTR(h, path);
-	gdbio_pop_seq(seq);
-	if (path)
-	{
-		env_info.path = g_strdup(path);
-	}
-	else
-	{
-		gdbio_info_func(_("Failed to retrieve executable search path setting from GDB."));
-/*		gdblx_dump_table(h);*/
-	}
-	if (h)
-		g_hash_table_destroy(h);
-	gdbio_send_seq_cmd(get_env_dirs, "-environment-directory\n");
-}
-
-
-static void
-get_env_cwd(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	HSTR(h, cwd);
-	gdbio_pop_seq(seq);
-	free_env_info();
-	if (cwd)
-	{
-		env_info.cwd = g_strdup(cwd);
-	}
-	else
-	{
-		gdbio_info_func(_("Failed to retrieve working directory setting from GDB."));
-/*		gdblx_dump_table(h);*/
-	}
-	if (h)
-		g_hash_table_destroy(h);
-	gdbio_send_seq_cmd(get_env_path, "-environment-path\n");
-}
-
-
-void
-gdbio_get_env(GdbEnvironFunc func)
-{
-	gdbio_environ_func = func;
-	if (func)
-	{
-		gdbio_send_seq_cmd(get_env_cwd, "-environment-pwd\n");
-	}
-}


Modified: geanygdb/src/gdb-io-frame.c
559 files changed, 0 insertions(+), 559 deletions(-)
===================================================================
@@ -1,559 +0,0 @@
-/*
- * gdb-io-frame.c - Stack frame information functions for GDB wrapper library.
- * Copyright 2008 Jeff Pohlmeyer <yetanothergeek(at)gmail(dot)com>
- *
- * 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. *
- */
-
-
-#include <string.h>
-#include <glib.h>
-
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#endif
-#include <geanyplugin.h>
-
-#include "gdb-io-priv.h"
-
-
-static GdbFrameFunc gdbio_locals_func = NULL;
-
-static GSList *locals_list = NULL;
-static GSList **which_list = NULL;
-
-static gint locals_index = 0;
-static gint args_index = 0;
-static gint *which_index = NULL;
-
-static void var_created(gint seq, gchar ** list, gchar * resp);
-static void got_varlist(gint seq, gchar ** list, gchar * resp);
-
-typedef enum _FrameProcState
-{
-	fpBegin,
-	fpGotLocals,
-	fpGotArgs
-} FrameProcState;
-
-
-static FrameProcState state = fpBegin;
-static GdbFrameInfo current_frame;
-
-
-
-static void
-gdbio_free_var(GdbVar * v)
-{
-	if (v)
-	{
-		g_free(v->type);
-		g_free(v->name);
-		g_free(v->value);
-		g_free(v->numchild);
-		g_free(v);
-	}
-}
-
-
-void
-gdbio_free_var_list(GSList * args)
-{
-	GSList *p;
-	for (p = args; p; p = p->next)
-	{
-		gdbio_free_var((GdbVar *) p->data);
-	}
-	g_slist_free(args);
-}
-
-
-
-static void
-free_lists(void)
-{
-	gdbio_free_var_list(locals_list);
-	locals_list = NULL;
-	locals_index = 0;
-	args_index = 0;
-	which_list = &locals_list;
-	which_index = &locals_index;
-	state = fpBegin;
-	g_free(current_frame.func);
-	g_free(current_frame.filename);
-	gdbio_free_var_list(current_frame.args);
-	memset(&current_frame, 0, sizeof(current_frame));
-}
-
-static void
-get_arglist(void)
-{
-	which_list = &current_frame.args;
-	which_index = &args_index;
-	gdbio_send_seq_cmd(got_varlist, "-stack-list-arguments 1 %s %s\n",
-			   current_frame.level, current_frame.level);
-}
-
-
-static void
-create_var(gchar * varname)
-{
-	gdbio_send_seq_cmd(var_created, "-var-create x%s * %s\n", varname, varname);
-}
-
-
-static void
-var_deleted(gint seq, gchar ** list, gchar * resp)
-{
-	GdbVar *lv;
-	gdbio_pop_seq(seq);
-	(*which_index)++;
-	lv = g_slist_nth_data(*which_list, *which_index);
-	if (lv)
-	{
-		create_var(lv->name);
-	}
-	else
-	{
-		if (state == fpBegin)
-		{
-			state = fpGotLocals;
-			get_arglist();
-		}
-		else
-		{
-			if (gdbio_locals_func)
-			{
-				gdbio_locals_func(&current_frame, locals_list);
-			}
-			free_lists();
-		}
-	}
-}
-
-
-
-static void
-delete_var(gchar * varname)
-{
-	gdbio_send_seq_cmd(var_deleted, "-var-delete x%s\n", varname);
-}
-
-
-
-static gchar *
-fmt_val(const gchar * value)
-{
-	gchar buf[256];
-	if (!value)
-		return g_strdup("0");
-	if (strlen(value) < sizeof(buf))
-	{
-		return g_strdup(value);
-	}
-	strncpy(buf, value, sizeof(buf) - 1);
-	buf[sizeof(buf) - 1] = '\0';
-	return g_strdup_printf("%s...%s", buf, strchr(buf, '"') ? "\"" : "");
-}
-
-
-
-static void
-var_created(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	HSTR(h, type);
-	HSTR(h, value);
-	HSTR(h, numchild);
-	gdbio_pop_seq(seq);
-	if (type)
-	{
-		GdbVar *lv = g_slist_nth_data(*which_list, *which_index);
-		if (lv)
-		{
-			lv->type = g_strdup(type ? type : "int");
-			lv->value = fmt_val(value);
-			lv->numchild = g_strdup(numchild ? numchild : "0");
-			delete_var(lv->name);
-		}
-	}
-	if (h)
-		g_hash_table_destroy(h);
-}
-
-
-
-void
-got_varlist(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	GSList *hlist = NULL;
-	HLST(h, locals);
-	HLST(h, stack_args);
-	gdbio_pop_seq(seq);
-	if (state == fpBegin)
-	{
-		hlist = locals;
-	}
-	else
-	{
-		GdbLxValue *v = stack_args->data;
-		if (v && (v->type == vt_HASH))
-		{
-			HLST(v->hash, args);
-			if (args)
-			{
-				hlist = args;
-			}
-		}
-	}
-	if (hlist)
-	{
-		GSList *p;
-		GdbVar *lv;
-		for (p = hlist; p; p = p->next)
-		{
-			GdbLxValue *v = p->data;
-			if (v && (v->type == vt_HASH) && v->hash)
-			{
-				HSTR(v->hash, name);
-				if (name)
-				{
-					lv = g_new0(GdbVar, 1);
-					lv->name = g_strdup(name);
-					*which_list = g_slist_append(*which_list, lv);
-				}
-			}
-		}
-		lv = g_slist_nth_data(*which_list, *which_index);
-		if (lv)
-		{
-			create_var(lv->name);
-		}
-	}
-	else
-	{
-		if (state == fpBegin)
-		{
-			state = fpGotLocals;
-			get_arglist();
-		}
-		else
-		{
-			if (gdbio_locals_func)
-			{
-				gdbio_locals_func(&current_frame, locals_list);
-			}
-		}
-	}
-	if (h)
-		g_hash_table_destroy(h);
-}
-
-
-
-
-
-static void
-got_current_level(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	HTAB(h, frame);
-	gdbio_pop_seq(seq);
-	if (frame)
-	{
-		HSTR(frame, level);
-		if (level)
-		{
-			HSTR(frame, addr);
-			HSTR(frame, func);
-			HSTR(frame, file);
-			HSTR(frame, fullname);
-			HSTR(frame, line);
-			strncpy(current_frame.level, level, sizeof(current_frame.level) - 1);
-			strncpy(current_frame.addr, addr ? addr : "",
-				sizeof(current_frame.addr) - 1);
-			strncpy(current_frame.line, line ? line : "",
-				sizeof(current_frame.line) - 1);
-			current_frame.filename = g_strdup(fullname ? fullname : file ? file : "");
-			current_frame.func = g_strdup(func ? func : "");
-		}
-	}
-	if (h)
-		g_hash_table_destroy(h);
-	gdbio_send_seq_cmd(got_varlist, "-stack-list-locals 1\n");
-}
-
-
-static void
-set_current_level(gint seq, gchar ** list, gchar * resp)
-{
-	gdbio_pop_seq(seq);
-	gdbio_send_seq_cmd(got_current_level, "-stack-info-frame\n");
-}
-
-void
-gdbio_show_locals(GdbFrameFunc func, const gchar * level)
-{
-	free_lists();
-	gdbio_locals_func = func;
-	gdbio_send_seq_cmd(set_current_level, "-stack-select-frame %s\n", level);
-}
-
-
-
-
-static gpointer
-qpop(GQueue ** q)
-{
-	gpointer p = NULL;
-	if (*q)
-	{
-		p = g_queue_pop_head(*q);
-		if (g_queue_get_length(*q) == 0)
-		{
-			g_queue_free(*q);
-			*q = NULL;
-		}
-	}
-	return p;
-}
-
-static void
-qpush(GQueue ** q, gpointer p)
-{
-	if (p)
-	{
-		if (!*q)
-		{
-			*q = g_queue_new();
-		}
-		g_queue_push_head(*q, p);
-	}
-}
-
-static gpointer
-qtop(GQueue * q)
-{
-	return q ? g_queue_peek_head(q) : NULL;
-}
-
-
-
-/*
-static gpointer qnth(GQueue*q, gint n)
-{
-  return q?g_queue_peek_nth(q, n):NULL;
-}
-
-static gint qlen(GQueue*q)
-{
-  return q?g_queue_get_length(q):0;
-}
-*/
-
-
-static GQueue *obj_list_queue = NULL;
-static void
-push_list(GSList * p)
-{
-	qpush(&obj_list_queue, p);
-}
-static void
-pop_list(void)
-{
-	gdbio_free_var_list(qpop(&obj_list_queue));
-}
-static GSList *
-top_list(void)
-{
-	return qtop(obj_list_queue);
-}
-
-
-static GQueue *obj_var_queue = NULL;
-static void
-push_var(GdbVar * p)
-{
-	qpush(&obj_var_queue, p);
-}
-static void
-pop_var(void)
-{
-	gdbio_free_var(qpop(&obj_var_queue));
-}
-static GdbVar *
-top_var(void)
-{
-	return qtop(obj_var_queue);
-}
-
-
-
-
-/*static GdbObjectFunc gdbio_object_list_func=NULL;*/
-
-static GQueue *obj_func_queue = NULL;
-static void
-push_func(GdbObjectFunc p)
-{
-	qpush(&obj_func_queue, p);
-}
-static void
-pop_func(void)
-{
-	qpop(&obj_func_queue);
-}
-static GdbObjectFunc
-top_func(void)
-{
-	return qtop(obj_func_queue);
-}
-
-
-
-
-static void
-done_top(void)
-{
-	pop_var();
-	pop_list();
-/*	pop_name();*/
-	pop_func();
-}
-
-
-
-static void
-object_deleted(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	gdbio_pop_seq(seq);
-	if (h)
-	{
-		if (top_func() && top_var() && top_list())
-		{
-			top_func()(top_var(), top_list());
-		}
-		done_top();
-		g_hash_table_destroy(h);
-	}
-}
-
-
-
-static GdbVar *
-hash_val_to_var(GHashTable * h)
-{
-	HSTR(h, name);
-	if (name)
-	{
-		GdbVar *var = g_new0(GdbVar, 1);
-		HSTR(h, type);
-		HSTR(h, value);
-		HSTR(h, numchild);
-		var->name = g_strdup(name + 1);
-		var->type = g_strdup(type ? type : "int");
-		var->value = fmt_val(value);
-		var->numchild = g_strdup(numchild ? numchild : "0");
-		return var;
-	}
-	return NULL;
-}
-
-
-#define MAX_ITEMS 1024
-
-static GSList *
-hash_list_to_var_list(GSList * hlist)
-{
-	GSList *vlist = NULL;
-	GSList *p;
-	gint i;
-	for (p = hlist, i = 0; p; p = p->next, i++)
-	{
-		GdbLxValue *hv = p->data;
-		if (hv && (hv->type == vt_HASH) && hv->hash)
-		{
-			GdbVar *var = hash_val_to_var(hv->hash);
-			if (var)
-			{
-				vlist = g_slist_append(vlist, var);
-			}
-		}
-		if (i >= MAX_ITEMS)
-		{
-			GdbVar *var = g_new0(GdbVar, 1);
-			var->type = g_strdup(" ");
-			var->name = g_strdup_printf("* LIST TRUNCATED AT ITEM #%d *", i + 1);
-			var->value = g_strdup(" ");
-			var->numchild = g_strdup("0");
-			vlist = g_slist_append(vlist, var);
-			gdbio_error_func(_("Field list too long, not all items can be displayed.\n"));
-			break;
-		}
-	}
-	return vlist;
-}
-
-
-
-static void
-object_listed(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	gdbio_pop_seq(seq);
-	if (h)
-	{
-		HLST(h, children);
-		if (children)
-		{
-			push_list(hash_list_to_var_list(children));
-		}
-		gdbio_send_seq_cmd(object_deleted, "-var-delete x%s\n", top_var()->name);
-		g_hash_table_destroy(h);
-	}
-}
-
-
-
-static void
-object_created(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	gdbio_pop_seq(seq);
-	if (h)
-	{
-		HSTR(h, name);
-		if (name)
-		{
-			push_var(hash_val_to_var(h));
-			gdbio_send_seq_cmd(object_listed, "-var-list-children 1 %s\n", name);
-		}
-		g_hash_table_destroy(h);
-	}
-}
-
-
-void
-gdbio_show_object(GdbObjectFunc func, const gchar * varname)
-{
-
-	if (func)
-	{
-		push_func(func);
-		gdbio_send_seq_cmd(object_created, "-var-create x%s * %s\n", varname, varname);
-	}
-}


Modified: geanygdb/src/gdb-io-priv.h
107 files changed, 0 insertions(+), 107 deletions(-)
===================================================================
@@ -1,107 +0,0 @@
-/*
- * gdb-io-priv.h - private header for GDB wrapper library.
- * Copyright 2008 Jeff Pohlmeyer <yetanothergeek(at)gmail(dot)com>
- *
- * 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. *
- */
-
-#include "gdb-lex.h"
-#include "gdb-io.h"
-
-
-void gdbio_free_var_list(GSList * args);
-
-
-typedef void (*ResponseHandler) (gint seq, gchar ** lines, gchar * resp);
-
-
-/*
-  Sends a command to GDB, and returns the results to the specified
-  ResponseHandler function.
-*/
-gint gdbio_send_seq_cmd(ResponseHandler func, const gchar * fmt, ...);
-
-
-/* Look up a handler function */
-ResponseHandler gdbio_seq_lookup(gint seq);
-
-
-/*
-  gdbio_pop_seq() removes a handler function from the sequencer.
-  This should (almost) always be called from the associated
-  ResponseHandler function, to avoid filling up the sequencer
-  with stale commands.
-*/
-void gdbio_pop_seq(gint seq);
-
-
-/*
-  Parses the output of GDB and returns it as a hash table,
-  unless the response is an error message, it calls the
-  error handler function and then returns NULL.
-*/
-GHashTable *gdbio_get_results(gchar * resp, gchar ** list);
-
-void gdbio_parse_file_list(gint seq, gchar ** list, gchar * resp);
-
-/*
-Preprocessor sugar for declaring C variables from hash key names, e.g.
-  HSTR(myhash,somevar)
-expands to:
-  gchar *somevar = gdblx_lookup_string ( myhash, "somevar" );
-*/
-#define HSTR(hash,token) const gchar* token = gdblx_lookup_string(hash, #token"")
-#define HTAB(hash,token) GHashTable* token = gdblx_lookup_hash(hash, #token"")
-#define HLST(hash,token) GSList* token = gdblx_lookup_list(hash, #token"")
-
-
-#if 0
-#define do_loop()  \
-  while (g_main_context_pending(NULL)) \
-    g_main_context_iteration(NULL,FALSE);
-#else
-#define do_loop() g_main_context_iteration(NULL,FALSE);
-#endif
-
-
-
-
-void gdbio_info_func(const gchar * fmt, ...);
-void gdbio_error_func(const gchar * fmt, ...);
-void gdbio_do_status(GdbStatus s);
-
-
-void gdbio_target_exited(const gchar * reason);
-void gdbio_set_target_pid(GPid pid);
-GPid gdbio_get_target_pid(void);
-void gdbio_set_running(gboolean running);
-
-/*
- Max/Min values for sequencer tokens.
-The current values of 100000-999999 allow for 899999 pending commands.
-I can't imagine why you would need more, but if you change this,keep in mind
-that the number of digits for any possible value *must* be exactly SEQ_LEN.
-*/
-
-#define SEQ_MIN 100000
-#define SEQ_MAX 999999
-#define SEQ_LEN 6
-
-
-
-void gdbio_consume_response(GString * recv_buf);
-
-void gdbio_set_starting(gboolean s);
-void gdbio_target_started(gint seq, gchar ** list, gchar * resp);


Modified: geanygdb/src/gdb-io-read.c
818 files changed, 0 insertions(+), 818 deletions(-)
===================================================================
@@ -1,818 +0,0 @@
-/*
- * gdb-io-read.c - Output reading functions for GDB wrapper library.
- * Copyright 2008 Jeff Pohlmeyer <yetanothergeek(at)gmail(dot)com>
- *
- * 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. *
- */
-
-#include <stdlib.h>
-#include <sys/time.h>
-
-#include <string.h>
-#include <unistd.h>
-#include <stdarg.h>
-
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#endif
-#include <geanyplugin.h>
-
-#include "gdb-io-priv.h"
-
-static GSList *source_files = NULL;
-static gboolean starting = FALSE;
-
-static void handle_response_line(gchar * str, gchar ** list);
-
-
-
-static void
-free_string_list(GSList ** list)
-{
-	GSList *p;
-	for (p = *list; p; p = p->next)
-	{
-		if (p->data)
-		{
-			g_free(p->data);
-		}
-	}
-	*list = NULL;
-}
-
-
-
-static void
-free_source_list(void)
-{
-	free_string_list(&source_files);
-}
-
-
-
-static gint
-find_file_and_fullname(gconstpointer data, gconstpointer user_data)
-{
-	GdbLxValue *v = (GdbLxValue *) data;
-	gchar *ref = (gchar *) user_data;
-	HSTR(v->hash, fullname);
-	HSTR(v->hash, file);
-	return (fullname && file
-		&& (g_str_equal(ref, file) || g_str_equal(ref, fullname))) ? 0 : -1;
-}
-
-
-
-static void
-parse_file_list_cb(gpointer data, gpointer user_data)
-{
-	GdbLxValue *v = (GdbLxValue *) data;
-	if (v && (v->type == vt_HASH))
-	{
-		HSTR(v->hash, fullname);
-		HSTR(v->hash, file);
-		if (file && !fullname)
-		{
-			if (g_slist_find_custom((GSList *) user_data, file, find_file_and_fullname))
-			{
-				return;
-			}
-		}
-		if (fullname)
-		{
-			file = fullname;
-		}
-		if (file)
-		{
-			if (!g_slist_find_custom(source_files, file, (GCompareFunc) strcmp))
-			{
-				source_files = g_slist_append(source_files, g_strdup(file));
-			}
-		}
-	}
-}
-
-
-
-static void
-handle_response_lines(gchar ** list)
-{
-	if (list)
-	{
-		gint i;
-		for (i = 0; list[i]; i++)
-		{
-			handle_response_line(list[i], list);
-		}
-	}
-}
-
-
-
-static gboolean
-response_is_error(gchar * resp, gchar ** list)
-{
-	if (strncmp(resp, "^error", 6) == 0)
-	{
-		handle_response_line(resp, list);
-		return TRUE;
-	}
-	else
-	{
-		return FALSE;
-	}
-}
-
-#define CHK_RESP_ERR(resp, list) if (response_is_error(resp,list)) { return; }
-
-#define IsDigit g_ascii_isdigit
-
-static void
-parse_process_info(gint seq, gchar ** list, gchar * resp)
-{
-	CHK_RESP_ERR(resp, list);
-	gdbio_pop_seq(seq);
-	if (g_str_equal(resp, "^done"))
-	{
-		gchar *pidstr = strchr(list[0], ' ');
-		if (pidstr)
-		{
-			GPid pid = -1;
-			while (g_ascii_isspace(*pidstr))
-			{
-				pidstr++;
-			}
-			if (IsDigit(*pidstr))
-			{
-				gchar *end = pidstr;
-				while (IsDigit(*end))
-				{
-					end++;
-				}
-				*end = '\0';
-				pid = gdbio_atoi(pidstr);
-				if ((pid > 0) && (!gdbio_get_target_pid()))
-				{
-					gdbio_set_target_pid(pid);
-					gdbio_send_cmd("-exec-continue\n");
-				}
-			}
-		}
-	}
-}
-
-
-GHashTable *
-gdbio_get_results(gchar * resp, gchar ** list)
-{
-	if (strncmp(resp, "^error", 6) == 0)
-	{
-		if (resp[6] == ',')
-		{
-			GHashTable *h = gdblx_parse_results(resp + 7);
-			HSTR(h, msg);
-			gchar *tmp = NULL;
-			if (msg)
-			{
-				if (g_str_equal(msg, "unknown error"))
-				{
-					gint len = g_strv_length(list);
-					if ((len > 1) && list[len - 2] && *list[len - 2])
-					{
-						tmp = list[len - 2];
-						if (tmp[0] == '&')
-						{
-							tmp++;
-						}
-						tmp = g_strcompress(tmp);
-						g_strstrip(tmp);
-						msg = tmp;
-					}
-				}
-				gdbio_error_func(msg);
-				if (tmp)
-				{
-					g_free(tmp);
-				}
-			}
-			if (h)
-			{
-				g_hash_table_destroy(h);
-			}
-		}
-		return NULL;
-	}
-	if (strncmp(resp, "^done,", 6) == 0)
-		return gdblx_parse_results(resp + 6);
-	if (strncmp(resp, "*stopped,", 9) == 0)
-	{
-		gdbio_do_status(GdbStopped);
-		return gdblx_parse_results(resp + 9);
-	}
-	return NULL;
-}
-
-
-
-void
-gdbio_set_starting(gboolean s)
-{
-	starting = s;
-}
-
-void
-gdbio_target_started(gint seq, gchar ** list, gchar * resp)
-{
-	if ((strncmp(resp, "^error", 6) == 0) && (!gdbio_get_target_pid()))
-	{
-		gdbio_error_func(_("Error starting target process!\n"));
-		gdbio_do_status(GdbFinished);
-	}
-	else
-	{
-		handle_response_lines(list);
-	}
-}
-
-
-
-static void
-set_main_break(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	HTAB(h, bkpt);
-	gdbio_pop_seq(seq);
-	if (bkpt)
-	{
-		if (gdblx_check_keyval(bkpt, "number", "1"))
-		{
-			gdbio_do_status(GdbLoaded);
-		}
-	}
-	if (h)
-		g_hash_table_destroy(h);
-}
-
-
-void
-gdbio_parse_file_list(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	HLST(h, files);
-	gdbio_pop_seq(seq);
-	if (files)
-	{
-		free_source_list();
-		g_slist_foreach(files, parse_file_list_cb, files);
-		free_source_list();
-		gdbio_send_seq_cmd(set_main_break, "-break-insert _start\n");
-	}
-	else
-	{
-		gdbio_error_func
-			(_("This executable does not appear to contain the required debugging information."));
-	}
-	if (h)
-		g_hash_table_destroy(h);
-}
-
-
-
-
-
-static gboolean
-do_step_func(GHashTable * h, const gchar * reason_)
-{
-	HTAB(h, frame);
-	HSTR(frame, fullname);
-	HSTR(frame, line);
-	if (fullname && line)
-	{
-		if (gdbio_setup.step_func)
-		{
-			gchar *reason = g_strdup(reason_);
-			gchar *p;
-			for (p = reason; *p; p++)
-			{
-				if (*p == '-')
-				{
-					*p = ' ';
-				}
-			}
-			gdbio_setup.step_func(fullname, line, reason);
-			g_free(reason);
-		}
-		else
-		{
-			gdbio_info_func("%s:%s", fullname, line);
-		}
-		return TRUE;
-	}
-	else
-	{
-		HSTR(frame, func);
-		if (func)
-		{
-			return TRUE;
-		}
-	}
-	return FALSE;
-}
-
-
-
-#define reason_is(r) (r && reason && g_str_equal(reason, r))
-
-static void
-finish_function(gint seq, gchar ** list, gchar * resp)
-{
-	if (strncmp(resp, "^running", 8) == 0)
-	{
-		gdbio_set_running(TRUE);
-		gdbio_do_status(GdbRunning);
-	}
-	else
-	{
-		GHashTable *h = gdbio_get_results(resp, list);
-		HSTR(h, reason);
-		gdbio_pop_seq(seq);
-		if (reason_is("function-finished"))
-		{
-			gdbio_do_status(GdbStopped);
-			do_step_func(h, reason);
-		}
-		else
-		{
-			handle_response_lines(list);
-		}
-		if (h)
-			g_hash_table_destroy(h);
-	}
-}
-
-
-static void
-return_function(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	gdbio_pop_seq(seq);
-	if (h)
-	{
-		do_step_func(h, "returned");
-	}
-	else
-	{
-		handle_response_lines(list);
-	}
-}
-
-
-
-
-static void
-watchpoint_trigger(GHashTable * h, GHashTable * wp, const gchar * reason)
-{
-	HTAB(h, value);
-	HSTR(wp, exp);
-	HSTR(wp, number);
-	HSTR(value, new);
-	HSTR(value, old);
-	const gchar *readval = gdblx_lookup_string(value, "value");
-	if (new && old)
-	{
-		gdbio_info_func("%s #%s  expression:%s  old-value:%s  new-value:%s\n",
-				reason, number ? number : "?", exp ? exp : "?", old, new);
-	}
-	else
-	{
-		if (old)
-		{
-			gdbio_info_func("%s #%s  expression:%s  value:%s", reason,
-					number ? number : "?", exp ? exp : "?", old);
-		}
-		else
-		{
-			if (new)
-			{
-				gdbio_info_func("%s #%s  expression:%s  value:%s", reason,
-						number ? number : "?", exp ? exp : "?", new);
-			}
-			else
-			{
-				if (readval)
-				{
-					gdbio_info_func("%s #%s  expression:%s  value:%s", reason,
-							number ? number : "?", exp ? exp : "?",
-							readval);
-				}
-				else
-				{
-					gdbio_info_func("%s #%s  expression:%s", reason,
-							number ? number : "?", exp ? exp : "?");
-				}
-			}
-		}
-	}
-}
-
-static gboolean
-handle_results_hash(GHashTable * h, gchar * rectype, gchar ** list)
-{
-	if (g_str_equal(rectype, "^error"))
-	{
-		HSTR(h, msg);
-		gchar *tmp = NULL;
-		if (msg)
-		{
-			if (g_str_equal(msg, "unknown error"))
-			{
-				gint len = g_strv_length(list);
-				if ((len > 1) && list[len - 2] && *list[len - 2])
-				{
-					tmp = list[len - 2];
-					if (tmp[0] == '&')
-					{
-						tmp++;
-					}
-					tmp = g_strcompress(tmp);
-					g_strstrip(tmp);
-					msg = tmp;
-				}
-			}
-			gdbio_error_func(msg);
-			if (tmp)
-			{
-				g_free(tmp);
-			}
-			return TRUE;
-		}
-		else
-			return FALSE;
-	}
-	if (g_str_equal(rectype, "^done"))
-	{
-
-		HTAB(h, frame);
-		if (frame)
-		{
-			HSTR(frame, fullname);
-			HSTR(frame, line);
-			if (fullname && line)
-			{
-				return do_step_func(h, "done");
-			}
-		}
-		return FALSE;
-	}
-	if (g_str_equal(rectype, "*stopped"))
-	{
-		HSTR(h, reason);
-		if (!reason)
-		{
-			return FALSE;
-		}
-		if (reason_is("breakpoint-hit"))
-		{
-			if (gdblx_check_keyval(h, "bkptno", "1"))
-			{
-				gdbio_send_seq_cmd(parse_process_info,
-						   "-interpreter-exec console \"info proc\"\n");
-				return TRUE;
-			}
-			else
-			{
-				return (do_step_func(h, reason));
-			}
-			return FALSE;
-		}
-		gdbio_set_running(FALSE);
-		if (reason_is("signal-received"))
-		{
-			HSTR(h, signal_name);
-			HSTR(h, signal_meaning);
-			HSTR(h, thread_id);
-			HTAB(h, frame);
-			HSTR(frame, func);
-			HSTR(frame, file);
-			HSTR(frame, fullname);
-			HSTR(frame, line);
-			HSTR(frame, addr);
-			HSTR(frame, from);
-			HLST(frame, args);
-			if (!fullname)
-			{
-				fullname = "??";
-			}
-			if (!file)
-			{
-				file = "??";
-			}
-			if (!line)
-			{
-				line = "??";
-			}
-			if (!args)
-			{
-				args = NULL;
-			}
-			if (signal_name && signal_meaning && thread_id && frame &&
-			    addr && func && file && fullname)
-			{
-				if (gdbio_setup.signal_func)
-				{
-					GdbSignalInfo si;
-					si.signal_name = signal_name;
-					si.signal_meaning = signal_meaning;
-					si.addr = addr;
-					si.func = func;
-					si.file = file;
-					si.fullname = fullname;
-					si.line = line;
-					si.from = from;
-					gdbio_setup.signal_func(&si);
-				}
-				else
-				{
-					gdbio_info_func
-						(_("Program received signal %s (%s) at %s in function %s() at %s:%s"),
-						 signal_name, signal_meaning, addr, func, file,
-						 line);
-				}
-				return TRUE;
-			}
-		}
-
-
-		if (reason_is("end-stepping-range"))
-		{
-			return do_step_func(h, reason);
-		}
-		if (reason_is("function-finished"))
-		{
-			return do_step_func(h, reason);
-		}
-		if (reason_is("location-reached"))
-		{
-			return do_step_func(h, reason);
-		}
-		if (reason_is("watchpoint-trigger"))
-		{
-			HTAB(h, wpt);
-			if (wpt)
-			{
-				watchpoint_trigger(h, wpt, reason);
-			}
-			return do_step_func(h, reason);
-		}
-		if (reason_is("access-watchpoint-trigger"))
-		{
-			HTAB(h, hw_awpt);
-			if (hw_awpt)
-			{
-				watchpoint_trigger(h, hw_awpt, reason);
-			}
-			return do_step_func(h, reason);
-		}
-		if (reason_is("read-watchpoint-trigger"))
-		{
-			HTAB(h, hw_rwpt);
-			if (hw_rwpt)
-			{
-				watchpoint_trigger(h, hw_rwpt, reason);
-			}
-			return do_step_func(h, reason);
-		}
-		if (reason_is("watchpoint-scope"))
-		{
-			HSTR(h, wpnum);
-			gdbio_info_func(_("Watchpoint #%s out of scope"), wpnum ? wpnum : "?");
-			gdbio_send_cmd("-exec-continue\n");
-			return do_step_func(h, reason);
-		}
-
-		if (reason_is("exited-signalled"))
-		{
-			HSTR(h, signal_name);
-			HSTR(h, signal_meaning);
-			gdbio_info_func(_("Program exited on signal %s (%s).\n"),
-					signal_name ? signal_name : "UNKNOWN",
-					signal_meaning ? signal_meaning : _("Unknown signal"));
-			gdbio_target_exited(signal_name);
-			return TRUE;
-		}
-		if (reason_is("exited"))
-		{
-			HSTR(h, exit_code);
-			gchar *tail = NULL;
-			gint ec = -1;
-			if (exit_code)
-			{
-				ec = strtoul(exit_code, &tail, 8);
-				if ((!tail) || (*tail))
-				{
-					ec = -1;
-				}
-			}
-			gdbio_info_func(_("Program exited with code %d [%s]\n"), ec,
-					exit_code ? exit_code : _("(unknown)"));
-			gdbio_target_exited(exit_code);
-			return TRUE;
-		}
-		if (g_str_equal(reason, "exited-normally"))
-		{
-			gdbio_info_func(_("Program exited normally.\n"));
-			gdbio_target_exited("0");
-			return TRUE;
-		}
-	}
-	return FALSE;
-}
-
-
-
-static void
-handle_response_line(gchar * str, gchar ** list)
-{
-	gchar *rv = str;
-	if (!rv)
-	{
-		return;
-	}
-	switch (rv[0])
-	{
-		case '~':
-		case '@':
-		case '&':
-			{
-				rv++;
-				if (rv[0] == '"')
-				{
-					gint len = strlen(rv);
-					memmove(rv, rv + 1, len);
-					if (rv[len - 2] == '"')
-					{
-						rv[len - 2] = '\0';
-					}
-				}
-				rv = g_strcompress(rv);
-				gdbio_info_func(rv);
-				g_free(rv);
-				break;
-			}
-		case '^':
-		case '*':
-			{
-				gchar *comma = strchr(rv, ',');
-				if (comma)
-				{
-					GHashTable *h = gdblx_parse_results(comma + 1);
-					*comma = '\0';
-					if (g_str_equal(rv, "*stopped"))
-					{
-						gdbio_do_status(GdbStopped);
-					}
-					if (!handle_results_hash(h, rv, list))
-					{
-						gdblx_dump_table(h);
-					}
-					g_hash_table_destroy(h);
-				}
-				else
-				{
-					if (g_str_equal(rv, "^running"))
-					{
-						if (starting)
-						{
-							starting = FALSE;
-						}
-                        gdbio_do_status(GdbRunning);
-						gdbio_set_running(TRUE);
-					}
-				}
-				break;
-			}
-		default:
-			{
-				break;
-			}
-	}
-}
-
-
-
-
-#define prompt "\n(gdb) \n"
-#define prlen 8
-
-
-#define starts_with_token(resp) \
-  ( IsDigit(resp[0]) && IsDigit(resp[1]) && \
-    IsDigit(resp[2]) && IsDigit(resp[3]) && \
-    IsDigit(resp[4]) && IsDigit(resp[5]) && \
-    strchr("^*=+", resp[6]) )
-
-
-void
-gdbio_consume_response(GString * recv_buf)
-{
-	gchar *eos = NULL;
-	do
-	{
-		if (recv_buf->len)
-		{
-			eos = strstr(recv_buf->str, prompt);
-		}
-		else
-		{
-			eos = NULL;
-		}
-		if (eos)
-		{
-			gint seq = -1;
-			gchar seqbuf[SEQ_LEN + 2];
-			ResponseHandler handler = NULL;
-			gchar **lines;
-			gint len;
-			*eos = '\0';
-			lines = g_strsplit(recv_buf->str, "\n", 0);
-			*eos = '\n';
-			len = g_strv_length(lines);
-			g_string_erase(recv_buf, 0, (eos - recv_buf->str) + 8);
-			if (len)
-			{
-				gchar *resp = lines[len - 1];
-				if (starts_with_token(resp))
-				{
-					strncpy(seqbuf, resp, SEQ_LEN);
-					seqbuf[SEQ_LEN] = '\0';
-					seq = gdbio_atoi(seqbuf);
-					if (seq >= 0)
-					{
-						handler = gdbio_seq_lookup(seq);
-						if (handler)
-						{
-							memmove(resp, resp + SEQ_LEN,
-								strlen(resp + SEQ_LEN) + 1);
-							g_strstrip(resp);
-							handler(seq, lines, resp);
-							g_strfreev(lines);
-							do_loop();
-							continue;
-						}
-						else
-						{
-							g_printerr
-								("***Error: Could not find handler for token #%s\n",
-								 seqbuf);
-						}
-					}
-				}
-			}
-			if (lines)
-			{
-				handle_response_lines(lines);
-				g_strfreev(lines);
-			}
-		}
-		do_loop();
-	}
-	while (eos);
-}
-
-
-
-
-
-void
-gdbio_continue(void)
-{
-	gdbio_send_cmd("-exec-continue\n");
-}
-
-
-
-
-void
-gdbio_return(void)
-{
-	gdbio_send_seq_cmd(return_function, "-exec-return\n");
-}
-
-
-void
-gdbio_finish(void)
-{
-	gdbio_send_seq_cmd(finish_function, "-exec-finish\n");
-}


Modified: geanygdb/src/gdb-io-run.c
866 files changed, 0 insertions(+), 866 deletions(-)
===================================================================
@@ -1,866 +0,0 @@
-/*
- * gdb-io-run.c - Process execution and input functions for GDB wrapper library.
- * Copyright 2008 Jeff Pohlmeyer <yetanothergeek(at)gmail(dot)com>
- *
- * 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. *
- */
-
-#include <unistd.h>
-#include <signal.h>
-#include <string.h>
-
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#endif
-#include <geanyplugin.h>
-
-extern GeanyFunctions *geany_functions;
-#include "gdb-io-priv.h"
-
-
-extern gint g_unlink(const gchar * filename);
-
-
-GdbIoSetup gdbio_setup;
-
-
-static const gchar *gdbio_args[] = { "gdb", "--interpreter=mi", "-nx", NULL };
-
-static GPid gdbio_pid = 0;
-static GPid target_pid = 0;
-static GPid xterm_pid = 0;
-
-static GSource *gdbio_src;
-static gint gdbio_in;
-static gint gdbio_out;
-static GIOChannel *gdbio_ch_in;
-static GIOChannel *gdbio_ch_out;
-static guint gdbio_id_in;
-static guint gdbio_id_out;
-
-static GString send_buf = { NULL, 0, 0 };
-static GString recv_buf = { NULL, 0, 0 };
-
-static gchar *xterm_tty_file = NULL;
-
-
-static gint sequence = SEQ_MIN;
-static gboolean is_running = FALSE;
-static gint process_token = 0;
-
-
-static void send_to_gdb(const gchar *data);
-
-
-/*
-  Hash table to associate a "tokenized" GDB command with a function call.
-  This stores a list of key-value pairs where the unique sequence-number
-  (GDB token) is the key, and a ResponseHandler function pointer is the value.
-*/
-static GHashTable *sequencer;
-
-
-
-#if !GLIB_CHECK_VERSION(2, 14, 0)
-static void
-g_string_append_vprintf(GString *str, const gchar *fmt, va_list args)
-{
-	gchar *tmp = g_strdup_vprintf(fmt, args);
-	g_string_append(str, tmp);
-	g_free(tmp);
-}
-#endif
-
-
-/* Add a handler function to the sequencer */
-gint
-gdbio_send_seq_cmd(ResponseHandler func, const gchar * fmt, ...)
-{
-	va_list args;
-	GString *data;
-	if (!gdbio_pid)
-	{
-		return 0;
-	}
-	if (sequence >= SEQ_MAX)
-	{
-		sequence = SEQ_MIN;
-	}
-	else
-	{
-		sequence++;
-	}
-	if (!sequencer)
-	{
-		sequencer = g_hash_table_new(g_direct_hash, g_direct_equal);
-	}
-	g_hash_table_insert(sequencer, GINT_TO_POINTER(sequence), func);
-	data = g_string_sized_new(128);
-	g_string_append_printf(data, "%d", sequence);
-	va_start(args, fmt);
-	g_string_append_vprintf(data, fmt, args);
-	va_end(args);
-	send_to_gdb(data->str);
-	g_string_free(data, TRUE);
-	return sequence;
-}
-
-
-ResponseHandler
-gdbio_seq_lookup(gint seq)
-{
-	return g_hash_table_lookup(sequencer, GINT_TO_POINTER(seq));
-}
-
-
-void
-gdbio_pop_seq(gint seq)
-{
-	g_hash_table_remove(sequencer, GINT_TO_POINTER(seq));
-}
-
-static gboolean
-gerror(const gchar * msg, GError ** err)
-{
-	if (*err)
-	{
-		if (msg)
-		{
-			gdbio_error_func("%s\n%s\n", msg, (*err)->message);
-		}
-		else
-		{
-			gdbio_error_func("%s\n", (*err)->message);
-		}
-		g_error_free(*err);
-		*err = NULL;
-		return TRUE;
-	}
-	else
-	{
-		return FALSE;
-	}
-}
-
-
-gint
-gdbio_atoi(const gchar * str)
-{
-	gchar *tail = NULL;
-	gint rv = strtol(str, &tail, 10);
-	return (tail && !*tail) ? rv : -1;
-}
-
-
-void
-gdbio_error_func(const gchar * fmt, ...)
-{
-	va_list args;
-	gchar *msg;
-	va_start(args, fmt);
-	msg = g_strdup_vprintf(fmt, args);
-	if (gdbio_setup.error_func)
-	{
-		gdbio_setup.error_func(g_strstrip(msg));
-	}
-	else
-	{
-		g_printerr("%s", msg);
-	}
-	g_free(msg);
-	va_end(args);
-}
-
-
-void
-gdbio_info_func(const gchar * fmt, ...)
-{
-	va_list args;
-	gchar *msg;
-	va_start(args, fmt);
-	msg = g_strdup_vprintf(fmt, args);
-	if (gdbio_setup.info_func)
-	{
-		gdbio_setup.info_func(g_strstrip(msg));
-	}
-	else
-	{
-		g_printerr("%s", msg);
-	}
-	g_free(msg);
-	va_end(args);
-}
-
-
-gint
-gdbio_wait(gint ms)
-{
-	struct timespec req = { 0, 0 }, rem =
-	{
-	0, 0};
-	gint rms = ms;
-	if (ms >= 1000)
-	{
-		req.tv_sec = ms / 1000;
-		rms = ms % 1000;
-	}
-	req.tv_nsec = rms * 1000000;	/* 1 millisecond = 1,000,000 nanoseconds */
-	do
-	{
-		nanosleep(&req, &rem);
-		if ((rem.tv_sec || rem.tv_nsec))
-		{
-			memcpy(&req, &rem, sizeof(req));
-			memset(&rem, 0, sizeof(rem));
-		}
-		else
-		{
-			break;
-		}
-
-	}
-	while (1);
-	return ms;
-}
-
-
-
-void
-gdbio_send_cmd(const gchar * fmt, ...)
-{
-	va_list args;
-	gchar *data;
-	if (!gdbio_pid)
-	{
-		return;
-	}
-	va_start(args, fmt);
-	data = g_strdup_vprintf(fmt, args);
-	va_end(args);
-
-	send_to_gdb(data);
-	g_free(data);
-}
-
-
-
-void
-gdbio_set_running(gboolean running)
-{
-	is_running = running;
-}
-
-
-
-static void
-kill_xterm(void)
-{
-	if (xterm_pid)
-	{
-		kill(xterm_pid, SIGKILL);
-		xterm_pid = 0;
-	}
-}
-
-
-
-static gchar *
-start_xterm(const gchar * term_cmd)
-{
-	const gchar *term_args[] = { "xterm", "-title", "Debug terminal", "-e", NULL, NULL, NULL };
-	GError *err = NULL;
-	gint i = 0;
-	gchar *tty_name = NULL;
-	const gchar *exe_name = basename(term_cmd);
-	gchar *all;
-	if (!gdbio_setup.temp_dir)
-	{
-		gdbio_error_func(_("tty temporary directory not specified!\n"));
-		return NULL;
-	}
-	if (!g_file_test(gdbio_setup.temp_dir, G_FILE_TEST_IS_DIR))
-	{
-		gdbio_error_func(_("tty temporary directory not found!\n"));
-		return NULL;
-	}
-	if (!xterm_tty_file)
-	{
-		xterm_tty_file = g_strdup_printf("%s/%d.tty", gdbio_setup.temp_dir, getpid());
-	}
-	if (g_file_set_contents(xterm_tty_file, "", -1, &err))
-	{
-		g_unlink(xterm_tty_file);
-	}
-	else
-	{
-		gerror("writing ttyname logfile", &err);
-		g_unlink(xterm_tty_file);
-		return FALSE;
-	}
-	if (!gdbio_setup.tty_helper)
-	{
-		gdbio_error_func(_("tty helper program not specified!\n"));
-		return NULL;
-	}
-	if (!
-	    (g_file_test(gdbio_setup.tty_helper, G_FILE_TEST_IS_EXECUTABLE) &&
-	     g_file_test(gdbio_setup.tty_helper, G_FILE_TEST_IS_REGULAR)))
-	{
-		gdbio_error_func(_("tty helper program not found!\n"));
-		return NULL;
-	}
-	term_args[0] = term_cmd;
-	if (g_str_equal(exe_name, "xterm") || g_str_equal(exe_name, "konsole"))
-	{
-		term_args[1] = "-T";
-	}
-	else
-	{
-		if (g_str_equal(exe_name, "gnome-terminal"))
-		{
-			term_args[1] = "--title";
-			term_args[3] = "-x";
-		}
-		else
-		{
-			if (g_str_equal(exe_name, "rxvt") || g_str_equal(exe_name, "urxvt"))
-			{
-				term_args[1] = "-title";
-			}
-			else
-			{
-				term_args[1] = "-e";
-				term_args[2] = NULL;
-			}
-		}
-	}
-	i = 0;
-	while (term_args[i])
-	{
-		i++;
-	}
-	term_args[i] = gdbio_setup.tty_helper;
-	term_args[i + 1] = xterm_tty_file;
-	all = g_strjoinv("\"  \"", (gchar **) term_args);
-	gdbio_info_func("\"%s\"\n", all);
-	g_free(all);
-	if (g_spawn_async(NULL, (gchar **) term_args, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, &xterm_pid, &err))
-	{
-		gchar *contents = NULL;
-		gsize len;
-		gint ms = 0;
-		do
-		{
-			if (g_file_test(xterm_tty_file, G_FILE_TEST_EXISTS))
-			{
-				if (g_file_get_contents(xterm_tty_file, &contents, &len, &err))
-				{
-					g_strstrip(contents);
-					if (strlen(contents))
-					{
-						tty_name = g_strdup(contents);
-						gdbio_info_func(_("Attaching to terminal %s\n"),
-								tty_name);
-					}
-					break;
-				}
-				else
-				{
-					gerror("Error getting tty name:", &err);
-				}
-			}
-			ms += gdbio_wait(250);
-		}
-		while (ms <= 10000);
-		if (ms > 10000)
-		{
-			gdbio_error_func(_("Timeout waiting for TTY name.\n"));
-			kill_xterm();
-		}
-	}
-	else
-	{
-		gerror("Error starting terminal: ", &err);
-	}
-	g_unlink(xterm_tty_file);
-	return tty_name;
-}
-
-
-
-static void
-free_buf(GString * buf)
-{
-	if (buf->str)
-	{
-		g_free(buf->str);
-		buf->str = NULL;
-		buf->len = 0;
-		buf->allocated_len = 0;
-	}
-}
-
-static void
-shutdown_channel(GIOChannel ** ch)
-{
-	if (*ch)
-	{
-		GError *err = NULL;
-		gint fd = g_io_channel_unix_get_fd(*ch);
-		g_io_channel_shutdown(*ch, TRUE, &err);
-		gerror("Shutting down channel", &err);
-		g_io_channel_unref(*ch);
-		*ch = NULL;
-		if (fd >= 0)
-		{
-			close(fd);
-		}
-	}
-}
-
-
-static void
-on_gdb_exit(GPid pid, gint status, gpointer data)
-{
-	gdbio_pid = 0;
-	gdbio_info_func(_("GDB exited (pid=%d)\n"), pid);
-	g_spawn_close_pid(pid);
-
-
-	shutdown_channel(&gdbio_ch_in);
-
-	g_source_remove(gdbio_id_out);
-	shutdown_channel(&gdbio_ch_out);
-
-	free_buf(&send_buf);
-	if (recv_buf.len)
-	{
-		gdbio_info_func("%s\n", recv_buf.str);
-	}
-	free_buf(&recv_buf);
-
-	if (target_pid)
-	{
-		kill(target_pid, SIGKILL);
-		target_pid = 0;
-	}
-	gdbio_set_running(FALSE);
-	gdblx_scanner_done();
-	gdbio_do_status(GdbDead);
-}
-
-
-
-static gboolean
-on_send_to_gdb(gpointer data)
-{
-	GIOStatus st;
-	GError *err = NULL;
-	gsize count;
-	GIOChannel *src = gdbio_ch_in;
-
-	if (send_buf.len)
-	{
-		while (send_buf.len)
-		{
-			st = g_io_channel_write_chars(src, send_buf.str, send_buf.len, &count,
-						      &err);
-			g_string_erase(&send_buf, 0, count);
-			if (err || (st == G_IO_STATUS_ERROR) || (st == G_IO_STATUS_EOF))
-			{
-				gerror("Error sending command", &err);
-				break;
-			}
-		}
-		st = g_io_channel_flush(src, &err);
-		gerror("Error pushing command", &err);
-		gdbio_wait(10);
-	}
-	return (send_buf.len > 0);
-}
-
-
-
-static void
-delay_send_to_gdb(const gchar *data)
-{
-	g_string_append(&send_buf, data);
-	g_idle_add(on_send_to_gdb, NULL);
-}
-
-
-
-static void
-send_to_gdb(const gchar *data)
-{
-	GIOStatus st;
-	GError *err = NULL;
-	gsize count;
-	GIOChannel *src = gdbio_ch_in;
-	GString *text = g_string_new(data);
-
-	if (text->len)
-	{
-		while (text->len)
-		{
-			st = g_io_channel_write_chars(src, text->str, text->len, &count,
-						      &err);
-			g_string_erase(text, 0, count);
-			if (err || (st == G_IO_STATUS_ERROR) || (st == G_IO_STATUS_EOF))
-			{
-				gerror("Error sending command", &err);
-				/* puffer string for later retry */
-				delay_send_to_gdb(text->str);
-				break;
-			}
-		}
-		st = g_io_channel_flush(src, &err);
-		gerror("Error pushing command", &err);
-	}
-	g_string_free(text, TRUE);
-}
-
-
-
-void
-gdbio_target_exited(const gchar * reason)
-{
-	gdbio_info_func(_("Target process exited. (pid=%d; %s%s)\n"), target_pid,
-			reason
-			&& g_ascii_isdigit(reason[0]) ? _("code=") : _("reason:"),
-			reason ? reason : "unknown");
-	target_pid = 0;
-	kill_xterm();
-	gdbio_set_running(FALSE);
-	gdbio_do_status(GdbFinished);
-	if (process_token)
-	{
-		gdbio_pop_seq(process_token);
-		process_token = 0;
-	}
-}
-
-static GdbStatus gdbio_status = GdbDead;
-
-void
-gdbio_do_status(GdbStatus s)
-{
-	gdbio_status = s;
-	if (gdbio_setup.status_func)
-	{
-		gdbio_setup.status_func(s);
-	}
-}
-
-
-
-void
-gdbio_pause_target(void)
-{
-	if (target_pid)
-	{
-		kill(target_pid, SIGINT);
-	}
-}
-
-
-
-static void
-target_killed(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	gdbio_pop_seq(seq);
-	if (h)
-	{
-		g_hash_table_destroy(h);
-	}
-	if (strncmp(resp, "^done", 5) == 0)
-	{
-		gdbio_target_exited("killed by GDB");
-	}
-}
-
-
-
-void
-gdbio_kill_target(gboolean force)
-{
-	if (target_pid)
-	{
-		gchar pidstr[64];
-		GPid this_pid = target_pid;
-		gint ms = 0;
-		snprintf(pidstr, sizeof(pidstr) - 1, "/proc/%d", target_pid);
-		if (!g_file_test(pidstr, G_FILE_TEST_IS_DIR))
-		{
-			gdbio_info_func(_("Directory %s not found!\n"), pidstr);
-			pidstr[0] = '\0';
-		}
-		if (!force)
-		{
-			gdbio_info_func(_("Shutting down target program.\n"));
-			gdbio_send_seq_cmd(target_killed, "kill\n");
-			gdbio_wait(250);
-			do_loop();
-		}
-		else
-		{
-			gdbio_info_func(_("Killing target program.\n"));
-			kill(this_pid, SIGKILL);
-		}
-		while (1)
-		{
-			do_loop();
-			if (ms >= 2000)
-			{
-				gdbio_info_func(_("Timeout waiting for target process.\n"));
-				if (!force)
-				{
-					gdbio_info_func(_("Using a bigger hammer!\n"));
-					gdbio_kill_target(TRUE);
-				}
-				break;
-			}
-			if (target_pid != this_pid)
-			{
-				break;
-			}
-			if ((pidstr[0]) && !g_file_test(pidstr, G_FILE_TEST_EXISTS))
-			{
-				break;
-			}
-			if (!(ms % 1000))
-				gdbio_info_func(_("Waiting for target process to exit.\n"));
-			ms += gdbio_wait(250);
-		}
-	}
-	kill_xterm();
-}
-
-static gboolean
-have_console(void)
-{
-	return (gdbio_status == GdbLoaded) || (gdbio_status == GdbStopped)
-		|| (gdbio_status == GdbFinished);
-}
-
-void
-gdbio_exit(void)
-{
-	gdbio_kill_target(!have_console());
-	if (gdbio_pid)
-	{
-		GPid this_gdb = gdbio_pid;
-		gint ms = 0;
-		gchar pidstr[64];
-		snprintf(pidstr, sizeof(pidstr) - 1, "/proc/%d", this_gdb);
-		if (is_running)
-		{
-			if (!g_file_test(pidstr, G_FILE_TEST_IS_DIR))
-			{
-				gdbio_info_func(_("Directory %s not found!\n"), pidstr);
-				pidstr[0] = '\0';
-			}
-			do
-			{
-				do_loop();
-				if (gdbio_pid == this_gdb)
-				{
-					gdbio_info_func(_("Killing GDB (pid=%d)\n"), this_gdb);
-				}
-				else
-				{
-					break;
-				}
-				kill(this_gdb, SIGKILL);
-				ms += gdbio_wait(500);
-				if (pidstr[0] && !g_file_test(pidstr, G_FILE_TEST_EXISTS))
-				{
-					break;
-				}
-				if (ms > 2000)
-				{
-					gdbio_error_func(_("Timeout trying to kill GDB.\n"));
-					break;
-				}
-			}
-			while (1);
-			free_buf(&send_buf);
-			gdbio_wait(500);
-		}
-		else
-		{
-			gdbio_info_func(_("Shutting down GDB\n"));
-			gdbio_send_cmd("-gdb-exit\n");
-			while (1)
-			{
-				do_loop();
-				ms += gdbio_wait(250);
-				if (pidstr[0] && !g_file_test(pidstr, G_FILE_TEST_EXISTS))
-				{
-					break;
-				}
-				if (gdbio_pid == this_gdb)
-				{
-					if (!(ms % 1000))
-						gdbio_info_func(_("Waiting for GDB to exit.\n"));
-				}
-				else
-				{
-					break;
-				}
-				if (ms > 2000)
-				{
-					gdbio_info_func(_("Timeout waiting for GDB to exit.\n"));
-					gdbio_set_running(TRUE);
-					gdbio_exit();
-					break;
-				}
-			}
-		}
-	}
-	if (sequencer)
-	{
-		g_hash_table_destroy(sequencer);
-		sequencer = NULL;
-	}
-	g_free(xterm_tty_file);
-	xterm_tty_file = NULL;
-}
-
-
-
-static void
-load_target(const gchar * exe_name)
-{
-	gdbio_set_running(FALSE);
-	gdbio_send_cmd("-file-exec-and-symbols %s\n", exe_name);
-	gdbio_send_seq_cmd(gdbio_parse_file_list, "-file-list-exec-source-files\n");
-
-}
-
-
-
-static gboolean
-on_read_from_gdb(GIOChannel * src, GIOCondition cond, gpointer data)
-{
-	gchar buf[1024];
-	GIOStatus st;
-	GError *err = NULL;
-	gsize count;
-	st = g_io_channel_read_chars(src, buf, sizeof(buf) - 1, &count, &err);
-	buf[count] = '\0';
-	g_string_append_len(&recv_buf, buf, count);
-	gerror("Error reading response", &err);
-	gdbio_consume_response(&recv_buf);
-	gdbio_wait(10);
-	return TRUE;
-}
-
-
-#define GDB_SPAWN_FLAGS \
-G_SPAWN_SEARCH_PATH | \
-G_SPAWN_DO_NOT_REAP_CHILD
-
-
-void
-gdbio_load(const gchar * exe_name)
-{
-	GError *err = NULL;
-	/* need to execute gdb with LANG=C because we parse the output
-	 * for break and watch points
-	 * however, the debugged applications ought to run under the
-	 * systems locale (i.e. the current LANG) */
-	const gchar *exclude[] = { "LANG", NULL };
-	gchar **gdbio_env = utils_copy_environment(exclude, "LANG", "C", NULL);
-	const gchar *env_lang = g_getenv("LANG");
-	gdbio_exit();
-	if (g_spawn_async_with_pipes(NULL, (gchar **) gdbio_args, gdbio_env,
-				     GDB_SPAWN_FLAGS, NULL,
-				     NULL, &gdbio_pid, &gdbio_in, &gdbio_out, NULL, &err))
-	{
-		gdbio_info_func(_("Starting gdb (pid=%d)\n"), gdbio_pid);
-
-		g_child_watch_add(gdbio_pid, on_gdb_exit, NULL);
-		gdbio_src = g_child_watch_source_new(gdbio_pid);
-
-		gdbio_ch_in = g_io_channel_unix_new(gdbio_in);
-		g_io_channel_set_encoding(gdbio_ch_in, NULL, &err);
-		gerror("Error setting encoding", &err);
-		g_io_channel_set_buffered(gdbio_ch_in, FALSE);
-
-		gdbio_ch_out = g_io_channel_unix_new(gdbio_out);
-		g_io_channel_set_encoding(gdbio_ch_out, NULL, &err);
-		gerror("Error setting encoding", &err);
-		g_io_channel_set_buffered(gdbio_ch_out, FALSE);
-
-		gdbio_id_out = g_io_add_watch(gdbio_ch_out, G_IO_IN, on_read_from_gdb, NULL);
-
-		gdbio_send_cmd("-gdb-set width 0\n-gdb-set height 0\n");
-		/* restore LANG for apps here, gdb is under LANG=C */
-		gdbio_send_cmd("-gdb-set environment LANG=%s\n", env_lang);
-		if (exe_name)
-		{
-			load_target(exe_name);
-		}
-	}
-	else
-	{
-		gerror("Error starting debugger.", &err);
-	}
-	g_strfreev(gdbio_env);
-}
-
-
-
-void
-gdbio_exec_target(const gchar * terminal_command)
-{
-	if (terminal_command)
-	{
-		gchar *tty_name = start_xterm(terminal_command);
-		if (tty_name)
-		{
-			gdbio_send_cmd("-inferior-tty-set %s\n", tty_name);
-			g_free(tty_name);
-		}
-		else
-			return;
-	}
-	if (process_token)
-	{
-		gdbio_pop_seq(process_token);
-	}
-	gdbio_set_starting(TRUE);
-	gdbio_do_status(GdbStartup);
-	process_token = gdbio_send_seq_cmd(gdbio_target_started, "-exec-run\n");
-}
-
-
-
-void
-gdbio_set_target_pid(GPid pid)
-{
-	gdbio_info_func(_("Started target process. (pid=%d)\n"), pid);
-	target_pid = pid;
-}
-
-
-
-GPid
-gdbio_get_target_pid(void)
-{
-	return target_pid;
-}


Modified: geanygdb/src/gdb-io-stack.c
216 files changed, 0 insertions(+), 216 deletions(-)
===================================================================
@@ -1,216 +0,0 @@
-/*
- * gdb-io-stack.c - Stack information functions for GDB wrapper library.
- * Copyright 2008 Jeff Pohlmeyer <yetanothergeek(at)gmail(dot)com>
- *
- * 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. *
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <string.h>
-#include <glib.h>
-
-#include "geanyplugin.h"
-#include "gdb-io-priv.h"
-
-static GdbListFunc gdbio_stack_list_func = NULL;
-static GSList *frame_list = NULL;
-
-/*
-  Max number of frames to return in stack list -
-  you can increase if you want, but too large
-  value can be *very* slow!
-*/
-#define MAX_STACK_RETURN 1024
-
-
-
-static void
-free_frame_list(void)
-{
-	GSList *p;
-	for (p = frame_list; p; p = p->next)
-	{
-		if (p->data)
-		{
-			GdbFrameInfo *f = p->data;
-			if (f->func)
-			{
-				g_free(f->func);
-			}
-			if (f->filename)
-			{
-				g_free(f->filename);
-			}
-			if (f->args)
-			{
-				gdbio_free_var_list(f->args);
-			}
-			g_free(f);
-			p->data = NULL;
-		}
-	}
-	g_slist_free(frame_list);
-	frame_list = NULL;
-}
-
-
-
-static void
-stack_cb(gpointer data, gpointer user_data)
-{
-	GdbLxValue *v = (GdbLxValue *) data;
-	if (v && (v->type == vt_HASH))
-	{
-		GHashTable *frame = v->hash;
-		HSTR(frame, level);
-		HSTR(frame, addr);
-		HSTR(frame, func);
-		HSTR(frame, file);
-		HSTR(frame, fullname);
-		HSTR(frame, line);
-		if (!fullname)
-			fullname = file;
-		if (level && addr && func && fullname && line)
-		{
-			GdbFrameInfo *frame_info = g_new0(GdbFrameInfo, 1);
-			strncpy(frame_info->level, level, sizeof(frame_info->level) - 1);
-			strncpy(frame_info->addr, addr, sizeof(frame_info->addr) - 1);
-			strncpy(frame_info->line, line, sizeof(frame_info->line) - 1);
-			frame_info->func = g_strdup(func);
-			frame_info->filename = g_strdup(fullname);
-			frame_list = g_slist_append(frame_list, frame_info);
-		}
-	}
-}
-
-
-
-static void
-merge_stack_args_cb(gpointer data, gpointer user_data)
-{
-	GdbLxValue *v = (GdbLxValue *) data;
-	if (v && (v->type = vt_HASH))
-	{
-		GHashTable *hash = v->hash;
-		HSTR(hash, level);
-		HLST(hash, args);
-		if (level && args)
-		{
-			gchar *tail;
-			gint n = strtoul(level, &tail, 10);
-			GdbFrameInfo *frame = NULL;
-			GSList *p;
-			for (p = frame_list; p; p = p->next)
-			{
-				if (p->data)
-				{
-					GdbFrameInfo *f = p->data;
-					if (gdbio_atoi(f->level) == n)
-					{
-						frame = f;
-						break;
-					}
-				}
-			}
-			if (frame)
-			{
-				for (p = args; p; p = p->next)
-				{
-					v = p->data;
-					if (v && (v->type = vt_HASH))
-					{
-						HSTR(v->hash, name);
-						HSTR(v->hash, value);
-						if (name && value)
-						{
-							GdbVar *arg = g_new0(GdbVar, 1);
-							arg->name = g_strdup(name);
-							arg->value = g_strdup(value);
-							frame->args =
-								g_slist_append(frame->args, arg);
-						}
-					}
-				}
-			}
-		}
-	}
-}
-
-
-
-static void
-parse_stack_args(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	HLST(h, stack_args);
-	gdbio_pop_seq(seq);
-	if (stack_args)
-	{
-		if (frame_list)
-		{
-			g_slist_foreach(stack_args, merge_stack_args_cb, NULL);
-			gdbio_stack_list_func(frame_list);
-			free_frame_list();
-		}
-	}
-	if (h)
-		g_hash_table_destroy(h);
-}
-
-
-
-static void
-parse_stack_list(gint seq, gchar ** list, gchar * resp)
-{
-	GHashTable *h = gdbio_get_results(resp, list);
-	HLST(h, stack);
-	gdbio_pop_seq(seq);
-	if (stack)
-	{
-		g_slist_foreach(stack, stack_cb, h);
-		if (frame_list)
-		{
-			gint len = g_slist_length(frame_list);
-			if (len >= MAX_STACK_RETURN)
-			{
-				gdbio_error_func
-					(ngettext(
-						"Stack too deep to display!\n(Showing only %d frame)",
-						"Stack too deep to display!\n(Showing only %d frames)",
-						 len), len);
-			}
-			gdbio_send_seq_cmd(parse_stack_args, "-stack-list-arguments 1 0 %d\n",
-					   len - 1);
-		}
-	}
-	if (h)
-		g_hash_table_destroy(h);
-}
-
-
-
-void
-gdbio_show_stack(GdbListFunc func)
-{
-	gdbio_stack_list_func = func;
-	if (func)
-	{
-		gdbio_send_seq_cmd(parse_stack_list, "-stack-list-frames 0 %d\n",
-				   MAX_STACK_RETURN - 1);
-	}
-}


Modified: geanygdb/src/gdb-io.h
228 files changed, 0 insertions(+), 228 deletions(-)
===================================================================
@@ -1,228 +0,0 @@
-/*
- * gdb-io.h - A GLib-based library wrapper for the GNU debugger.
- * Copyright 2008 Jeff Pohlmeyer <yetanothergeek(at)gmail(dot)com>
- *
- * 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.
- */
-
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-extern ssize_t getline(char **lineptr, size_t * n, FILE * stream);
-extern const gchar *basename(const gchar * path);
-
-gint gdbio_atoi(const gchar * str);
-gint gdbio_wait(gint ms);
-
-
-typedef enum
-{
-	GdbDead,
-	GdbLoaded,
-	GdbStartup,
-	GdbRunning,
-	GdbStopped,
-	GdbFinished
-} GdbStatus;
-
-
-typedef struct
-{
-	gchar *type;
-	gchar *name;
-	gchar *value;
-	gchar *numchild;
-} GdbVar;
-
-
-typedef struct
-{
-	gchar level[12];
-	gchar addr[12];
-	gchar line[12];
-	gchar *func;
-	gchar *filename;
-	GSList *args;
-} GdbFrameInfo;
-
-
-typedef struct
-{
-	const gchar *signal_name;
-	const gchar *signal_meaning;
-	const gchar *addr;
-	const gchar *func;
-	const gchar *file;
-	const gchar *fullname;
-	const gchar *line;
-	const gchar *from;
-} GdbSignalInfo;
-
-
-typedef struct
-{
-	gchar *addr;
-	gchar *disp;
-	gchar *enabled;
-	gchar *file;
-	gchar *fullname;
-	gchar *func;
-	gchar *line;
-	gchar *number;
-	gchar *times;
-	gchar *type;
-	gchar *what;
-	gchar *cond;
-	gchar *ignore;
-} GdbBreakPointInfo;
-
-
-typedef struct
-{
-	gchar *cwd;
-	gchar *path;
-	gchar *args;
-	gchar *dirs;
-} GdbEnvironInfo;
-
-
-typedef void (*GdbMsgFunc) (const gchar * msg);
-typedef void (*GdbListFunc) (const GSList * list);
-typedef void (*GdbFrameFunc) (const GdbFrameInfo * frame, const GSList * locals);
-typedef void (*GdbSignalFunc) (const GdbSignalInfo * si);
-typedef void (*GdbStatusFunc) (GdbStatus status);
-typedef void (*GdbStepFunc) (const gchar * filename, const gchar * line, const gchar * reason);
-typedef void (*GdbObjectFunc) (const GdbVar * obj, const GSList * list);
-typedef void (*GdbEnvironFunc) (const GdbEnvironInfo * env);
-
-
-
-/* Load a program into the debugger */
-void gdbio_load(const gchar * exe_name);
-
-/* Termina@@ Diff output truncated at 100000 characters. @@

--------------
This E-Mail was brought to you by github_commit_mail.py (Source: TBD).


More information about the Plugins-Commits mailing list