我们正在为SDK5升级(重写)我们的代码。
Like in SDK3, I have noticed that some c\h files use the "windows" new-lines (i.e. two chars: '\r\n') and most files use the non-windows new-lines (just a '\n' char).
有些文件甚至使用这两种样式:
。\ projects \ target_apps \ peripheral_examples \ shared \ startup \ system_armcm0.c
。\ projects \ target_apps \ prod_test \ prod_test \ src \ custom_lld_data.c
。\ projects \ target_apps \ prod_test \ prod_test \ src \ custom_lld_evt.c
。\ projects \ target_apps \ template \ empty_peripheral_template \ src \ platform \ user_periph_setup.c
。\ sdk \ ble_stack \ profiles \ spota \ spotar \ spotar.h
。\ sdk \ ble_stack \ profiles \ StreamData \ StreamDatad \ StreamDatad_Task.c
。\ sdk \ platform \ core_modules \ crypto \ aes_task.h
。\ sdk \ platform \ core_modules \ crypto \ os_port.h
。\ sdk \ platform \ core_modules \ crypto \ sw_aes.h
。\ Utilities \ flash_programmer \ src \ otpc.c.
。\ Utilities \ mkimage \ os_port.h
。\ utilities \ prod_test \ prod_test_cmds \ prodtest \ host_hci.h
。\ Utilities \ Secondary_bootloader \包括\ os_port.h
。\ Utilities \ Secondary_Bootloader \包括\ uart.h
Windows新行在keil4上是优选的 - 例如,我注意到,如果在预处理器宏上单击f12以查找其定义,则仅当.h文件使用Windows NewLines时,编辑器才会跳转到确切的定义行(\ r \ n)。
如果您想要修复所有这些文件的Python脚本,请与我联系。
oren zomer.
亲爱的对话。
我已经注意到了像oren Zomer一样的新系列混合物。
您是否计划将新行更改为常见格式?
我还会建议Windows新行,同时使用基尔。
此致,
Ciano Frost.
丹麦
嗨Ciano,
我不知道如果SDK团队有关于下一个SDK发布的计划,我将通过您的请求。
谢谢mt_dialog.
我注意到SDK 5.0.4还包含“UNIX NewLines” - 即“\ n”,没有“\ r”。
这是一个简单的python脚本,即我编写以修复ewhlines(从“\ n”到“\ n”到“\ r \ n”)中的所有.c和.h文件中的“\ r \ n”):
导入OS.
导入OS.Path.
导入fnmatch.
def fix_newlines(main_dir):
对于root,dirnames,在OS.Walk(Main_dir)中的文件名:
for fnmatch.filter中的文件名(文件名,'*。[ch]'):
filepath = os.path.join(root,filename)
f =打开(FilePath,'RB')
txt = f.read()
F.Close()
new_txt = txt.replace('\ r \ n','\ n')。替换('\ n','\ r \ n')
如果new_txt!= txt:
打印“修复%s”%(filepath,)
打开(FilePath,'WB')。写(new_txt)
如果__name__ =='__main__':
进口系统
FIX_NEWLINES(SYS.ARGV [1])
打印“完成”