scsh-checkins
[Top] [All Lists]

[Scsh-checkins] CVS: scx/c/xlib util.c,1.2,1.3

To: scsh-checkins@lists.sourceforge.net
Subject: [Scsh-checkins] CVS: scx/c/xlib util.c,1.2,1.3
From: Norbert Freudemann <nofreude@users.sourceforge.net>
Date: Tue, 28 Aug 2001 07:39:09 -0700
List-id: <scsh-checkins.lists.sourceforge.net>
Sender: scsh-checkins-admin@lists.sourceforge.net
Update of /cvsroot/scsh/scx/c/xlib
In directory usw-pr-cvs1:/tmp/cvs-serv11251

Modified Files:
        util.c 
Log Message:
first implementation for s48


Index: util.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/util.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** util.c      2001/05/14 13:48:37     1.2
--- util.c      2001/08/28 14:39:07     1.3
***************
*** 1,54 ****
  #include "xlib.h"
  
! static s48_value P_Get_Default (d, program, option) s48_value d, program, 
option; {
!     register char *ret;
! 
!     Check_Type (d, T_Display);
!     if (ret = XGetDefault (DISPLAY(d)->dpy, Get_Strsym (program),
!           Get_Strsym (option)))
!       return Make_String (ret, strlen (ret));
!     return S48_FALSE;
  }
  
- static s48_value P_Resource_Manager_String (d) s48_value d; {
-     register char *ret;
  
!     Check_Type (d, T_Display);
!     ret = XResourceManagerString (DISPLAY(d)->dpy);
!     return ret ? Make_String (ret, strlen (ret)) : S48_FALSE;
  }
  
- static s48_value P_Parse_Geometry (string) s48_value string; {
-     s48_value ret, t;
-     register mask;
-     int x, y;
-     unsigned w, h;
- 
-     mask = XParseGeometry (Get_Strsym (string), &x, &y, &w, &h);
-     t = ret = P_Make_List (s48_enter_integer (6), S48_FALSE);
-     if (mask & XNegative) S48_CAR (t) = S48_TRUE; t = S48_CDR (t);
-     if (mask & YNegative) S48_CAR (t) = S48_TRUE; t = S48_CDR (t);
-     if (mask & XValue) S48_CAR (t) = s48_enter_integer (x); t = S48_CDR (t);
-     if (mask & YValue) S48_CAR (t) = s48_enter_integer (y); t = S48_CDR (t);
-     if (mask & WidthValue) S48_CAR (t) = s48_enter_integer (w); t = S48_CDR 
(t);
-     if (mask & HeightValue) S48_CAR (t) = s48_enter_integer (h);
-     return ret;
- }
  
- static s48_value P_Parse_Color (d, cmap, spec) s48_value d, cmap, spec; {
-     XColor ret;
  
!     Check_Type (d, T_Display);
!     if (XParseColor (DISPLAY(d)->dpy, Get_Colormap (cmap), Get_Strsym (spec),
!           &ret))
!       return Make_Color (ret.red, ret.green, ret.blue);
!     return S48_FALSE;
  }
  
! elk_init_xlib_util () {
!     Define_Primitive (P_Get_Default,       "get-default",         3, 3, EVAL);
!     Define_Primitive (P_Resource_Manager_String,
!                       "resource-manager-string",                1, 1, EVAL);
!     Define_Primitive (P_Parse_Geometry,    "parse-geometry",      1, 1, EVAL);
!     Define_Primitive (P_Parse_Color,       "parse-color",         3, 3, EVAL);
  }
--- 1,73 ----
  #include "xlib.h"
+ #include "scheme48.h"
  
! s48_value scx_Get_Default (s48_value Xdpy, s48_value program,
!                          s48_value option) {
!   char* ret;
!   if (ret = XGetDefault (SCX_EXTRACT_DISPLAY(Xdpy),
!                        s48_extract_string(program),
!                        s48_extract_string(option)))
!     return s48_enter_string(ret);
!   return S48_FALSE;
  }
  
  
! s48_value scx_Resource_Manager_String (s48_value Xdpy) {
!   char* ret;
!   
!   ret = XResourceManagerString (SCX_EXTRACT_DISPLAY(Xdpy));
!   return ret ? s48_enter_string(ret) : S48_FALSE;
  }
  
  
  
! s48_value scx_Parse_Geometry (s48_value strg) {
!   s48_value ret;
!   int x, y, res;
!   unsigned int w, h;
!   S48_DECLARE_GC_PROTECT(1);
! 
!   res = XParseGeometry (s48_extract_string(strg), &x, &y, &w, &h);
!   S48_GC_PROTECT_1(ret);
!   if (res & XNegative) {
!     ret = s48_cons(S48_TRUE, S48_NULL);
!   }else{
!     ret = s48_cons(S48_FALSE, S48_NULL);
!   }
!   if (res & YNegative) {
!     ret = s48_cons(S48_TRUE, ret);
!   }else{
!     ret = s48_cons(S48_FALSE, ret);
!   }
!   if (res & XValue) {
!     ret = s48_cons(s48_enter_integer(x), ret);
!   }else{
!     ret = s48_cons(S48_FALSE, ret);
!   }
!   if (res & YValue) {
!     ret = s48_cons(s48_enter_integer(y), ret);
!   }else{
!     ret = s48_cons(S48_FALSE, ret);
!   }
!   if (res & WidthValue) {
!     ret = s48_cons(s48_enter_integer(w), ret);
!   }else{
!     ret = s48_cons(S48_FALSE, ret);
!   }
!   if (res & HeightValue) {
!     ret = s48_cons(s48_enter_integer (h), ret);
!   }else{
!     ret = s48_cons(S48_FALSE, ret);
!   }
!   S48_GC_UNPROTECT();
!   return ret;
  }
+ 
+ // scx_Parse_Color is in colormap.c
+ 
  
! void scx_init_util(void) {
!   S48_EXPORT_FUNCTION(scx_Get_Default);
!   S48_EXPORT_FUNCTION(scx_Resource_Manager_String);
!   S48_EXPORT_FUNCTION(scx_Parse_Geometry);
  }



<Prev in Thread] Current Thread [Next in Thread>
  • [Scsh-checkins] CVS: scx/c/xlib util.c,1.2,1.3, Norbert Freudemann <=