Changeset 21
- Timestamp:
- 09/13/05 18:13:09 (3 years ago)
- Files:
-
- trunk/bless.d (modified) (5 diffs)
- trunk/ddl/dll/DLLLoader.obj (modified) (previous)
- trunk/ddl/omf/OMFBinary.d (modified) (4 diffs)
- trunk/ddl/omf/OMFLoader.d (modified) (1 diff)
- trunk/ddltest.d (modified) (1 diff)
- trunk/test/all.d (modified) (1 diff)
- trunk/test/test5.d (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/bless.d
r19 r21 38 38 39 39 char[] helpText = 40 "Bless - DDL wrapper utility - V1. 040 "Bless - DDL wrapper utility - V1.1 41 41 Copyright (C) 2005 Eric Anderton 42 42 Documentation: http://www.dsource.org/projects/ddl … … 61 61 if(args.length == 1){ 62 62 writefln("%s",helpText); 63 writefln(" \nSupported Object Extensions:");63 writefln("Supported Object Extensions:"); 64 64 foreach(char[] ext; getDDLSupportedExtensions()){ 65 65 writef("%s ",ext); … … 96 96 return 1; 97 97 } 98 99 writefln("arg: '%s'",args[i]); 100 98 101 99 // get args that are glommed together (eg. -xvnf"Hello world.obj") 102 100 bit done = false; … … 131 129 } 132 130 } 131 132 // force lower case 133 extension = std.string.tolower(extension); 133 134 134 135 // validate the extension … … 180 181 181 182 // (attempt to) load the binary file 182 DynamicLibrary lib = loadDDL(filename, "omf");183 DynamicLibrary lib = loadDDL(filename,extension); 183 184 ubyte[] binaryData = cast(ubyte[])std.file.read(filename); 184 185 trunk/ddl/omf/OMFBinary.d
r19 r21 521 521 if(dataType < 0x51){ 522 522 debug writefln("COMDEF %s: segment #%d",communalName,dataType); 523 throw new FeatureNotSupportedException( 524 std.string.format("COMDEF segment number only for %s is not supported",communalName,dataType) 525 ); 523 526 } 524 527 else if(dataType == 0x61){ … … 533 536 else{ 534 537 throw new FeatureNotSupportedException( 535 std.string.format("COMDEF type %0.2X is not supported ",dataType)538 std.string.format("COMDEF type %0.2X is not supported for %s",dataType,communalName) 536 539 ); 537 540 } … … 563 566 uint grpIdx = cursor.getIndex(); // thrown out 564 567 uint segIdx = cursor.getIndex(); 565 if(segIdx == 0) cursor.getWord(); // ignored 568 569 //TODO: verify what rule this is 570 if(segIdx == 0) cursor.getWord(); // ignored 566 571 567 572 uint nameIdx = cursor.getIndex(); … … 671 676 // create addresses for all of the public symbols 672 677 foreach(inout PublicSymbol pub; this.publics){ 678 //printf("name: %.*s segindex: %d offset: %d\n",pub.name,pub.segmentIndex,pub.offset); 679 if(pub.segmentIndex == 0) continue; // workaround for __nullext being located at 0:0 680 673 681 pub.address = &this.segments[pub.segmentIndex].data[pub.offset]; 674 682 } trunk/ddl/omf/OMFLoader.d
r19 r21 56 56 // load object format 57 57 OMFModule mod = new OMFModule(stream); 58 lib.addModule(mod); 58 lib.addModule(mod); 59 60 return lib; 59 61 } 60 62 trunk/ddltest.d
r19 r21 33 33 //test3(); 34 34 //test4(); 35 test5(); 35 //test5(); 36 test6(); 36 37 } trunk/test/all.d
r19 r21 30 30 import test.test4; 31 31 import test.test5; 32 import test.test6; trunk/test/test5.d
r19 r21 1 / *1 /+ 2 2 Copyright (c) 2005 Eric Anderton 3 3 … … 22 22 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 23 23 OTHER DEALINGS IN THE SOFTWARE. 24 */24 +/ 25 25 module test.test5; 26 26
