INDENT(1)

명칭
indent - C 언어 프로그램의 인덴트와 정형

서식
indent [input-file [output-file]] [-bad | -nbad] [-bap | -nbap] [-bbb | -nbbb] [-bc | -nbc] [-bl] [-br] [-cn] [-cdn] [-cdb | -ncdb] [-ce | -nce] [-cin] [-clin] [-dn] [-din] [-fc1 | -nfc1] [-fcb | -nfcb] [-in] [-ip | -nip] [-ln] [-lcn] [-lp | -nlp] [-npro] [-pcs | -npcs] [-psl | -npsl] [-sc | -nsc] [-sob | -nsob] [-st] [-troff] [-v | -nv]

해설
indent 유틸리티는 C 언어 프로그램의 정형을 실시합니다. input-file 안의 C 프로그램을 옵션에 따라 다시 정형합니다. 이하로 설명하는 옵션은 파일명의 전후로 지정할 수 있습니다.

주: input-file 만을 지정했을 경우, 정형은 「같은 장소에」행해집니다. 즉, 정형 결과는 input-file 에 써 되돌려져 커런트 디렉토리에 원의 input-file 의 백업이 카피됩니다. 예를 들면 input-file 의 이름이 ‘/blah/blah/file’ (이었)였다고 하면(자), 백업파일의 이름은 file.BAK 됩니다.

indent 하 output-file 하지만 지정되면(자), 만약을 위해, 그것이 input-file (와)과는 다른 것을 체크합니다.

indent 의 정형 스타일은 이하에 주는 옵션으로 제어합니다.

-bad, -nbad
    -bad (을)를 지정하면(자), 선언 블록의 뒤 마다 공행을 1 행 넣습니다. 디폴트는 -nbad 입니다.

-bap, -nbap
    -bap (을)를 지정하면(자), 함수 본체의 뒤 마다 공행을 1 행 넣습니다. 디폴트는 -nbap 입니다.

-bbb, -nbbb
    -bbb (을)를 지정하면(자), 코멘트 블록의 전에 반드시 공행을 1 행 넣습니다. 디폴트는 -nbbb 입니다.

-bc, -nbc
    -bc (을)를 지정하면(자), 선언안의 콤마의 뒤 마다 개행을 넣습니다. -nbc (은)는 이것을 억제합니다. 디폴트는 -nbc 입니다.

-br, -bl
    -bl (을)를 지정하면(자), 복합문은 이하와 같이 행 나누고 됩니다.

        if (...)
        {
          code
        }

    한편, 디폴트는 -br 그렇지만, 이하와 같이 됩니다.

        if (...) {
          code
        }

-cn 프로그램 코드의 우측으로 쓰여진 코멘트를 지정의 자리수 위치에 가지런히 합니다. 데 fault에서는 33 자리수째에 가지런히 할 수 있습니다.

-cdn
    선언의 우측으로 쓰여진 코멘트를 지정의 자리수 위치에 가지런히 합니다. 디폴트에서는 프로그램 코드의 우측으로 쓰여진 코멘트와 같은 위치(즉 -c 그리고 지정된 위치)가 됩니다.

-cdb, -ncdb
    코멘트 단락을 독립의 행으로 하는지 어떤지를 지정합니다. 코멘트 블록 인 만큼 유효해, 프로그램 코드의 우측으로 쓰여진 코멘트에는 영향 섬키 응. 디폴트는 -cdb 그리고, 코멘트는 이하와 같이 됩니다.

        	/*
        	 * this is a comment
        	 */

    한편, -ncdb 그럼 이하와 같이 됩니다.

        	/* this is a comment */

-ce, -nce
    -ce (은)는 `else'를 직전의 `}'에 붙여 ``} else''와 같이 출력합니다. 디폴트는 -ce 입니다.

-cin
    계속행의 인덴트를 n 그리고 지정합니다. 계속행은, 그 문장의 최초의 행의 선두로부터 지정한 자수만 글자 내리고 됩니다. 외모로 괄식은 -lp 하지만 유효하지 않으면, 상자가 되어 있는 것을 나타내기 위해서(때문에) 여분으로 인덴트 되고 -ci 의 디폴트는 -i (와)과 같은 값입니다.

-clin
    case label 인덴트 위치를 switch 문장의 인덴트 위치로부터 n 개목의 tab stop로 합니다. -cli0. -5 (이)라면, tab stop의 반이 됩니다. 디폴트는 -cli0 입니다.

-dn 프로그램 코드의 우측으로 쓰여진 것이 아닌 독립한 코멘트에 관해서, 그 자리소를 제어합니다. 예를 들면 -d1 그리고, 코드의 인덴트보다 1 단 좌측으로 합니다. 디폴트의 -d0 (을)를 지정하면(자), 프로그램 코드의 인덴트에 맞춥니다. 아래와 같이 「코멘트의 인덴트」시에를 참조해 주세요.

-din
    선언자로부터 거기에 계속되는 식별자에의 인덴트를 캐릭터수로 지정합니다. 디폴트 하 -di16 입니다.

