[brlcad-commits] SF.net SVN: brlcad:[33599] brlcad/trunk

2009-01-23 Thread starseeker
Revision: 33599
  http://brlcad.svn.sourceforge.net/brlcad/?rev=33599&view=rev
Author:   starseeker
Date: 2009-01-23 21:00:13 + (Fri, 23 Jan 2009)

Log Message:
---
Add support for >, <, >=, <= to the -attr option in search

Modified Paths:
--
brlcad/trunk/NEWS
brlcad/trunk/TODO
brlcad/trunk/doc/docbook/system/man1/en/search.xml
brlcad/trunk/src/libged/search.c

Modified: brlcad/trunk/NEWS
===
--- brlcad/trunk/NEWS   2009-01-23 16:11:48 UTC (rev 33598)
+++ brlcad/trunk/NEWS   2009-01-23 21:00:13 UTC (rev 33599)
@@ -14,6 +14,7 @@
 --- 2008-XX-XX  Release 7.XX.X ---
 --
 
+* added >, <, >= and <= attr value comparisons in search - C. Yapp
 * fixed double-edged line segment sketch bug in dxf-g - John Anderson
 * mged 'inside' command no longer uses edit state objects - Bob Parker
 * reported and fixed mged documentation eto typein bug - Robert Penny

Modified: brlcad/trunk/TODO
===
--- brlcad/trunk/TODO   2009-01-23 16:11:48 UTC (rev 33598)
+++ brlcad/trunk/TODO   2009-01-23 21:00:13 UTC (rev 33599)
@@ -45,10 +45,6 @@
 * refactor mged's signal handling to make it possible to safely
   interrtupt long-running commands
 
-* add support to 'search' to find objects with a given range of
-  numeric attributes (like finding objects with region_id within a
-  given range or that equal various values)
-
 * add a -color option to all mged commands that draw geometry (B, eid,
   and E come to mind)
 

Modified: brlcad/trunk/doc/docbook/system/man1/en/search.xml
===
--- brlcad/trunk/doc/docbook/system/man1/en/search.xml  2009-01-23 16:11:48 UTC 
(rev 33598)
+++ brlcad/trunk/doc/docbook/system/man1/en/search.xml  2009-01-23 21:00:13 UTC 
(rev 33599)
@@ -82,17 +82,19 @@
   PRIMITIVES:
   
 
