[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/geas/src/classdef classdef.c classdef.h
From: |
Reinhard Mueller |
Subject: |
gnue/geas/src/classdef classdef.c classdef.h |
Date: |
Tue, 18 Dec 2001 16:29:12 -0500 |
CVSROOT: /cvsroot/gnue
Module name: gnue
Changes by: Reinhard Mueller <address@hidden> 01/12/18 16:29:12
Modified files:
geas/src/classdef: classdef.c classdef.h
Log message:
Added function to find a class by fully qualified name.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/geas/src/classdef/classdef.c.diff?tr1=1.29&tr2=1.30&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/geas/src/classdef/classdef.h.diff?tr1=1.26&tr2=1.27&r1=text&r2=text
Patches:
Index: gnue/geas/src/classdef/classdef.c
diff -c gnue/geas/src/classdef/classdef.c:1.29
gnue/geas/src/classdef/classdef.c:1.30
*** gnue/geas/src/classdef/classdef.c:1.29 Sat Dec 15 05:42:28 2001
--- gnue/geas/src/classdef/classdef.c Tue Dec 18 16:29:12 2001
***************
*** 19,25 ****
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! $Id: classdef.c,v 1.29 2001/12/15 10:42:28 reinhard Exp $
*/
#include "config.h"
--- 19,25 ----
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! $Id: classdef.c,v 1.30 2001/12/18 21:29:12 reinhard Exp $
*/
#include "config.h"
***************
*** 589,594 ****
--- 589,632 ----
/* =========================================================================
*\
* Classes
\* =========================================================================
*/
+
+ /* -------------------------------------------------------------------------
*\
+ * Find an existing class by fully qualified name (module::class)
+ \* -------------------------------------------------------------------------
*/
+ geas_cd_class *
+ geas_cd_class_find (const char *name)
+ {
+ char **pieces;
+ geas_cd_module *module;
+ geas_cd_class *result;
+
+ g_return_val_if_fail (_modules, NULL);
+ g_return_val_if_fail (name, NULL);
+
+ pieces = g_strsplit (name, "::", 2);
+
+ if (!pieces[0] || !pieces[1])
+ {
+ result = NULL;
+ }
+ else
+ {
+ module = geas_cd_module_find (pieces[0]);
+
+ if (!module)
+ {
+ result = NULL;
+ }
+ else
+ {
+ result = geas_cd_module_find_class (module, pieces[1]);
+ }
+ }
+
+ g_strfreev (pieces);
+
+ return (result);
+ }
/* -------------------------------------------------------------------------
*\
* Set the filename where a class is stored
Index: gnue/geas/src/classdef/classdef.h
diff -c gnue/geas/src/classdef/classdef.h:1.26
gnue/geas/src/classdef/classdef.h:1.27
*** gnue/geas/src/classdef/classdef.h:1.26 Sat Dec 15 04:54:35 2001
--- gnue/geas/src/classdef/classdef.h Tue Dec 18 16:29:12 2001
***************
*** 19,25 ****
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! $Id: classdef.h,v 1.26 2001/12/15 09:54:35 reinhard Exp $
*/
#ifndef _CLASSDEF_H
--- 19,25 ----
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! $Id: classdef.h,v 1.27 2001/12/18 21:29:12 reinhard Exp $
*/
#ifndef _CLASSDEF_H
***************
*** 97,102 ****
--- 97,103 ----
* Classes
\* -------------------------------------------------------------------------
*/
+ geas_cd_class *geas_cd_class_find (const char *name);
void geas_cd_class_set_filename (geas_cd_class *c,
const char *filename);
const char *geas_cd_class_get_name (const geas_cd_class *c);