Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: velorek en 17 Febrero 2019, 00:28 am



Título: Proyecto: C-Edit para Linux - Editor de texto en terminal.
Publicado por: velorek en 17 Febrero 2019, 00:28 am
C-EDIT es un editor de archivos de texto para terminales linux que imita el clásico EDIT de MS-DOS.
(en progreso, no es 100% funcional todavía)
Código fuente: https://github.com/velorek1/C-edit (https://github.com/velorek1/C-edit)

He intentado no utilizar la librería ncurses para aprender lo máximo posible.  Para tener mayor control sobre como se
muestran los datos en el terminal, he implementado un doble buffer de memoria. Así puedo volver a pantallas anteriores,
creando ventanas y un interfaz de usuario rudimentario para consola, muy al estilo de los 90.

(https://c-edit.000webhostapp.com/cedit1.png)

Sé que en 2019, con todos los editores y liberías que existen, quizá sea un proyecto irrelevante. Pero aún así quería sondear la opinión
de la comunidad hispana para continuar o desestimarlo definitivamente. Desde luego, he aprendido mucho en este proyecto.

Un saludo a todos,

Velorek.


Título: Re: Proyecto: C-Edit para Linux - Editor de texto en terminal.
Publicado por: CalgaryCorpus en 17 Febrero 2019, 02:39 am
Se ve interesante y entretenido. Felicitaciones!

Si encuentras entusiasmo para continuarlo, te sugiero separar algunas funcionalidades para poder probar que ellas trabajan correctamente y no dudar de otras cosas si algo llega a fallar.

Tests de funcionalidades por separado podrian ayudarte a detectar y corregir problemas antes de unirlas al codigo principal.

Un problema que podria haber sido capturado siguiendo esto aparece en las lineas 434 y suguientes : 
https://github.com/velorek1/C-edit/blob/master/src/cedit.c#L434

Copio a continuacion:
Código
  1.  if(editBuffer[positionY].charBuf[oldPosition].ch != CHAR_NIL ||
  2.     editBuffer[positionY].charBuf[oldPosition].ch !=
  3.     END_LINE_CHAR) {
  4.  

Puedo estar equivocado, pero este if parece SIEMPRE cierto tal como esta escrito y por tanto lo que quieres hacer solo en 2 ocasiones (o excepto en 2 ocasiones?), lo estas haciendo siempre.

La solucion, en este caso, es reemplazar el || por &&


Título: Re: Proyecto: C-Edit para Linux - Editor de texto en terminal.
Publicado por: velorek en 17 Febrero 2019, 10:06 am
Gracias por el feeback, corregido!! :)

Intentaré dividirlo en más secciones y continuar añadiendo funcionalidades.

Saludos,

Velorek.