Jinja: рдПрдХ рд╣реА рдкрдВрдХреНрддрд┐ рдкрд░ рдЕрдВрдд рдмреНрд▓реЙрдХ рд╕реЗ рдкрд╣рд▓реЗ lstrip_blocks рд╕реНрдерд╛рди рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдЬрдире░ 2020  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pallets/jinja

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ:

set_property verilog_define {
  {%- for k, v in vlogdefine.items() %}{{ k }}={{ v|param_value_str }} {% endfor -%}
  } [get_filesets sources_1]

https://github.com/olofk/edalize/blob/bdb6c9ccc666e9f60333279ad53ed09cda88b3dc/edalize/templates/vemado/vivado-project.tcl.j2#L27 -L29 -L29

Jinja2 2.10.3 рддрдХ рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛

set_property verilog_define {vlogdefine_bool=1 vlogdefine_int=42 vlogdefine_str=hello } [get_filesets sources_1]

https://github.com/olofk/edalize/blob/bdb6c9ccc666e9f60333279ad53ed09cda88b3dc/tests/test_vivado-test_vivado_0.tcl#L10

рдХреЛрдб рдореЗрдВ lstrip_blocks = True ред

рдЕрдм реи.резрез.реж рдХреЗ рд╕рд╛рде рдХреЛрдб рдЗрд╕ рддрд░рд╣ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

set_property verilog_define {vlogdefine_bool=1vlogdefine_int=42vlogdefine_str=hello} [get_filesets sources_1]

@towoe рдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдиреАрдЪреЗ https://github.com/pallets/jinja/commit/7d00a40465c89bee141ab5a3db545a20e7d30509 (

рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░

lstrip_blocks
рдпрджрд┐ рдпрд╣ рдЯреНрд░реВ рд▓реАрдбрд┐рдВрдЧ рд╕реНрдкреЗрд╕ рдкрд░ рд╕реЗрдЯ рд╣реИ рдФрд░ рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдмреНрд▓реЙрдХ рддрдХ рдЯреИрдм рдЫреАрди рд▓рд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЭреВрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреВрдХред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╡реНрд╣реЙрдЯреНрд╕рдПрдк рдХреЛ endfor рд╕реЗ рдкрд╣рд▓реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк "рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ" рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рдореБрдЭреЗ рдпрд╣ рдЧрд▓рддрдлрд╣рдореА рд╣реИ, рдпрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ?

рдЕрдЬрдЧрд░ 3.7.3 (рд▓реЗрдХрд┐рди рд╕реАрдЖрдИ рдореЗрдВ 3.5 рдкрд░ рднреА рд╣реЛрддрд╛ рд╣реИ)

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА 2.11.2 рдЬрд╛рд░реА рдХрд┐рдпрд╛ред

рд╕рднреА 13 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдЗрд╕реЗ рджреЗрдЦреВрдВрдЧрд╛, рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рдЦреЗрдж рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рддреНрд░ рдХреЗ рдХрд╛рд░рдг! рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдм рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд┐рдЫрд▓реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ред рдХреНрдпрд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рд╡реНрд╣реЙрдЯреНрд╕рдПрдк рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП {%+ endfor -%} рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛?

@davidism рдПрдХ рдирдЬрд╝рд░ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╣рд╛рдВ, рд╣рдо рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ edalize рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬрд╣рд╛рдВ рдЬрд┐рдВрдЬрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) ( + , lstrip_blocks = False , рдЖрджрд┐ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ), рд▓реЗрдХрд┐рди рдореИрдВ рдкрд╣рд▓реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рд╣рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рд╕рд╛рдЭрд╛ рд╕рдордЭ рд╣реИред

рдпрд╣ рднреА рдореВрд▓ рдкреЛрд╕реНрдЯрд░ рдХреА рддрд░рд╣ рдореБрдЭреЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдкреНрд░рд▓реЗрдЦрди рдореБрдЭреЗ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 2.11 рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд▓рдд рд╣реИред Https://github.com/pallets/jinja/blob/2.11.x/docs/templates.rst#whitespace -control рд╕реЗ:

(рдпрджрд┐ рдмреНрд▓реЙрдХ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдиреНрдп рд╡рд░реНрдг рд╣реИрдВ рддреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЫреАрдирд╛ рдЬрд╛рдПрдЧрд╛ред)

