Initial import of the CDE 2.1.30 sources from the Open Group.

This commit is contained in:
Peter Howkins
2012-03-10 18:21:40 +00:00
commit 83b6996daa
18978 changed files with 3945623 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
XCOMM $XConsortium: Imakefile /main/1 1996/08/21 15:59:27 drk $
XCOMM ** WARNING **
XCOMM
XCOMM The files named here may appear in many different Imakefiles.
XCOMM If you add or remove a file, be sure to update all locations.
XCOMM It's unfortunate, but all this redundancy serves a purpose.
XCOMM
XCOMM Other possible locations are:
XCOMM .../lib/DtMmdb/Imakefile
XCOMM .../lib/DtMmdb/<subdir>/Imakefile
XCOMM .../programs/dtinfo/mmdb/Imakefile
XCOMM .../programs/dtinfo/mmdb/<subdir>/Imakefile
#define DoNormalLib YES
#define DoSharedLib NO
#define DoDebugLib NO
#define DoProfileLib NO
#define LibName MMDB
#define LibHeaders NO
#define LibCreate NO
#define CplusplusSource YES
DEPEND_DEFINES = $(CXXDEPENDINCLUDES)
DEFINES =
INCLUDES = -I$(DTMMDBSRC)/dti_cc $(EXCEPTIONS_INCLUDES) $(COMMON_CLASS_INCLUDES)
LinkSourceFile(CC_Listbase.C,$(DTMMDBSRC)/dti_cc)
LinkSourceFile(cc_exceptions.C,$(DTMMDBSRC)/dti_cc)
LinkSourceFile(CC_String.C,$(DTMMDBSRC)/dti_cc)
LinkSourceFile(CC_Tokenizer.C,$(DTMMDBSRC)/dti_cc)
LinkSourceFile(CC_Stack.C,$(DTMMDBSRC)/dti_cc)
LinkSourceFile(CC_Slist.C,$(DTMMDBSRC)/dti_cc)
SRCS = CC_Listbase.C cc_exceptions.C CC_String.C \
CC_Tokenizer.C CC_Stack.C CC_Slist.C
OBJS = $(SRCS:.C=.o)
#include <Library.tmpl>
SubdirLibraryRule($(OBJS))
DependTarget()
#ifdef TEST
TEST_OBJS = $(OBJS) \
../utility/mmdb_exception.o \
../utility/funcs.o \
../utility/atoi_fast.o \
../utility/pm_random.o \
../dti_excs/Jump_Environment.o \
../dti_excs/Exceptions.o \
../dti_excs/Exception.o \
../dti_excs/Destructable.o \
../dti_excs/terminate.o \
../dti_excs/centerline.o \
../misc/unique_id.o -lm
SpecialCPlusPlusObjectRule(CC_Template.o,,-ptf)
SimpleCPlusPlusProgram(tt, main.o CC_Template.o,$(TEST_OBJS))
#endif

View File