-  -attr attrib[=val]
+  -attr attrib[>/, <, 
>=, and <=
+ there are two possibilities - if val 
is numerical
+ a numerical comparison is performed, otherwise a string comparison is 
performed.
+ Both attrib and val 
+ are treated as patterns under shell pattern matching rules when a 
string comparison
+ is performed, but in numerical mode only the attribute name is 
pattern matched.

   
 

Modified: brlcad/trunk/src/libged/search.c
===
--- brlcad/trunk/src/libged/search.c2009-01-23 16:11:48 UTC (rev 33598)
+++ brlcad/trunk/src/libged/search.c2009-01-23 21:00:13 UTC (rev 33599)
@@ -725,49 +725,218 @@
 struct bu_attribute_value_pair *avpp;
 int equalpos = 0;
 int checkval = 0;
+int strcomparison = 0;
 int i;
+long attr_val;
 bu_vls_init(&attribname);
 bu_vls_init(&value);
 
 
-/* Check for unescaped equal sign - if present, the
- * attribute must not only be present but have the
- * value indicated.  Escaping is done with the "/"
- * character.
+/* Check for unescaped >, < or = characters.  If
+ * present, the attribute must not only be present
+ * but the value assigned to the attribute must
+ * satisfy the logical expression.  In the case
+ * where a > or < is used with a string argument
+ * the behavior will follow that of the strcmp 
+ * comparison command.  In the case of equality
+ * between strings, fnmatch is used to support
+ * pattern matching
  */
 
-while ((equalpos < strlen(plan->attr_data)) && (plan->attr_data[equalpos] 
!= '=')) {
-   if ((plan->attr_data[equalpos] == '/') && (plan->attr_data[equalpos + 
1] == '=')) {equalpos++;}
-   equalpos++;
+while ((equalpos < strlen(plan->attr_data)) && 
+   (plan->attr_data[equalpos] != '=') &&
+   (plan->attr_data[equalpos] != '>') &&
+   (plan->attr_data[equalpos] != '<')) {
+   if ((plan->attr_data[equalpos] == '/') && (plan->attr_data[equalpos + 
1] == '=')) {equalpos++;}
+   if ((plan->attr_data[equalpos] == '/') && (plan->attr_data[equalpos + 
1] == '<')) {equalpos++;}
+   if ((plan->attr_data[equalpos] == '/') && (plan->attr_data[equalpos + 
1] == '>')) {equalpos++;}
+   equalpos+

[brlcad-commits] SF.net SVN: brlcad:[33598] brlcad/trunk/misc

2009-01-23 Thread brlcad
Revision: 33598
  http://brlcad.svn.sourceforge.net/brlcad/?rev=33598&view=rev
Author:   brlcad
Date: 2009-01-23 16:11:48 + (Fri, 23 Jan 2009)

Log Message:
---
add randmt.c

Modified Paths:
--
brlcad/trunk/misc/win32-msvc8/libbn/libbn.vcproj
brlcad/trunk/misc/win32-msvc9/libbn/libbn.vcproj

Modified: brlcad/trunk/misc/win32-msvc8/libbn/libbn.vcproj
===
--- brlcad/trunk/misc/win32-msvc8/libbn/libbn.vcproj2009-01-23 16:07:42 UTC 
(rev 33597)
+++ brlcad/trunk/misc/win32-msvc8/libbn/libbn.vcproj2009-01-23 16:11:48 UTC 
(rev 33598)
@@ -533,6 +533,26 @@



+   
+   
+   
+   
+   
+   
+   
+   



+   
+   
+   
+   
+   
+   
+   
+   
http://p.sf.net/sfu/sf-spreadtheword
___
BRL-CAD Source Commits mailing list
brlcad-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-commits


[brlcad-commits] SF.net SVN: brlcad:[33597] brlcad/trunk/src/mged

2009-01-23 Thread bob1961
Revision: 33597
  http://brlcad.svn.sourceforge.net/brlcad/?rev=33597&view=rev
Author:   bob1961
Date: 2009-01-23 16:07:42 + (Fri, 23 Jan 2009)

Log Message:
---
Modified MGED to use libged's ged_loadview, ged_preview and ged_solids_on_ray 
functions.

Modified Paths:
--
brlcad/trunk/src/mged/animedit.c
brlcad/trunk/src/mged/cmd.c
brlcad/trunk/src/mged/dodraw.c
brlcad/trunk/src/mged/mged.c
brlcad/trunk/src/mged/rtif.c
brlcad/trunk/src/mged/setup.c

Modified: brlcad/trunk/src/mged/animedit.c
===
--- brlcad/trunk/src/mged/animedit.c2009-01-23 16:05:18 UTC (rev 33596)
+++ brlcad/trunk/src/mged/animedit.c2009-01-23 16:07:42 UTC (rev 33597)
@@ -3501,6 +3501,50 @@
 
 return curtree;
 }
+/**
+ * B U I L D _ T O P S
+ *
+ *  Build a command line vector of the tops of all objects in view.
+ */
+int
+build_tops(char **start, char **end)
+{
+register char **vp = start;
+register struct solid *sp;
+
+/*
+ * Find all unique top-level entries.
+ *  Mark ones already done with s_wflag == UP
+ */
+FOR_ALL_SOLIDS(sp, &gedp->ged_gdp->gd_headSolid) {
+   sp->s_wflag = DOWN;
+}
+FOR_ALL_SOLIDS(sp, &gedp->ged_gdp->gd_headSolid)  {
+   register struct solid *forw;
+   struct directory *dp = FIRST_SOLID(sp);
+
+   if ( sp->s_wflag == UP )
+   continue;
+   if ( dp->d_addr == RT_DIR_PHONY_ADDR )
+   continue;   /* Ignore overlays, predictor, etc */
+   if ( vp < end )
+   *vp++ = dp->d_namep;
+   else  {
+   Tcl_AppendResult(interp, "mged: ran out of comand vector space at ",
+dp->d_namep, "\n", (char *)NULL);
+   break;
+   }
+   sp->s_wflag = UP;
+   for (BU_LIST_PFOR(forw, sp, solid, &gedp->ged_gdp->gd_headSolid)) {
+   if ( FIRST_SOLID(forw) == dp )
+   forw->s_wflag = UP;
+   }
+}
+*vp = (char *) 0;
+return vp-start;
+}
+
+
 HIDDEN union tree *
 mesh_end_region (register struct db_tree_state *tsp, struct db_full_path 
*pathp, union tree *curtree, genptr_t client_data)
 {

Modified: brlcad/trunk/src/mged/cmd.c
===
--- brlcad/trunk/src/mged/cmd.c 2009-01-23 16:05:18 UTC (rev 33596)
+++ brlcad/trunk/src/mged/cmd.c 2009-01-23 16:07:42 UTC (rev 33597)
@@ -383,6 +383,7 @@
 if (ret != BRLCAD_OK)
return TCL_ERROR;
 
+(void)mged_svbase();
 view_state->vs_flag = 1;
 
 return TCL_OK;

Modified: brlcad/trunk/src/mged/dodraw.c
===
--- brlcad/trunk/src/mged/dodraw.c  2009-01-23 16:05:18 UTC (rev 33596)
+++ brlcad/trunk/src/mged/dodraw.c  2009-01-23 16:07:42 UTC (rev 33597)
@@ -1120,16 +1120,16 @@
 
 /* Remove any residue colors from a previous overlay w/same name */
 if ( dbip->dbi_read_only )  {
-   av[0] = "d";
+   av[0] = "erase";
av[1] = shortname;
av[2] = NULL;
-   (void)cmd_ged_erase_wrapper((ClientData)mged_cmdtab, interp, 2, av);
+   (void)ged_erase(gedp, 2, av);
 } else {
av[0] = "kill";
av[1] = "-f";
av[2] = shortname;
av[3] = NULL;
-   (void)cmd_ged_erase_wrapper((ClientData)mged_cmdtab, interp, 3, av);
+   (void)ged_kill(gedp, 3, av);
 }
 
 for ( i=0; i < vbp->nused; i++ )  {

Modified: brlcad/trunk/src/mged/mged.c
===
--- brlcad/trunk/src/mged/mged.c2009-01-23 16:05:18 UTC (rev 33596)
+++ brlcad/trunk/src/mged/mged.c2009-01-23 16:07:42 UTC (rev 33597)
@@ -496,7 +496,6 @@
 BU_LIST_INIT(&MGED_FreeSolid.l);
 BU_LIST_INIT(&rt_g.rtg_vlfree);
 BU_LIST_INIT(&rt_g.rtg_headwdb.l);
-BU_LIST_INIT(&head_run_rt.l);
 
 memset((void *)&head_cmd_list, 0, sizeof(struct cmd_list));
 BU_LIST_INIT(&head_cmd_list.l);
@@ -2471,6 +2470,13 @@
 bu_log(line);
 }
 
+static void
+ged_refresh_handler(void *clientdata)
+{
+view_state->vs_flag = 1;
+refresh();
+}
+
 /*
  * F _ O P E N D B
  *
@@ -2709,6 +2715,7 @@
 GED_INIT(gedp, wdbp);
 
 gedp->ged_output_handler = ged_output_handler;
+gedp->ged_refresh_handler = ged_refresh_handler;
 
 /*XXX shouldn't need any of this */
 #if 1

Modified: brlcad/trunk/src/mged/rtif.c
===
--- brlcad/trunk/src/mged/rtif.c2009-01-23 16:05:18 UTC (rev 33596)
+++ brlcad/trunk/src/mged/rtif.c2009-01-23 16:07:42 UTC (rev 33597)
@@ -56,686 +56,7 @@
 #include "./cmd.h"
 
 
-/* defined in chgview.c */
-extern int edit_com(int argc, const char **argv, int kind, int catch_sigint);
-
-extern int mged_svbase(void);
-extern void set_perspective(); /* from set.c */
-
-/* used to open databases quietly */
-extern int interactive;
-
-

[brlcad-commits] SF.net SVN: brlcad:[33596] brlcad/trunk/src/libbn/CMakeLists.txt

2009-01-23 Thread d_rossberg
Revision: 33596
  http://brlcad.svn.sourceforge.net/brlcad/?rev=33596&view=rev
Author:   d_rossberg
Date: 2009-01-23 16:05:18 + (Fri, 23 Jan 2009)

Log Message:
---
added randmt.c (mersenne twister random number generator)

Modified Paths:
--
brlcad/trunk/src/libbn/CMakeLists.txt

Modified: brlcad/trunk/src/libbn/CMakeLists.txt
===
--- brlcad/trunk/src/libbn/CMakeLists.txt   2009-01-23 15:33:13 UTC (rev 
33595)
+++ brlcad/trunk/src/libbn/CMakeLists.txt   2009-01-23 16:05:18 UTC (rev 
33596)
@@ -15,6 +15,7 @@
 poly.c
 qmath.c
 rand.c
+randmt.c
 scale.c
 sphmap.c
 symbol.c


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

--
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
___
BRL-CAD Source Commits mailing list
brlcad-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-commits


[brlcad-commits] SF.net SVN: brlcad:[33595] brlcad/trunk/src/libged

2009-01-23 Thread bob1961
Revision: 33595
  http://brlcad.svn.sourceforge.net/brlcad/?rev=33595&view=rev
Author:   bob1961
Date: 2009-01-23 15:33:13 + (Fri, 23 Jan 2009)

Log Message:
---
Changed the signature of ged_build_tops().

Modified Paths:
--
brlcad/trunk/src/libged/ged_private.h
brlcad/trunk/src/libged/nirt.c
brlcad/trunk/src/libged/preview.c
brlcad/trunk/src/libged/rt.c
brlcad/trunk/src/libged/rtcheck.c
brlcad/trunk/src/libged/solids_on_ray.c

Modified: brlcad/trunk/src/libged/ged_private.h
===
--- brlcad/trunk/src/libged/ged_private.h   2009-01-23 15:23:35 UTC (rev 
33594)
+++ brlcad/trunk/src/libged/ged_private.h   2009-01-23 15:33:13 UTC (rev 
33595)
@@ -330,7 +330,6 @@
int  mask));
 BU_EXTERN (int ged_build_tops,
   (struct ged  *gedp,
-   struct solid*hsp,
char**start,
register char   **end));
 

Modified: brlcad/trunk/src/libged/nirt.c
===
--- brlcad/trunk/src/libged/nirt.c  2009-01-23 15:23:35 UTC (rev 33594)
+++ brlcad/trunk/src/libged/nirt.c  2009-01-23 15:33:13 UTC (rev 33595)
@@ -264,7 +264,6 @@
 
 /* Note - ged_build_tops sets the last vp to (char *)0 */
 gedp->ged_gdp->gd_rt_cmd_len += ged_build_tops(gedp,
-  (struct solid 
*)&gedp->ged_gdp->gd_headSolid,
   vp,
   
&gedp->ged_gdp->gd_rt_cmd[RT_MAXARGS]);
 

Modified: brlcad/trunk/src/libged/preview.c
===
--- brlcad/trunk/src/libged/preview.c   2009-01-23 15:23:35 UTC (rev 33594)
+++ brlcad/trunk/src/libged/preview.c   2009-01-23 15:33:13 UTC (rev 33595)
@@ -136,8 +136,7 @@
ged_color_soltab((struct solid 
*)&ged_current_gedp->ged_gdp->gd_headSolid);
 }
 
