summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>1998-12-02 15:47:30 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>1998-12-02 15:47:30 +0000
commit92402e682a1dc89c8915f1a4f5698d1c3ab82eb8 (patch)
tree8c05965a36c0802d98572b4fa189bcc033e598e8
parent849e11623e44a62599d62ba9425f7e96146f555d (diff)
Fix for numericsort(), and drawing of some box types.
git-svn-id: file:///fltk/svn/fltk/trunk@107 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
-rw-r--r--fluid/Fl_Widget_Type.cxx6
-rw-r--r--src/Fl_Scroll.cxx8
-rw-r--r--src/Fl_win32.cxx8
-rw-r--r--src/fl_boxtype.cxx10
-rw-r--r--src/numericsort.c39
5 files changed, 39 insertions, 32 deletions
diff --git a/fluid/Fl_Widget_Type.cxx b/fluid/Fl_Widget_Type.cxx
index 969da22da..3f3aeac6b 100644
--- a/fluid/Fl_Widget_Type.cxx
+++ b/fluid/Fl_Widget_Type.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: Fl_Widget_Type.cxx,v 1.9 1998/11/25 16:59:05 mike Exp $"
+// "$Id: Fl_Widget_Type.cxx,v 1.10 1998/12/02 15:47:28 mike Exp $"
//
// Widget type code for the Fast Light Tool Kit (FLTK).
//
@@ -1151,7 +1151,7 @@ void selection_changed(Fl_Type *p) {
// test to see if user named a function, or typed in code:
int is_name(const char *c) {
- for (; *c; c++) if (ispunct(*c) && *c!='_') return 0;
+ for (; *c; c++) if (ispunct(*c) && *c!='_' && *c!=':') return 0;
return 1;
}
@@ -1701,5 +1701,5 @@ int Fl_Widget_Type::read_fdesign(const char* name, const char* value) {
}
//
-// End of "$Id: Fl_Widget_Type.cxx,v 1.9 1998/11/25 16:59:05 mike Exp $".
+// End of "$Id: Fl_Widget_Type.cxx,v 1.10 1998/12/02 15:47:28 mike Exp $".
//
diff --git a/src/Fl_Scroll.cxx b/src/Fl_Scroll.cxx
index 9f0c18738..dfb7b939d 100644
--- a/src/Fl_Scroll.cxx
+++ b/src/Fl_Scroll.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: Fl_Scroll.cxx,v 1.5 1998/11/18 18:38:32 mike Exp $"
+// "$Id: Fl_Scroll.cxx,v 1.6 1998/12/02 15:47:29 mike Exp $"
//
// Scroll widget for the Fast Light Tool Kit (FLTK).
//
@@ -153,12 +153,12 @@ void Fl_Scroll::draw() {
scrollbar.resize(scrollbar.align()&FL_ALIGN_LEFT ? X-scrollbar.w() : X+W,
Y, scrollbar.w(), H);
- scrollbar.value(oldy = yposition_ = (Y-t), H, t, b-t);
+ scrollbar.value(oldy = yposition_ = (Y-t), H, 0, b-t);
hscrollbar.resize(X,
scrollbar.align()&FL_ALIGN_TOP ? Y-hscrollbar.h() : Y+H,
W, hscrollbar.h());
- hscrollbar.value(oldx = xposition_ = (X-l), W, l, r-l);
+ hscrollbar.value(oldx = xposition_ = (X-l), W, 0, r-l);
// draw the scrollbars:
if (d & FL_DAMAGE_ALL) {
@@ -231,5 +231,5 @@ int Fl_Scroll::handle(int event) {
}
//
-// End of "$Id: Fl_Scroll.cxx,v 1.5 1998/11/18 18:38:32 mike Exp $".
+// End of "$Id: Fl_Scroll.cxx,v 1.6 1998/12/02 15:47:29 mike Exp $".
//
diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx
index ff8e9844a..073aa5a73 100644
--- a/src/Fl_win32.cxx
+++ b/src/Fl_win32.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: Fl_win32.cxx,v 1.17 1998/11/08 17:02:39 mike Exp $"
+// "$Id: Fl_win32.cxx,v 1.18 1998/12/02 15:47:29 mike Exp $"
//
// WIN32-specific code for the Fast Light Tool Kit (FLTK).
//
@@ -220,9 +220,9 @@ static int ms2fltk(int vk, int extended) {
for (i = 0; i < sizeof(vktab)/sizeof(*vktab); i++) {
vklut[vktab[i].vk] = vktab[i].fltk;
extendedlut[vktab[i].vk] = vktab[i].extended;
- }
- for (i = 0; i < 256; i++) if (!extendedlut[i]) extendedlut[i] = vklut[i];
}
+ for (i = 0; i < 256; i++) if (!extendedlut[i]) extendedlut[i] = vklut[i];
+ }
return extended ? extendedlut[vk] : vklut[vk];
}
@@ -813,5 +813,5 @@ void Fl_Window::flush() {
}
//
-// End of "$Id: Fl_win32.cxx,v 1.17 1998/11/08 17:02:39 mike Exp $".
+// End of "$Id: Fl_win32.cxx,v 1.18 1998/12/02 15:47:29 mike Exp $".
//
diff --git a/src/fl_boxtype.cxx b/src/fl_boxtype.cxx
index 6666e53c9..f483b2d8e 100644
--- a/src/fl_boxtype.cxx
+++ b/src/fl_boxtype.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: fl_boxtype.cxx,v 1.5 1998/11/08 15:05:46 mike Exp $"
+// "$Id: fl_boxtype.cxx,v 1.6 1998/12/02 15:47:30 mike Exp $"
//
// Box drawing code for the Fast Light Tool Kit (FLTK).
//
@@ -120,9 +120,9 @@ void fl_up_frame(int x, int y, int w, int h, Fl_Color) {
fl_frame2("HHWW",x,y,w,h);
#else
#if BORDER_WIDTH == 2
- fl_frame2("AAUWMMSS",x,y,w,h);
+ fl_frame2("AAUWMMTT",x,y,w,h);
#else
- fl_frame("AAAAWUJJUSNN",x,y,w,h);
+ fl_frame("AAAAWUJJUTNN",x,y,w,h);
#endif
#endif
}
@@ -142,7 +142,7 @@ void fl_down_frame(int x, int y, int w, int h, Fl_Color) {
#if BORDER_WIDTH == 2
fl_frame2("UWMMPPAA",x,y,w,h);
#else
- fl_frame("NNSUJJUWAAAA",x,y,w,h);
+ fl_frame("NNTUJJUWAAAA",x,y,w,h);
#endif
#endif
}
@@ -282,5 +282,5 @@ const {
}
//
-// End of "$Id: fl_boxtype.cxx,v 1.5 1998/11/08 15:05:46 mike Exp $".
+// End of "$Id: fl_boxtype.cxx,v 1.6 1998/12/02 15:47:30 mike Exp $".
//
diff --git a/src/numericsort.c b/src/numericsort.c
index 3369f863d..00992097f 100644
--- a/src/numericsort.c
+++ b/src/numericsort.c
@@ -1,5 +1,5 @@
/*
- * "$Id: numericsort.c,v 1.7 1998/11/09 16:25:59 mike Exp $"
+ * "$Id: numericsort.c,v 1.8 1998/12/02 15:47:30 mike Exp $"
*
* Numeric sorting routine for the Fast Light Tool Kit (FLTK).
*
@@ -56,26 +56,33 @@ extern "C"
int numericsort(struct dirent **A, struct dirent **B) {
const char* a = (*A)->d_name;
const char* b = (*B)->d_name;
-
+ int ret = 0;
for (;;) {
if (isdigit(*a) && isdigit(*b)) {
- int anum = 0, bnum = 0;
-
- while (isdigit(*a)) anum = anum * 10 + *a++ - '0';
- while (isdigit(*b)) bnum = bnum * 10 + *b++ - '0';
-
- if (anum < bnum) return (-1);
- else if (anum > bnum) return (1);
- } else if (tolower(*a) < tolower(*b)) return (-1);
- else if (tolower(*a) > tolower(*b)) return (1);
- else {
- if (*a == '\0') return (0);
- a++;
- b++;
+ int diff,magdiff;
+ while (*a == '0') a++;
+ while (*b == '0') b++;
+ while (isdigit(*a) && *a == *b) {a++; b++;}
+ diff = (isdigit(*a) && isdigit(*b)) ? *a - *b : 0;
+ magdiff = 0;
+ while (isdigit(*a)) {magdiff++; a++;}
+ while (isdigit(*b)) {magdiff--; b++;}
+ if (magdiff) {ret = magdiff; break;} /* compare # of significant digits*/
+ if (diff) {ret = diff; break;} /* compare first non-zero digit */
+ } else {
+#if 1
+ if ((ret = tolower(*a)-tolower(*b))) break; /* compare case-insensitve */
+#else
+ if ((ret = *a-*b)) break; /* compare case-sensitive */
+#endif
+ if (!*a) break;
+ a++; b++;
}
}
+ if (!ret) return 0;
+ else return (ret < 0) ? -1 : 1;
}
/*
- * End of "$Id: numericsort.c,v 1.7 1998/11/09 16:25:59 mike Exp $".
+ * End of "$Id: numericsort.c,v 1.8 1998/12/02 15:47:30 mike Exp $".
*/