@@ -0,0 +1,268 @@
// $XConsortium: main.cc /main/3 1996/06/11 16:57:24 cde-hal $
#include <iostream.h>
#include "Exceptions.hh"
#include "cc_exceptions.h"
#include "CC_Slist.h"
#include "CC_Dlist.h"
#include "CC_String.h"
#include "CC_Tokenizer.h"
#include "CC_Stack.h"
CC_Boolean mytestfunc(int *a, void *b)
{
return(*a == 20);
}
#define TEST(tcond) \
cout << "Testing " << "(" << #tcond << ")\t"; \
if (tcond) { \
cout << "Test #" << TestNum << " passed\n"; \
TestPassed++; \
} \
else { \
cout << "Test #" << TestNum << " failed\n"; \
TestFailed++; \
} \
TestNum++;
main()
{
INIT_EXCEPTIONS();
try {
int TestNum = 1;
int TestPassed = 0;
int TestFailed = 0;
CC_TPtrSlist<int> slist;
int a =10;
int b =20;
int c =30;
// inserting 10, 20 , 30
slist.insert(&a);
slist.insert(&b);
slist.insert(&c);
// testing first
TEST(*slist.first() == 10);
TEST(*slist.at(0) == 10);
TEST(*slist.at(1) == 20);
TEST(*slist.at(2) == 30);
TEST(slist.entries() == 3);
int d =40;
slist.prepend(&d);
slist.append(&d);
TEST(*slist.first() == 40);
TEST(*slist.at(4) == 40);
TEST(*slist.removeAt(2) == 20);
TEST(*slist.at(2) == 30);
TEST(slist.find(&a) != NULL);
TEST(slist.find(&b) == NULL);
TEST(slist.contains(&a) == 1);
TEST(slist.contains(&b) == 0);
TEST(slist.remove(&b) == NULL);
TEST(*slist.remove(&a) == 10);
TEST(slist.remove(&a) == NULL);
TEST(*slist.remove(&d) == 40);
TEST(*slist.remove(&d) == 40);
TEST(slist.remove(&d) == NULL);
// Test slist copy constructor
CC_TPtrSlistIterator<int> slist_iter( slist );
CC_TPtrSlist<int> new_slist( slist );
CC_TPtrSlistIterator<int> new_slist_iter(new_slist);
TEST(slist.entries() == new_slist.entries());
for ( int w = 0; w < slist.entries(); w++ ) {
slist_iter();
new_slist_iter();
TEST(*slist_iter.key() == *new_slist_iter.key());
}
// empty list
CC_TPtrSlist<int> empty_list;
TEST(empty_list.remove(&d) == NULL) ;
TEST(empty_list.find(&d) == NULL);
TEST(empty_list.removeFirst() == NULL);
TEST(empty_list.removeLast() == NULL);
empty_list.clearAndDestroy();
CC_TPtrDlist<int> dlist;
dlist.append(&a);
dlist.append(&b);
dlist.append(&c);
TEST(*dlist.first() == 10 );
TEST(*dlist.at(1) == 20 );
TEST(*dlist.at(2) == 30);
TEST(*dlist.last() == 30);
dlist.prepend(&c);
TEST(*dlist.first() == 30);
dlist.insert(&b);
TEST(*dlist.last() == 20);
TEST(*dlist.removeFirst() == 30);
TEST(*dlist.removeLast() == 20);
TEST(*dlist.remove(&b) == 20);
TEST(*dlist.remove(&c) == 30);
dlist.insert(&b);
dlist.insert(&c);
CC_TPtrDlistIterator<int> dlist_iter(dlist);
CC_TPtrDlist<int> new_dlist(dlist);
CC_TPtrDlistIterator<int> new_dlist_iter(new_dlist);
// Compare the elements in the 2 lists
for ( int i = 0; i < dlist.entries(); i++ ) {
dlist_iter();
new_dlist_iter();
TEST(*dlist_iter.key() == *new_dlist_iter.key());
}
/* Traverse backward */
for ( int j = 0; j < dlist.entries(); j++ ) {
cout << *dlist_iter.key() << ", ";
--dlist_iter;
}
cout << endl;
dlist_iter += 2;
TEST(*dlist_iter.key() == 20);
TEST(*dlist.find(mytestfunc, NULL) == 20 );
// dlist.clearAndDestroy();
CC_String cstr("abc");
TEST(cstr.isNull() == FALSE);
TEST(cstr.length() == 3);
TEST(cstr.compareTo("abc") == 0);
TEST(cstr.compareTo("def") < 0 );
TEST(cstr.compareTo("ABC") != 0);
TEST(cstr.compareTo("ABC", CC_String::ignoreCase) == 0);
TEST(cstr.compareTo("ABC", CC_String::exact) != 0);
CC_String dstr("abc");
TEST(cstr.compareTo(dstr) == 0);
TEST(cstr.compareTo(dstr, CC_String::ignoreCase) == 0);
TEST(cstr.compareTo(dstr.data()) == 0);
TEST(cstr.compareTo("abcde") != 0 );
TEST(cstr.compareTo("abcde", CC_String::ignoreCase) != 0 );
CC_TValSlist<int> vlist;
vlist.append(a);
vlist.append(b);
vlist.append(c);
CC_TValSlistIterator<int> vlist_iter(vlist);
CC_TValSlist<int> new_vlist(vlist);
TEST(vlist.entries() == new_vlist.entries());
CC_TValSlistIterator<int> new_vlist_iter(new_vlist);
for ( int k = 0; k < vlist.entries(); k++ ) {
++vlist_iter;
++new_vlist_iter;
TEST(vlist_iter.key() == new_vlist_iter.key());
}
vlist_iter.reset();
cout << endl;
CC_String cc_str1("This is a pretty long string for testing");
CC_Tokenizer next1( cc_str1 );
while ( next1() ) {
cout << next1.data() << endl;
}
char str[128];
sprintf(str, "\t\nthis is \t another string\t\n");
CC_String cc_str2( (const char *)str);
CC_Tokenizer next2( cc_str2 );
while ( next2() ) {
cout << next2.data() << endl;
}
int *empty;
CC_TPtrDlist<int> tdlist;
// tdlist.insert(empty);
TEST(tdlist.removeFirst() == NULL);
TEST(tdlist.removeLast() == NULL);
tdlist.prepend(empty);
tdlist.insert(empty);
tdlist.removeFirst();
tdlist.removeLast();
TEST(tdlist.removeFirst() == NULL);
// TEST(0);
Stack<int> stack;
stack.push(2);
stack.push(3);
stack.push(4);
TEST(stack.top() == 4 );
TEST(stack.pop() == 4 );
TEST(stack.pop() == 3 );
TEST(stack.pop() == 2 );
stack.push(20);
TEST(stack.top() == 20);
TEST(stack.pop() == 20);
TEST(stack.empty());
cout << "test passed = " << TestPassed << endl;
cout << "test failed = " << TestFailed << endl;
try {
TEST(stack.top()); // This will throw exception
}
catch( Exception&, u)
{
cerr << "Exception generated by top() were caught\n";
}end_try;
try {
TEST(stack.pop());
}
catch( Exception&, u )
{
cerr << "Exception generated by pop() were caught\n";
exit(0);
}end_try;
}
catch(ccException&, u)
{
cerr << "ccException caught\n";
}
catch(Exception&, u)
{
cout << "Exception generated by pop() caught\n";
exit(1);
}end_try;
}