이전에 C파일에서 H파일 H파일에서 C파일로 토클 되는 macro를 만든 적이 있다.
개발 소스 환경이 바뀌어 include 디렉토리가 따로 관리되다 보니 C/H가 같은 경로에 있지 않아
적용 되지 않았다.
소스 인사이트에 풀패스를 주지 않아도 되기 때문에 아래와 같이 업글 하였다.
pos 는 .에 위치
pos2는 백슬래쉬에 위치를 찾아
파일이름만 뜯어 내서 거기에 확장자를 붙여 열어 주니 된다.
macro OpenSourceHeader()
{
hbuf = GetCurrentBuf()
bufFileName = tolower(GetBufName(hbuf))
pos = strlen(bufFileName)-1
pos2 = strlen(bufFileName)-1
while(bufFileName[pos] != ".")
pos = pos -1
while(bufFileName[pos2] != "\\") //<--추가된 곳
pos2= pos2 -1
szFileNameOnly = strmid(bufFileName,pos2+1,pos) //<--이름만 얻는다.
szFileExt = strmid(bufFileName, pos + 1, strlen(bufFileName))
if (szFileExt =="c" || szFileExt=="cpp" || szFileExt=="cxx" )
{
openbufFileName = cat(szFileNameOnly , ".h")
hopenbuf = OpenBuf(openbufFileName)
if (hopenbuf == hNil)
{
openbufFileName = cat(szFileNameOnly , ".hpp")
hopenbuf = OpenBuf(openbufFileName)
}
if (hopenbuf == hNil)
{
openbufFileName = cat(szFileNameOnly , ".hxx")
hopenbuf = OpenBuf(openbufFileName)
}
if (hopenbuf == hNil)
{
Msg(openbufFileName)
return
}
SetCurrentBuf (hopenbuf)
}
else if (szFileExt=="h" || szFileExt=="hpp" || szFileExt=="hxx")
{
openbufFileName = cat(szFileNameOnly , ".c")
hopenbuf = OpenBuf(openbufFileName)
if (hopenbuf == hNil)
{
openbufFileName = cat(szFileNameOnly , ".cpp")
hopenbuf = OpenBuf(openbufFileName)
}
if (hopenbuf == hNil)
{
openbufFileName = cat(szFileNameOnly , ".cxxx")
hopenbuf = OpenBuf(openbufFileName)
}
if (hopenbuf == hNil)
{
Msg(openbufFileName)
return
}
SetCurrentBuf (hopenbuf)
}
}
댓글 없음:
댓글 쓰기