aboutcode-org / aboutcode-org/source-inspector

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

Abierto
#13 3 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C
Estrellas
3
Forks
2
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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'
```

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.