-if (ged_current_gedp->ged_refresh_handler != GED_REFRESH_CALLBACK_PTR_NULL 
&&
-   ged_current_gedp->ged_refresh_clientdata != (void *)0)
+if (ged_current_gedp->ged_refresh_handler != GED_REFRESH_CALLBACK_PTR_NULL)

(*ged_current_gedp->ged_refresh_handler)(ged_current_gedp->ged_refresh_clientdata);
 
 if ( preview_delay > 0 )  {
@@ -195,7 +194,6 @@
 {
 ged_current_gedp->ged_gdp->gd_rt_cmd_len = vp - 
ged_current_gedp->ged_gdp->gd_rt_cmd;
 ged_current_gedp->ged_gdp->gd_rt_cmd_len += ged_build_tops(gedp, 
-(struct solid 
*)&gedp->ged_gdp->gd_headSolid,
 vp, 
&ged_current_gedp->ged_gdp->gd_rt_cmd[MAXARGS]);
 
 if (printcmd) {

Modified: brlcad/trunk/src/libged/rt.c
===
--- brlcad/trunk/src/libged/rt.c2009-01-23 15:23:35 UTC (rev 33594)
+++ brlcad/trunk/src/libged/rt.c2009-01-23 15:33:13 UTC (rev 33595)
@@ -92,7 +92,6 @@
 if (i == argc) {
gedp->ged_gdp->gd_rt_cmd_len = vp - gedp->ged_gdp->gd_rt_cmd;
gedp->ged_gdp->gd_rt_cmd_len += ged_build_tops(gedp,
-  (struct solid 
*)&gedp->ged_gdp->gd_headSolid,
   vp,
   
&gedp->ged_gdp->gd_rt_cmd[MAXARGS]);
 } else {
@@ -443,7 +442,6 @@
  */
 int
 ged_build_tops(struct ged  *gedp,
-  struct solid *hsp,
   char **start,
   register char**end)
 {
@@ -452,11 +450,11 @@
 
 /*
  * Find all unique top-level entries.
- *  Mark ones already done with s_flag == UP
+ * Mark ones already done with s_flag == UP
  */
-FOR_ALL_SOLIDS(sp, &hsp->l)
+FOR_ALL_SOLIDS(sp, &gedp->ged_gdp->gd_headSolid)
sp->s_flag = DOWN;
-FOR_ALL_SOLIDS(sp, &hsp->l)  {
+FOR_ALL_SOLIDS(sp, &gedp->ged_gdp->gd_headSolid) {
register struct solid *forw;
struct directory *dp = FIRST_SOLID(sp);
 
@@ -467,11 +465,11 @@
if (vp < end)
*vp++ = dp->d_namep;
else  {
-   bu_vls_printf(&gedp->ged_result_str, "mged: ran out of comand 
vector space at %s\n", dp->d_namep);
+   bu_vls_printf(&gedp->ged_result_str, "libged: ran out of command 
vector space at %s\n", dp->d_namep);
break;
}
sp->s_flag = UP;
-   for (BU_LIST_PFOR(forw, sp, solid, &hsp->l)) {
+   for (BU_LIST_PFOR(forw, sp, solid, &gedp->ged_gdp->gd_headSolid)) {
if (FIRST_SOLID(forw) == dp)
forw->s_flag = UP;
}

Modified: brlcad/trunk/src/libged/rtcheck.c
===
--- brlcad/trunk/src/libged/rtcheck.c   2009-01-23 15:23:35 UTC (rev 33594)
+++ brlcad/trunk/src/libged/rtcheck.c   2009-01-23 15:33:13 UTC (rev 33595)

[brlcad-commits] SF.net SVN: brlcad:[33594] brlcad/trunk/src/libbu/interrupt.c

2009-01-23 Thread bob1961
Revision: 33594
  http://brlcad.svn.sourceforge.net/brlcad/?rev=33594&view=rev
Author:   bob1961
Date: 2009-01-23 15:23:35 + (Fri, 23 Jan 2009)

Log Message:
---
Need to include bu.h for Windows.

Modified Paths:
--
brlcad/trunk/src/libbu/interrupt.c

Modified: brlcad/trunk/src/libbu/interrupt.c
===
--- brlcad/trunk/src/libbu/interrupt.c  2009-01-23 05:38:45 UTC (rev 33593)
+++ brlcad/trunk/src/libbu/interrupt.c  2009-01-23 15:23:35 UTC (rev 33594)
@@ -30,7 +30,9 @@
 #include 
 #include 
 
+#include "bu.h"
 
+
 /* hard-coded maximum signal number we can defer due to array we're
  * using for quick O(1) access in a single container for all signals.
  */


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

--
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
___
BRL-CAD Source Commits mailing list
brlcad-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-commits