-dj, -ndj
    -dj (은)는 선언을 왼쪽 가지런히 해로 합니다. -ndj (은)는, 프로그램 코드와 같은 인덴트를 실시합니다. 디폴트는 -ndj 입니다.

-ei, -nei
    else-if 에 대해 특별한 처리하도록(듯이) 지정합니다(하지 않습니다). -ei (은)는 특별한 처리를 실시해, else 에 계속된다 if (은)는, 최초의 if 문과 같다인덴트 됩니다. -ei 하지만 디폴트입니다.

-fc1, -nfc1
    -fc1 그리고, 코멘트가 1 자리수째부터 시작되어 있는 경우도 정형합니다(하지 않습니다). 와 (와)과 같은 경우에는, 우와로 해 프로그래머가 의도적에 따르고라고 있으므로 있어, -nfc1 (을)를 사용해야 하는 것이 아닙니다. 디폴트는 -fc1 입니다.

-fcb, -nfcb
    블록 코멘트 (`/*\n'로 개시하는 코멘트)의 정형을 유효로 하는지 어떤지를 지정합니다. 프로그래머는, 블록 코멘트를 그렇게는 주의 깊고 수동 정형하고 있지 않는 것이 많습니다만, 재정형에 의해 개행 위치만을 바꾼다고 하는 것은 바람직하지 않은 것이 있습니다. 이러한 경우에는 -nfcb (을)를 사용합니다. 블록 코멘트는 복스코메트와 같이 다루어집니다. 디폴트는 -fcb 입니다.

-in 1 단의 인덴트량을 지정합니다. 디폴트는 8 캐릭터입니다.

-ip, -nip
    파라미터 선언을 왼쪽 마진으로부터 한층 더 인덴트 합니다(하지 않습니다). 디폴트는 -ip 입니다.

-ln 출력행의 최대폭을 지정합니다. 디폴트는 78 캐릭터입니다.

-lp, -nlp
    계속행에 대해 괄호내의 프로그램 코드의 위치를 가지런히 합니다. 왼쪽 괄호가 그 행으로 닫지 않을 때, 계속행을 전의 행의 왼쪽 괄호의 1 캐릭터 뒤로부터 시작되어 게 합니다. 예를 들면, -nlp 하지만 지정되면(자) 계속행은 이하와 같이 됩니다.

        p1 = first_procedure(second_procedure(p2, p3),
          third_procedure(p4, p5));

    한편, -lp 하지만 지정되면(자)가 지정되면(자), 프로그램 코드는 이하와 같이는 약간 보고 싸집니다.

        p1 = first_procedure(second_procedure(p2, p3),
                             third_procedure(p4, p5));

    2행 여분으로 개행되었을 경우에는, 아래와 같이 됩니다.

        p1 = first_procedure(second_procedure(p2,
                                              p3),
                             third_procedure(p4,
                                             p5));

-npro
    인덴트의 프로파일 ‘. /.indent.pro’ (와)과 ‘~/.indent.pro’, (을)를 사용하지 않게 됩니다.

-pcs, -npcs
    -pcs 하지만 지정되면(자), 모든 함수 소환의 함수명과 괄호의 사이에 공백을 1 개(살) 넣습니다. 디폴트는, -npcs 입니다.

-psl, -npsl
    -psl 하지만 지정되면(자), 함수 정의에 있어서의 함수의 이름을 1 자리수째부터 초 르트는, -psl 입니다.

-sc, -nsc
    모든 코멘트의 좌단에, asterisk(`*')를 둡니다(두지 않습니다). 디폴트는 -sc 입니다.

-sob, -nsob
    -sob 하지만 지정되면(자), 불필요한 공백행을 제거합니다. 선언부의 뒤의 여분의 공백행 (을)를 없애는데 편리합니다. 디폴트는, -nsob 입니다.

-st indent 하지만 표준 입력에 대해서 처리를 실시해, 결과를 표준 출력에 출력하도록(듯이) 합니다.

-Ttypename
    typename (을)를 형명으로서 취급하도록(듯이) 추가합니다. -T (은)는 몇 사용해도 상관없기 때문에, 복수의 형명을 지정할 수 있습니다. 프로그램중에서 typedef 에 의해 정의된 형명은 반드시 지정할 필요가 있습니다. - 다소의 지정을 잊었더니 실제 손해는 전혀 없습니다만, 프로그램은 의도했을 정도 예쁘게 (은)는 정형되지 않을 것입니다. 전부의 형명을 지정해야 하는 것은 큰 일인 같게 생각됩니다만, 실제로는 이것은 C 언어가 가지는 문제가 표면화하는 것에 지나고 선. 즉, typedef (은)는, 언어의 구문 해석을 바꾸어 버리므로, indent 하 typedef 그리고 정의된 형명을 모두 찾아낼 수가 없는 것입니다.

-troff
    troff(1) 그리고 처리할 수 있는 포맷으로 출력합니다. vgrind(1) (와)과 완전히 같은 생각에 근거해, 출력을 예쁘게 하려고 합니다. 출력 파이 르가 지정되어 있지 않으면 출력처로서 입력 파일은 아니고 표준 출력이 사 깨집니다.

-v, -nv
    -v 그리고 `verbose'모드가 됩니다. -nv (은)는 `verbose'모드를 억제합니다. `verbose'모드에서는, 입력중의 1 행 하지만 복수행으로 분할되었을 경우에는, 그 취지를 표시해, 종료시에는 출력 사이즈에 붙은 정보를 덧붙이게 됩니다. 디폴트는 -nv 입니다.

로그인 디렉토리나 커런트 디렉토리의 한편, 혹은 그 양쪽 모두에 .indent.pro 그렇다고 하는 프로파일을 만들어, 그 중에 옵션을 써 두는 것으로, 당신의 취향의 설정을 indent 의 디폴트로 할 수가 있습니다. 프로파일은, 로그인 디 렉토 리, 커런트 디렉토리의 순서로 읽히기 (위해)때문에, 커런트 디렉토리 에 `.indent.pro'가 있으면(자), 그 쪽의 지정이 우선됩니다. indent 의 기동시에 프로파일이 존재하고 있으면(자), 그것을 읽어들여 디폴트와 해 사용합니다. 다만, 명령행으로 옵션을 지정하면(자), 그것은 상 에 프로파일중의 옵션보다 우선됩니다. 프로파일을 쓸 때 에는, 각 옵션을 공백이나 탭 혹은 개행으로 단락지어 주지 않으면 되어 선.

  코멘트
‘둘러싸였다’ 코멘트 의 처리에 대해 설명합니다. indent 유틸리티는, 코멘트 개시의 직후에 마이너스나 asterisk가 계속되고 있다(즉 `/*-'혹은`/**'되고 있다) 경우, 그 코멘트를 asterisk로 주위를 둘러싸인 것으로 간주합니다. 이러한 코멘트에 대해서는, 코멘 트의 최초의 행에 베풀어지는 인덴트 위치에, 계속되는 각 행을 가지런히 하는 것 외는, 처리를 실시해 선.

다음에, 연속한 텍스트 (으)로서의 처리에 대해 설명합니다. 위에 올린 이외의 코멘트는, 연속한 텍스트로서 취급합니다. indent 유틸리티는, 1 행으로 할 수 있을 뿐(만큼) 많은 단어(공백이나 탭 혹은 개행으로 단락지어진 캐릭터 열)을 담으려고 합니다. 또, 공백행에 의해 단락을 나눌 수 있습니다.

  코멘트의 인덴트
프로그램 코드의 우측의 코멘트는, 명령행의 옵션 -cn 그리고 지정된 「코멘트 개시 위치」로부터 시작되게 됩니다. 그 외의 코 먼트는, 명령행의 옵션 -dn 하지만 지정되면(자), 프로그램 코드가 두어지고 있는 위치보다 n 단 적고 인덴트 됩니다. 1 행중에서 프로그램 코드가 지정된 코멘 트 개시 위치를 넘어 계속되고 있었을 경우에는, 한층 더 그 오른쪽으로 코멘트를 계속하고 가, 극단적으로 행이 길었던 경우에는, 자동적으로 오른쪽 마진이 넓게 빼앗긴다 일이 있습니다.

  매크로행
일반적으로 indent (은)는 프리프로세서의 매크로행을 그대로 출력합니다. 유일한 예외는 그 행의 우측으로 코멘트가 쓰여져 있을 때로, 그 코멘트를 정형합니다. 다만, 매크로의 전개의 결과 프로그램에 매입코멘트는 처리하지 않습니다. 또, indent (은)는 조건부 컴파일의 매크로 (#ifdef...#endif) (을)를 인식해, 거기에 따라 초래되는 구문상의 이상을 올바르게 보충하려고 섬

  C 언어의 구문
indent 유틸리티는, C 언어의 구문을 꽤 이해합니다만, 「너그로운」구문 분석 밖에 행동키 응. 불완전하기도 하고 올바르지 않은 구문도, 매우 보통 것이라면 잘 처리해 로 합니다. 특히 주면(자), 이하와 같은 매크로도 적당하게 처리됩니다.

    #define forever for(;;)

환경 변수
indent 유틸리티는 환경 변수로서 HOME (을)를 사용합니다.

관련 파일
. /.indent.pro
    디폴트의 설정을 기술한 프로파일입니다.
~/.indent.pro
    디폴트의 설정을 기술한 프로파일입니다.

역사
indent 명령은 4.2BSD 그리고 도입되었습니다.

버그
indent 유틸리티는 ls(1) 이상으로 많은 옵션을 가지고 있습니다.

자주 있는 비참한 실수는, 디렉토리에 있는 모든 C 프로그램을 정형하려고 해

    indent *. c

(이)라고 입력해 버리는 것입니다. 아마, 이것은 버그여 특징이라고 말해야 한다 (은)는 아닐 것입니다.