рдпрд╣ # 858 рдХреЗ рдХрд╛рд░рдг рд╣реИ, рдЬрд┐рд╕рдиреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕реНрдкреЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рдЧрддрд┐ рдХрд╛ рдореБрджреНрджрд╛ рддрдп рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рдареАрдХ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрд╕ рдмрджрд▓рд╛рд╡ рдХреЛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ред рдЕрдЧрд░ рдХреЛрдИ рднреА рд░реЗрдХреНрд╕ рдореЗрдВ рд░реЗрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЗрд╕рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред

Lstrip_blocks рдХреЗ рдЗрдЪреНрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЦреЗрдж рд╣реИ, рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдереЛрдбрд╝рд╛ рдЙрд▓рдЭрди рдореЗрдВ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рдорд┐рд▓ рдкрд╛ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ Google рдореБрдЭреЗ рдбреЙрдХреНрд╕ рдкрд╛рд░реНрдЯ @kenyon рд╕реЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рдерд╛, рдмрд╣реБрдд рдЕрдЬреАрдм рдерд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдЕрднрд┐рдкреНрд░реЗрд░рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рдЫреВрдЯ рдЧрдпрд╛ред

рдЬреИрд╕рд╛ рдХрд┐ @davidism рдиреЗ рдХрд╣рд╛, рдлрд┐рдХреНрд╕ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╕реЗ рдЕрдиреНрдп рдкрд░реЗрд╢рд╛рдиреА рд╣реЛрдЧреА рдЗрд╕рд▓рд┐рдП рдирдП рдлрд┐рдХреНрд╕ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рд▓рд┐рдП рд╕рдордп рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

from jinja2 import Template

t = Template(
    "{% if x %}{{ x }} {% endif %}y",
    lstrip_blocks=True,
)
out = t.render(x="x")
assert out == "x y"

https://github.com/pallets/jinja/blob/547e6e39ec3994c9dd0c806ee7bb29353843060e/src/jinja2/lexer.py#7721 -L735

рдпрд╣рд╛рдБ рдореБрджреНрджрд╛ рд╣реИред рдЬрдм рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдЯреЛрдХрди рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ find("\n") рдХреЛ рдХреЗрд╡рд▓ {{ x }} рдФрд░ {% endif %} рдмреАрдЪ рдХреА рдЬрдЧрд╣ рд╡рд╛рд▓рд╛ рдЯреЗрдХреНрд╕реНрдЯ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, рдХреЛрдИ рдирдИ рд░реЗрдЦрд╛ рдирд╣реАрдВ рджреЗрдЦрддрд╛, рдлрд┐рд░ рдкрд╛рда рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рд╕реНрдЯреНрд░рд┐рдкреНрд╕ред

"\n" in text elif рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдПрдХ рдирдИ рд░реЗрдЦрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХреЗрд╡рд▓ рд╕реНрдерд╛рди рд╣реЛрдиреЗ рдкрд░ рдЫреАрди рд▓рд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╣рдо рдереЛрдбрд╝реА рд╕реА рд╣реЛрд╢рд┐рдпрд╛рд░ рд╣реЛ рдЬрд╛рдПрдВ рдФрд░ рдЯреНрд░реИрдХ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╣реИрдВ, рдпрд╣ рдЕрднреА рднреА рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рдпрджрд┐ trim_blocks рдХреЛ рднреА рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ regex рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ newline рд╕реЗ рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рдРрд╕рд╛ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ {%- raw %} {% endraw -%} рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИред 2.11.0 рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдЗрд╕ рд╕реНрдерд╛рди рдкрд░ рдПрдХ рд╕реНрдерд╛рди рдХреЛ рдордЬрдмреВрд░ рдХрд░реЗрдЧрд╛ред рдЕрдм рдпрд╣ рд╕реНрдерд╛рди рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

from jinja2 import Template

t = Template(
    "{{x}}\n{%- raw %} {% endraw -%}\n{{ y }}",
    lstrip_blocks=True,
)
out = t.render(x="x", y="y")
assert out == "x y"

