home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
M-BRIEF.ZIP
/
C_MACRO.C
next >
Wrap
C/C++ Source or Header
|
1989-02-22
|
7KB
|
320 lines
/* C_MACRO.c - adds C specific macros to Msoft Editor
**
** Copyright (c) 1988, Christopher Laforet
** All Rights Reserved
**
*/
#define LINT_ARGS
#include <stdio.h>
#include "ext.h"
#define TRUE -1
#define FALSE 0
unsigned char far zero_length[2];
LINE row;
COL col;
LINE hold_row;
COL hold_col;
PFILE cur_file;
unsigned char far *cptr;
void pascal write_string(string)
unsigned char far *string;
{
cptr = string;
GetCursor(&hold_col,&hold_row);
cur_file = FileNameToHandle(zero_length,zero_length);
while (*cptr)
{
Replace(*cptr++,hold_col++,hold_row,cur_file,TRUE);
}
MoveCur(hold_col,hold_row);
}
flagType pascal EXTERNAL if_case(argtype,argptr,metaflag)
unsigned short argtype;
ARG far *argptr;
flagType metaflag;
{
GetCursor(&col,&row);
write_string("if ()");
fExecute("emacsnewl");
write_string("}");
fExecute("up endline emacsnewl");
write_string("{");
fExecute("emacsnewl");
MoveCur(col + 4,row);
Display();
return(TRUE);
}
flagType pascal EXTERNAL while_case(argtype,argptr,metaflag)
unsigned short argtype;
ARG far *argptr;
flagType metaflag;
{
GetCursor(&col,&row);
write_string("while ()");
fExecute("emacsnewl");
write_string("}");
fExecute("up endline emacsnewl");
write_string("{");
fExecute("emacsnewl");
MoveCur(col + 7,row);
Display();
return(TRUE);
}
flagType pascal EXTERNAL switch_case(argtype,argptr,metaflag)
unsigned short argtype;
ARG far *argptr;
flagType metaflag;
{
GetCursor(&col,&row);
write_string("switch ()");
fExecute("emacsnewl tab");
write_string("}");
fExecute("up endline emacsnewl");
write_string("{");
fExecute("emacsnewl");
write_string("default:");
fExecute("emacsnewl tab");
write_string("break;");
MoveCur(col + 8,row);
Display();
return(TRUE);
}
flagType pascal EXTERNAL do_case(argtype,argptr,metaflag)
unsigned short argtype;
ARG far *argptr;
flagType metaflag;
{
GetCursor(&col,&row);
write_string("do");
fExecute("emacsnewl backtab");
write_string("while ();");
fExecute("up endline emacsnewl");
write_string("}");
fExecute("up endline emacsnewl");
write_string("{");
fExecute("emacsnewl");
MoveCur(col,row + 2);
fExecute("tab");
Display();
return(TRUE);
}
flagType pascal EXTERNAL brace_case(argtype,argptr,metaflag)
unsigned short argtype;
ARG far *argptr;
flagType metaflag;
{
GetCursor(&col,&row);
write_string("}");
fExecute("left linsert");
write_string("{");
fExecute("emacsnewl");
MoveCur(col,row + 1);
Display();
return(TRUE);
}
flagType pascal EXTERNAL parenthesis_case(argtype,argptr,metaflag)
unsigned short argtype;
ARG far *argptr;
flagType metaflag;
{
GetCursor(&col,&row);
write_string("()");
MoveCur(col + 1,row);
Display();
return(TRUE);
}
flagType pascal EXTERNAL _case_case(argtype,argptr,metaflag)
unsigned short argtype;
ARG far *argptr;
flagType metaflag;
{
GetCursor(&col,&row);
write_string("case :");
fExecute("emacsnewl");
write_string("break;");
MoveCur(col + 5,row);
Display();
return(TRUE);
}
flagType pascal EXTERNAL else_case(argtype,argptr,metaflag)
unsigned short argtype;
ARG far *argptr;
flagType metaflag;
{
GetCursor(&col,&row);
write_string("else");
fExecute("endline emacsnewl");
write_string("}");
fExecute("up endline emacsnewl");
write_string("{");
fExecute("emacsnewl");
MoveCur(col,row + 2);
fExecute("tab");
Display();
return(TRUE);
}
flagType pascal EXTERNAL for_case(argtype,argptr,metaflag)
unsigned short argtype;
ARG far *argptr;
flagType metaflag;
{
GetCursor(&col,&row);
write_string("for ()");
fExecute("emacsnewl");
write_string("}");
fExecute("up endline emacsnewl");
write_string("{");
fExecute("emacsnewl");
MoveCur(col + 5,row);
Display();
return(TRUE);
}
flagType pascal EXTERNAL main_case(argtype,argptr,metaflag)
unsigned short argtype;
ARG far *argptr;
flagType metaflag;
{
fExecute("meta begline");
write_string("main(argc,argv)");
fExecute("emacsnewl meta begline");
write_string("int argc;");
fExecute("emacsnewl meta begline");
write_string("char *argv[];");
fExecute("emacsnewl meta begline tab");
write_string("}");
fExecute("up endline emacsnewl meta begline tab");
write_string("{");
fExecute("emacsnewl meta begline tab");
Display();
return(TRUE);
}
flagType pascal EXTERNAL header_case(argtype,argptr,metaflag)
unsigned short argtype;
ARG far *argptr;
flagType metaflag;
{
fExecute("arg mpage");
write_string("/* ");
fExecute("curfilenam curfileext emacsnewl meta begline");
write_string("**");
fExecute("emacsnewl meta begline");
write_string("** Copyright (c) ");
fExecute("curdate left left left left");
fExecute("cdelete cdelete cdelete cdelete cdelete");
fExecute("cdelete cdelete right right right right");
write_string(", ");
fExecute("curuser emacsnewl meta begline");
write_string("** All Rights Reserved");
fExecute("emacsnewl meta begline");
write_string("**");
fExecute("emacsnewl meta begline");
write_string("**");
fExecute("emacsnewl meta begline");
write_string("** Revision History:");
fExecute("emacsnewl meta begline");
write_string("**");
fExecute("emacsnewl meta begline");
write_string("** $Header$");
fExecute("emacsnewl meta begline");
write_string("**");
fExecute("emacsnewl meta begline");
write_string("*/");
fExecute("emacsnewl meta begline emacsnewl meta begline");
write_string("#define LINT_ARGS");
fExecute("emacsnewl");
MoveCur(3,0L);
Display();
return(TRUE);
}
flagType pascal EXTERNAL include_case(argtype,argptr,metaflag)
unsigned short argtype;
ARG far *argptr;
flagType metaflag;
{
GetCursor(&col,&row);
fExecute("meta begline");
write_string("#include <>");
fExecute("emacsnewl");
MoveCur(10,row);
Display();
return(TRUE);
}
WhenLoaded()
{
DoMessage("C Language Macros (v 1.2) -- Copyright (c) 1988-89, Chris Laforet.");
zero_length[0] = (char)'\0';
SetKey("if_case","ctrl+i");
SetKey("while_case","ctrl+w");
SetKey("do_case","ctrl+d");
SetKey("switch_case","ctrl+s");
SetKey("brace_case","ctrl+[");
SetKey("parenthesis_case","ctrl+]");
SetKey("_case_case","ctrl+c");
SetKey("for_case","ctrl+f");
SetKey("else_case","ctrl+e");
SetKey("main_case","ctrl+m");
SetKey("header_case","ctrl+h");
SetKey("include_case","ctrl+p");
return(TRUE);
}
struct swiDesc swiTable[] =
{
{NULL,NULL,NULL}
};
struct cmdDesc cmdTable[] =
{
{"if_case",if_case,NULL,NOARG},
{"while_case",while_case,NULL,NOARG},
{"do_case",do_case,NULL,NOARG},
{"switch_case",switch_case,NULL,NOARG},
{"brace_case",brace_case,NULL,NOARG},
{"parenthesis_case",parenthesis_case,NULL,NOARG},
{"_case_case",_case_case,NULL,NOARG},
{"for_case",for_case,NULL,NOARG},
{"else_case",else_case,NULL,NOARG},
{"main_case",main_case,NULL,NOARG},
{"header_case",header_case,NULL,NOARG},
{"include_case",include_case,NULL,NOARG},
{NULL,NULL,NULL,NULL}
};