Page 5 of 7

Re: Правила оформления кода

Posted: Mon Oct 17, 2011 10:38 pm
by Nable
to turbanoff

Code: Select all

sed 's/\t/\ \ \ \ \ \ \ \ /g'
Какую ещё корректировку надо?
Хех, помню как на меня тут ругались (4 года назад) за оформление исходников. А я просто использовал только редактор fasm'а с его фичей optimal saving когда используются вперемешку табы и пробелы по принципу 8 пробелов = 1 таб.
Ныне использую только табы, ну да это не важно совсем.

Re: Правила оформления кода

Posted: Mon Oct 17, 2011 11:33 pm
by CleverMouse
Nable, это, во-первых, некорректная замена, а во-вторых, даже не пытается учесть правила помимо табуляции.
turbanoff, я конвертировала наколеночным скриптом

Code: Select all

#!/bin/bash
FILE=$1
expand -t8 $FILE | perl -lne 'if(!$z&&m/^(\s*[^;"\x27\$][^;"\x27\s]*:)(\s*)([^;\s].*)$/){print "$1\r\n"," " x (length($1)+length($2)),$3}else{print}$z=(m/\\\s*(;.*)?$/)' > $FILE.1
perl -n /home/users/clevermouse/beautifyer/beautifyer.pl $FILE.1 > $FILE
rm $FILE.1
expand раскрывает табуляцию, следующий регэксп выделяет метки и печатает их на отдельной строке, отступы настраивает приложенный скрипт
Downloaded 977 times
Для массового исправления, соответственно, из командной строки

Code: Select all

for a in `find -iname '*.asm' -o -iname '*.inc'`;do ./beautifyer.sh $a;done

Re: Правила оформления кода

Posted: Sat Dec 10, 2011 7:16 pm
by Asper
Вопрос: распространяются ли правила форматирования кода на драйвера?

Re: Правила оформления кода

Posted: Mon Dec 12, 2011 1:35 am
by Nable
тут не так давно писали что ты на svn не сможешь затолкнуть ничего текстового, содержащего \t, так что похоже что распространяются.

Re: Правила оформления кода

Posted: Mon Dec 12, 2011 2:19 am
by mike.dld
Asper wrote:Вопрос: распространяются ли правила форматирования кода на драйвера?
А почитать тему?
CleverMouse wrote:Ещё раз: на репозиторий вне kernel/trunk правила не распространяются.
Соответственно, если исходники лежат не в /kernel/trunk/drivers (а, скажем, в /drivers), то правила форматирования на них *не распространяются*. С другой стороны, я бы заметил, что это не значит, что их *не стоит* там применять.

Re: Правила оформления кода

Posted: Mon Dec 12, 2011 5:31 am
by Serge
mike.dld wrote: С другой стороны, я бы заметил, что это не значит, что их *не стоит* там применять.
Спасибо, но лучше не надо. Особенно к портированным.

Re: Правила оформления кода

Posted: Mon Dec 12, 2011 12:52 pm
by mike.dld
Про применение правил к C/C++ коду никто никогда ничего не говорил, а портированного ASM кода я как-то не помню, по крайней мере в сфере драйверов. Так в чём проблема? И я вообще-то имел в виду (вероятно, не совсем корректно выразился) самостоятельное соблюдение правил, без принуждения. Ну да ладно... Может быть, когда-нибудь, кто-нибудь поймёт...

Re: Правила оформления кода

Posted: Mon Dec 12, 2011 12:54 pm
by CleverMouse
Из заглавного сообщения темы:
CleverMouse wrote:svn-сервер будет просто отклонять коммиты, выполнение которых означало бы появление в kernel/trunk файлов *.asm или *.inc, нарушающих оформление

Re: Правила оформления кода

Posted: Mon Dec 12, 2011 5:47 pm
by Asper
Ok, спасибо.
mike.dld wrote:Может быть, когда-нибудь, кто-нибудь поймёт...
Я понял и ничего против заявленных правил форматирования не имею, хотя бы потому что эти правила по большей части соответствуют моему собственному стилю.
Вопрос я задал, поскольку собираюсь в ближайшем будущем залить код HDA драйвера на SVN.
Кстати код драйвера HDA находится в нескольких файлах, может создать для него отдельную папку на в /kernel/trunk/drivers или заливать всё в кучу?

Re: Правила оформления кода

Posted: Fri Jan 27, 2012 3:23 pm
by CleverMouse
Asper, лучше создать отдельную папку.

Re: Правила оформления кода

Posted: Fri Feb 24, 2012 6:14 pm
by Mario

Code: Select all

; init selectors
        mov     ebx, [BOOT_VAR+0x9040]          ; offset of APM entry point
        movzx   eax, word [BOOT_VAR+0x9050]; real-mode segment base address of
                                                                                ; protected-mode 32-bit code segment
        movzx   ecx, word [BOOT_VAR+0x9052]; real-mode segment base address of
                                                                                ; protected-mode 16-bit code segment
        movzx   edx, word [BOOT_VAR+0x9054]; real-mode segment base address of
                                                                                ; protected-mode 16-bit data segment
Наша новая система с поликерамидами - ваши волосы всегда великолепны! :lol:

Re: Правила оформления кода

Posted: Fri Feb 24, 2012 6:36 pm
by CleverMouse
Глюки старой версии

Code: Select all

; init selectors
    mov ebx,[BOOT_VAR+0x9040]			; offset of APM entry point
    movzx eax,word [BOOT_VAR+0x9050] 	; real-mode segment base address of
										; protected-mode 32-bit code segment
    movzx ecx,word [BOOT_VAR+0x9052] 	; real-mode segment base address of
										; protected-mode 16-bit code segment
    movzx edx,word [BOOT_VAR+0x9054] 	; real-mode segment base address of
										; protected-mode 16-bit data segment
Spoiler:
kernel_asm_2000.png
kernel_asm_2000.png (5.79 KiB)
Viewed 17222 times
сохранены для совместимости.

Re: Правила оформления кода

Posted: Fri Feb 24, 2012 6:55 pm
by Mario
Вообще то раз уж сказано А, то должно быть сказано Б. Почему в одних случаях можно, а в других нельзя? Надо весь код к 80 символьной границе приводить. Это же не Си какой-нибудь, чтобы рассусоливать.

Re: Правила оформления кода

Posted: Sun Apr 22, 2012 1:39 am
by XVilka
Раньше это было актуально. Но сейчас, имхо, ни к чему ограничивать длину строки до 80. Если уж ограничивать, то 100-120

Re: Правила оформления кода

Posted: Sun Apr 22, 2012 1:56 am
by Mario
Меню больше волнует жуткая предвзятость к табам. Глупо ограничивать удобство использования.