@ рдкреЗрдЯреА-рдбреА рдХрд┐рд╕реА рднреА рдореМрдХрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдлрд┐рд░ рд╕реЗ рдЗрд╕ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдордп рд╣реИ? рдореИрдВ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБ 2.11.2 рдЕрдиреНрдпрдерд╛ред

рдЖрдЙрдЪ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднреВрд▓ рдЧрдпрд╛ред рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордп рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ, рдЕрдиреНрдпрдерд╛ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯреНрд╕ рдЬрд┐рддрдирд╛ рдмреБрд░рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдВред

рдореЗрд░реА рдЕрд╕реНрдерд╛рдпреА рдпреЛрдЬрдирд╛ рд╢рдирд┐рд╡рд╛рд░ рдХреЛ рд░рд┐рд▓реАрдЬ рд╣реЛрдиреА рд╣реИред рдЕрдЧрд░ рдЖрдк рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ, рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕реЗ рдкреАрдЫреЗ рдзрдХреЗрд▓ рд╕рдХрддрд╛ рд╣реВрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдлрд┐рдХреНрд╕ рд╣реИред рдореИрдВрдиреЗ рдЖрдкрдХреА рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ @davidism рджреНрд╡рд╛рд░рд╛ рдореЗрд░реЗ рдлрд┐рдХреНрд╕ рдореЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдлрд┐рд░ рднреА рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдЖрдпрд╛, рдмрд╕ рдереЛрдбрд╝рд╛ рдФрд░ рдЖрдЧреЗ рдмрдврд╝ рдЧрдпрд╛ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддрд╛ рдерд╛ рдЕрдЧрд░ l_pos = text.rfind("\n") + 1 рдХреЛ рдХреЛрдИ рднреА рдирдпрд╛ рдЪрд░рд┐рддреНрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдпрд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдм рд╕реНрдЯреНрд░рд┐рдкрд┐рдВрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рдЕрдЧрд░ text рдореЗрдВ рдХреЛрдИ рдирдИрд▓рд╛рдЗрди рдирд╣реАрдВ рд╣реЛрддреАред рддрдм рдореИрдВ рднреА рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА source рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд╡реИрд╕реЗ рднреА рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп or pos == 0 , рдореИрдВ рдПрдХ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ line_starting рдмреВрд▓рд┐рдпрди рдзреНрд╡рдЬ рд╕рдЪ рдореЗрдВ intializedред рдлрд┐рд░ рдореИрдВ рд╕рд┐рд░реНрдл рдЗрд╕ рдЯреЛрдХрди рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЯреЛрдХрди рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдорд┐рд▓рд╛рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдХ рдирдИ рд░реЗрдЦрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЯреНрд░рд┐рдо_рдмреНрд▓реЙрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рднреА рд╣рд▓ рдХрд░рддрд╛ рд╣реИред # 1183 рдореЗрдВ рдлрд┐рдХреНрд╕ рджреЗрдЦреЗрдВред

рд╡рд░реНрддрдорд╛рди рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рдХрд▓ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдирдП рдкрд░реАрдХреНрд╖рдг рднреА рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдФрд░ рдЕрдиреНрдп рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рднреА рдЪрд▓рд╛рдКрдВрдЧрд╛, рдкрд╣рд▓рд╛ рдлрд┐рдХреНрд╕ рдФрд░ рджреВрд╕рд░рд╛ рддрд╛рдЬрд╛ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдПрдХрддреНрд░рд┐рдд 5GB рд╕реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬреЛ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдПрдХрддреНрд░ рдХрд┐рдП, рдкрд╛рд░реНрд╕ рдкреЗрдбрд╝реЛрдВ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВред

рдЯреЗрд╕реНрдЯ рдЬреЛрдбрд╝реЗ рдЧрдП, рдкрд░рдлреЗрдХреНрдЯ рдЯреЗрд╕реНрдЯ рдореЗрдВ рдХреЛрдИ рдЧрд┐рд░рд╛рд╡рдЯ рдирд╣реАрдВ рд╣реБрдИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореЗрд░реА рддрд░рдл рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред :)

рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА 2.11.2 рдЬрд╛рд░реА рдХрд┐рдпрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

mitsuhiko picture mitsuhiko  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Yannik picture Yannik  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hvnsweeting picture hvnsweeting  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

AMDmi3 picture AMDmi3  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

htgoebel picture htgoebel  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