SUBJECT: Inquiry regarding inconsistent sizing in `editorSyntax` struct

Abierto
#124 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
1/5
Tiempo estimado
Menos de una hora
Aptitud para principiantes
35/100
Tipo de issue
Documentación
Claridad
Necesita aclaración
Estado de actividad
Tranquilo
Stack tecnológico
c
Área
tooling

Línea de trabajo

Empieza por localizar la definición de la estructura editorSyntax y la inicialización posterior de singleline_comment_start, multiline_comment_start y multiline_comment_end. Compara cómo se utilizan esos campos y, a continuación, aclara en el issue por qué sus tamaños difieren; como no se especifica ningún archivo ni prueba concretos, la finalización consiste en una explicación documentada y no en un cambio de código.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Hello,
I am relatively new to C programming so forgive me if I am mistaken. However, I noticed while looking at the struct, that there was a sizing inconsistency. Here is the definition of the struct:

struct editorSyntax {
    char **filematch;
    char **keywords;
    char singleline_comment_start[2];
    char multiline_comment_start[3];
    char multiline_comment_end[3];
    int flags;
};

I noticed that singleline_comment_start is initialised with 2 characters for '//' defined later on, which cuts the null terminator off, and not making it a C string. However, in the multiline comment ending and starting, it leaves space for the null terminator as it is 3 bytes, and the start and ending of the multiline comment is 2 bytes. So 2 bytes for the comment sign and 1 byte for the null terminator.

Was dropping the null terminator singleline_comment_start a trick to save memory (which is what I thought it was)? If so, why is the multiline comment also not stored like that?
Your help woudl be appreciated.

Lenguaje dominante
C
Estrellas
9.2k
Forks
1k
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de antirez/kilo

Todos los issues de antirez/kilo

Issues similares

Más issues de C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.