📄 main.c
字号:
/****************************************************************/
/* COPYRIGHT NOTICE */
/* ---------------- */
/* All software in this listing remain the strict copyright */
/* of Ilija Kovacevic and cannot be copied or used in any way */
/* except by written permission of Ilija Kovacevic. */
/* */
/* Copyright (c) 1992 Ilija Kovacevic */
/* www.kov.com email ilija@kov.com */
/****************************************************************/
#include <setjmp.h>
#include "dwgin.h"
static jmp_buf exception_jumper;
static boolean dump;
static boolean create;
PUBLIC void warning( char *fmt,... )
{
va_list ap;
char message[ 256 ];
va_start( ap,fmt );
vsprintf( message, fmt, ap );
va_end( ap );
printf( "%s\n",message );
}
PRIVATE void get_options( int *argc,char *argv[] )
{
int argument,parameter;
/* go along the list of command line arguments and pick out those that begin
with '-'. These are options */
for ( argument = 1; argument < *argc; ++argument )
{
if ( *argv[ argument ] EQ '-' ) /* if the argument is an option */
{
/* option parameter */
if ( strcmp( argv[ argument ],"-c" ) EQ 0 ) create = true;
if ( strcmp( argv[ argument ],"-d" ) EQ 0 ) debugger = true;
if ( strcmp( argv[ argument ],"-v" ) EQ 0 ) verbose = true;
if ( strcmp( argv[ argument ],"-D" ) EQ 0 ) dump = true;
/* remove this argument from list by moving the remaining arguments left */
for ( parameter = argument; parameter < *argc; ++parameter )
{
argv[ parameter ] = argv[ parameter + 1 ];
}
--argument; /* do no skip, this will be incremented in for loop */
--*argc; /* 1 less parameter now as the option has been removed */
}
}
}
PRIVATE void help( void )
{
printf( "\n" );
printf( "\n" );
printf( "\n" );
printf( "\n" );
printf( "Dxfout - AutoCAD dxfout utility\n" );
printf( "Version 1.00 Beta. Copyright (c) 1992 Ilija Kovacevic\n" );
printf( "-----------------------------------------------------\n" );
printf( "\n" );
printf( "USAGE\n" );
printf( "dxfout <drawing_name> e.g. dxfout columbia\n" );
printf( "\n" );
printf( "\n" );
}
PRIVATE int catch_exception( void )
{
return( setjmp( exception_jumper ) );
}
PUBLIC int main( int argc,char *argv[] )
{
AcadDrawing *drawing;
char full_name[ 256 ];
if ( catch_exception() )
{
printf( "Error\n" );
exit( 0 );
}
get_options( &argc,argv ); /* set up for command line options */
if ( argc <= 1 ) return 1;
strcpy( full_name,argv[ 1 ] );
set_extension( full_name,"dwg" );
drawing = AcadDrawing__create( full_name );
AcadDrawing__read( drawing );
if ( dump )
{
AcadDrawing__dump_to_debug_file( drawing );
exit( 0 );
}
if ( argc EQ 2 ) AcadDrawing__dxfout( drawing,argv[ 1 ] );
else if ( argc EQ 3 ) AcadDrawing__dxfout( drawing,argv[ 2 ] );
else
{
help();
return( 1 );
}
if ( create ) AcadDrawing__write( drawing,"test.dwg" );
return( 0 );
}
PUBLIC void throw_exception( char *fmt, ... )
{
va_list ap;
char status[ 80 ];
va_start( ap,fmt );
vsprintf( status,fmt,ap );
va_end( ap );
warning( status );
longjmp( exception_jumper,1 );
}
PUBLIC void terminate( int exit_code )
{
exit( exit_code );
}
PUBLIC void read_error( char *fmt, ... )
{
va_list ap;
char status[ 80 ];
va_start( ap,fmt );
vsprintf( status,fmt,ap );
va_end( ap );
printf( "\nError : %s\n",status );
exit( 0 );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -