aboutcode-org / aboutcode-org/source-inspector

xgettext: multiple starting lines for a string are not well supported

Aberta
#13 3 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
C
Estrelas
3
Forks
2
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

In the current xgettext implementation I can see at line 115 https://github.com/nexB/source-inspector/blob/9511f56b44ac7c5644b34d413146d58dd9fa7ea0/src/source_inpector/strings_xgettext.py#L115 the following:

```
_, _, start_line = line.rpartition(":")
```

This is likely leading to the wrong results, as a line can have multiple instances of `start_line`, which you aren't catching. As an example, I used `xgettext` with the same parameters as you did on `libbb/lineedit.c` from BusyBox:

```
$ xgettext --omit-header --extract-all --no-wrap lineedit.c
```

Some of the result lines:

```
#: lineedit.c:834 lineedit.c:890 lineedit.c:893
msgid "."
msgstr ""
```

As you can see there are multiple file/line number entries there. It seems that at some point the authors of `xgettext` decided to combine these. Your code does not correctly process these lines:

```
>>> line = '#: lineedit.c:834 lineedit.c:890 lineedit.c:893'
>>> _, _, start_line = line.rpartition(":")
>>> start_line
'893'
```

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.