pspg pro mswin - hleda se dobrovolnik

25 views
Skip to first unread message

Pavel Stehule

unread,
Dec 21, 2022, 11:21:35 PM12/21/22
to PostgreSQL-cz
Ahoj

upravil jsem pspg (https://github.com/okbob/pspg), tak aby jelo nad pdcurses https://github.com/Bill-Gray/PDCursesMod . pdcurses jeden ze starsich projektu implementujicich curses API (https://www.root.cz/clanky/psani-aplikaci-pro-terminal-jak-funguje-knihovna-ncurses/ ), a pokud se pouziva dnes, tak pro multiplatformni aplikace. ncurses v Unixu jsou o necem jinem, ale i v pdcurses bezi pspg hezky.

Narazil jsem jeste na par chyb v pdcurses, nicmene az bude jedna chyba opravena https://github.com/Bill-Gray/PDCursesMod/issues/256 , tak by nemel byt problem s prelozenim a provozem pspg na platformach, ktere podporuje pdcurses. Pro Linux jsem napsal kratky patch do pdcurses, pro  windows bude potreba ten patch napsat.

Uz roky nedelam ve windows, takze mam koprivku jen kdyz mam do windows nabootovat, takze tu finalni portaci bych rad prenechal nekomu jinemu, kdo se citi v ms visual studiu pohodlne. Najde se dobrovolnik? Je to dobry testik jak psat multiplatformni terminalove aplikace. Aktualne pspg bezi prakticky na vsech jeste zijicich Unixech, kde je k dispozici knihovna ncurses.

Pavel


Josef Šimánek

unread,
Dec 22, 2022, 11:16:46 AM12/22/22
to postgr...@googlegroups.com
Asi toho budu brzo litovat, ale přiznávám že tu jeden Windows s
vývojářskými nástroji mám. Co je přesně potřeba?

ÄŤt 22. 12. 2022 v 5:21 odesĂ­latel Pavel Stehule
<pavel....@gmail.com> napsal:
> --
> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „PostgreSQL-cz“ ve Skupinách Google.
> Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
> Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/CAFj8pRDDLV9JyqRm9FNUceRDwaL9Gb09Dp09jD7KCAt%3D2PXomw%40mail.gmail.com.

Pavel Stehule

unread,
Dec 22, 2022, 12:21:30 PM12/22/22
to postgr...@googlegroups.com


čt 22. 12. 2022 v 17:16 odesílatel Josef Šimánek <josef....@gmail.com> napsal:
Asi toho budu brzo litovat, ale přiznávám že tu jeden Windows s
vývojářskými nástroji mám. Co je přesně potřeba?

prelozit pspg a pdcurses pro konzoli, tak aby se dalo spustit z psql ve win, pokud mozno co nej nativnejsim zpusobem - bez dalsich posix vrstev a emulaci - stejne jako bezi nativne ve win psql nebo Postgres.

postup

0. naistalovat a rozbehnout pdcursesmod https://github.com/Bill-Gray/PDCursesMod, a trochu se zorientovat v jejich zdrojacich. Bohuzel, ten projekt je trochu chaos.
Mozna by se ti mohlo hodit https://github.com/okbob/ncurses-st-menu - jako referencni projekt - jsou tam dema, ktera jsou vyrazne jednodussi nez pspg, a teoreticky by mela behat vsude.

1. upravit pspg tak aby slo prelozit - tj, vytvorit projekt, a nejake funkce, ktere nejsou v msvc nahradit alternativou
2. bez uprav pdcurses by melo jit spustit pspg zpusobem `pspg -f tests/pg_class.txt`
3. hacknout pdcurses obdobnym zpusobem jako jsem to udelal ja pro platformu VT https://github.com/Bill-Gray/PDCursesMod/issues/256#issuecomment-1361890305 . Princip ale bude asi trochu jiny, bo win console WINAPI nema tty
4. pak uz by melo jit spustit pspg  - `cat tests/pg_class.txt | pspg`
5. a to by melo byt cele, pak uz by melo byt pspg spustitelne i z psql ve win console

6. uploudnout nekam binarky, zverejnit odkaz a potom se koupat v nehynouci slave :), a mne poslat pull request, co se muselo zmenit v pspg





 

Josef Šimánek

unread,
Dec 23, 2022, 7:16:55 PM12/23/22
to postgr...@googlegroups.com
ÄŤt 22. 12. 2022 v 18:21 odesĂ­latel Pavel Stehule
<pavel....@gmail.com> napsal:
>
>
>
> čt 22. 12. 2022 v 17:16 odesílatel Josef Šimánek <josef....@gmail.com> napsal:
>>
>> Asi toho budu brzo litovat, ale přiznávám že tu jeden Windows s
>> vývojářskými nástroji mám. Co je přesně potřeba?
>
>
> prelozit pspg a pdcurses pro konzoli, tak aby se dalo spustit z psql ve win, pokud mozno co nej nativnejsim zpusobem - bez dalsich posix vrstev a emulaci - stejne jako bezi nativne ve win psql nebo Postgres.
>
> postup
>
> 0. naistalovat a rozbehnout pdcursesmod https://github.com/Bill-Gray/PDCursesMod, a trochu se zorientovat v jejich zdrojacich. Bohuzel, ten projekt je trochu chaos.
> Mozna by se ti mohlo hodit https://github.com/okbob/ncurses-st-menu - jako referencni projekt - jsou tam dema, ktera jsou vyrazne jednodussi nez pspg, a teoreticky by mela behat vsude.
>
> 1. upravit pspg tak aby slo prelozit - tj, vytvorit projekt, a nejake funkce, ktere nejsou v msvc nahradit alternativou

PDCursesMod jsem přeložil (mám tu jak dll i lib pro dynamický i
statický linkování). Ale pspg si momentálně s Windows moc nerozumí,
protoĹľe celej ten build process je dost Unixovej (nepustĂ­m ani ten
./configure). Nešlo by to přepsat do CMake?

> 2. bez uprav pdcurses by melo jit spustit pspg zpusobem `pspg -f tests/pg_class.txt`
> 3. hacknout pdcurses obdobnym zpusobem jako jsem to udelal ja pro platformu VT https://github.com/Bill-Gray/PDCursesMod/issues/256#issuecomment-1361890305 . Princip ale bude asi trochu jiny, bo win console WINAPI nema tty
> 4. pak uz by melo jit spustit pspg - `cat tests/pg_class.txt | pspg`
> 5. a to by melo byt cele, pak uz by melo byt pspg spustitelne i z psql ve win console
>
> 6. uploudnout nekam binarky, zverejnit odkaz a potom se koupat v nehynouci slave :), a mne poslat pull request, co se muselo zmenit v pspg
>
>
>
>
>
>
>>
>>
>> ÄŤt 22. 12. 2022 v 5:21 odesĂ­latel Pavel Stehule
>> <pavel....@gmail.com> napsal:
>> >
>> > Ahoj
>> >
>> > upravil jsem pspg (https://github.com/okbob/pspg), tak aby jelo nad pdcurses https://github.com/Bill-Gray/PDCursesMod . pdcurses jeden ze starsich projektu implementujicich curses API (https://www.root.cz/clanky/psani-aplikaci-pro-terminal-jak-funguje-knihovna-ncurses/ ), a pokud se pouziva dnes, tak pro multiplatformni aplikace. ncurses v Unixu jsou o necem jinem, ale i v pdcurses bezi pspg hezky.
>> >
>> > Narazil jsem jeste na par chyb v pdcurses, nicmene az bude jedna chyba opravena https://github.com/Bill-Gray/PDCursesMod/issues/256 , tak by nemel byt problem s prelozenim a provozem pspg na platformach, ktere podporuje pdcurses. Pro Linux jsem napsal kratky patch do pdcurses, pro windows bude potreba ten patch napsat.
>> >
>> > Uz roky nedelam ve windows, takze mam koprivku jen kdyz mam do windows nabootovat, takze tu finalni portaci bych rad prenechal nekomu jinemu, kdo se citi v ms visual studiu pohodlne. Najde se dobrovolnik? Je to dobry testik jak psat multiplatformni terminalove aplikace. Aktualne pspg bezi prakticky na vsech jeste zijicich Unixech, kde je k dispozici knihovna ncurses.
>> >
>> > Pavel
>> >
>> >
>> > --
>> > Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „PostgreSQL-cz“ ve Skupinách Google.
>> > Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
>> > Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/CAFj8pRDDLV9JyqRm9FNUceRDwaL9Gb09Dp09jD7KCAt%3D2PXomw%40mail.gmail.com.
>>
>> --
>> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny PostgreSQL-cz ve Skupinách Google.
>> Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
>> Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/CAFp7QwptgBhniu%3D0%2B%2BRLdgX%2BspbGX_CJPr9Jo%3DNB9Fo8ZtZjOQ%40mail.gmail.com.
>
> --
> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „PostgreSQL-cz“ ve Skupinách Google.
> Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
> Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/CAFj8pRBZbpiU1HFG1HBviCgbEJfUEipOszFg2WS63TW9WQep1g%40mail.gmail.com.

Pavel Stehule

unread,
Dec 23, 2022, 11:18:52 PM12/23/22
to postgr...@googlegroups.com


so 24. 12. 2022 v 1:16 odesílatel Josef Šimánek <josef....@gmail.com> napsal:
ÄŤt 22. 12. 2022 v 18:21 odesĂ­latel Pavel Stehule
<pavel....@gmail.com> napsal:
>
>
>
> čt 22. 12. 2022 v 17:16 odesílatel Josef Šimánek <josef....@gmail.com> napsal:
>>
>> Asi toho budu brzo litovat, ale přiznávám že tu jeden Windows s
>> vývojářskými nástroji mám. Co je přesně potřeba?
>
>
> prelozit pspg a pdcurses pro konzoli, tak aby se dalo spustit z psql ve win, pokud mozno co nej nativnejsim zpusobem - bez dalsich posix vrstev a emulaci - stejne jako bezi nativne ve win psql nebo Postgres.
>
> postup
>
> 0. naistalovat a rozbehnout pdcursesmod https://github.com/Bill-Gray/PDCursesMod, a trochu se zorientovat v jejich zdrojacich. Bohuzel, ten projekt je trochu chaos.
> Mozna by se ti mohlo hodit https://github.com/okbob/ncurses-st-menu - jako referencni projekt - jsou tam dema, ktera jsou vyrazne jednodussi nez pspg, a teoreticky by mela behat vsude.
>
> 1. upravit pspg tak aby slo prelozit - tj, vytvorit projekt, a nejake funkce, ktere nejsou v msvc nahradit alternativou

PDCursesMod jsem přeložil (mám tu jak dll i lib pro dynamický i
statický linkování). Ale pspg si momentálně s Windows moc nerozumí,
protoĹľe celej ten build process je dost Unixovej (nepustĂ­m ani ten
./configure). Nešlo by to přepsat do CMake?

moc se mi do prepisu do CMake nechce - jednak tomu vubec nerozumim, druhak mam build odladeny, odzkouseny na vsech unixech.

Neslo by jen naimportovat soubory do projektu rucne? Je tam neco kolem 30 souboru, muzes vyhodit veci kolem integrace postgresu a readline

pro pdcurses mam nasledujici parametry

    PANEL_LIBS=-lpdcurses CURSES_LIBS=-lpdcurses\
      CURSES_CFLAGS="-I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib"\
      ./configure -libdir=/usr/local/lib

config.make davam do prilohy - jde z nej vycist nastaveni projektu v minimalisticke verzi

gcc  -c  src/pretty-csv.c -o csv.o  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  -c  src/print.c -o print.o  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  -c src/commands.c -o commands.o  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  -c src/unicode.c -o unicode.o  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  -c src/themes.c -o themes.o  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  -c src/pspg.c -o pspg.o  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  -c src/config.c -o config.o  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  -c src/sort.c -o sort.o  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  -c src/pgclient.c -o pgclient.o  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  -c  src/args.c -o args.o  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  -c src/infra.c -o infra.o  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  -c src/table.c -o table.o  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  -c src/string.c -o string.o  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  -c src/export.c -o export.o  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  -c src/linebuffer.c -o linebuffer.o  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  src/bscommands.c -c  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  src/readline.c -c  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  src/inputs.c -c  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  src/theme_loader.c -c  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  src/st_menu.c -c  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  src/st_menu_styles.c -c  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  -c src/menu.c -o menu.o  -g -O2 -DCOMPILE_MENU   -I/usr/local/include/pdcurses -DPDC_WIDE=Y -DPDC_FORCE_UTF8=Y -L/usr/local/lib -DHAVE_CURSES=1 -DHAVE_CURSES_H=1 -DHAVE_CURSES_ENHANCED=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_COLOR=1 -DHAVE_CURSES_OBSOLETE=1 -DHAVE_PANEL=1 -DHAVE_PANEL_H=1 -Wall -MD
gcc  csv.o print.o commands.o unicode.o themes.o pspg.o config.o sort.o pgclient.o args.o infra.o table.o string.o export.o linebuffer.o bscommands.o readline.o inputs.o theme_loader.o st_menu.o st_menu_styles.o menu.o -o pspg  -lm -lpdcurses

Pavel




config.make

Josef Šimánek

unread,
Feb 7, 2023, 7:21:28 PM2/7/23
to postgr...@googlegroups.com
Tak jsem se na to po naší debatě na P2D2 podíval Pavle a posunul jsem se sem.

1. umim to zkompilovat s msys2 téměř bez úpravy kódu pod Windows, to
ale potřebuje celý prostředí pro běh - nedá se distribuovat jako
jednoduchý exe (příloha 1)
2. s drastickou úpravou (zakomentování neimplementovaných části ve
Windows) to lze zkompilovat s MinGW-w64
- ve windows konzoli to padne, páč to neotevře TTY (/dev/tty),
protoĹľe tam neexistuje
- v tom MinGW prostředí to pustit jde (příloha 2)

Köd pro ten MinGW-w64 je na
https://github.com/simi/pspg/commit/510258638c54290ec277c06d21086db9025a3bc7.
Teď už zbývá jen zjistit co se tam děje (většina jsou
iocto/tty/signály - prostě UNIX věcičky) a přidělat alternativní
implementaci pro Windows. Ten MinGW-w64 build uĹľ jde pak distribuovat
bez instalace celýho prostředí (jako ten msys).

Jak se podaří pustit ten MinGW-w64 build pustit normálně ve windows
terminálu, pak už je jen krůček k tomu to zkompilovat přímo ve Visual
Studiu. Tam pak očekávám jen otravný opravy v rozdílech ve standardní
C knihovnÄ›.

so 24. 12. 2022 v 5:18 odesĂ­latel Pavel Stehule
> Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/CAFj8pRBZUFgL_A-%3DHk3sC9vrUgMO5uPX0wvKs674o%3DxT%3DipLDQ%40mail.gmail.com.
2023-02-07_23-50.png
2023-02-08_01-08.png

Pavel Stehule

unread,
Feb 8, 2023, 12:54:34 AM2/8/23
to postgr...@googlegroups.com


st 8. 2. 2023 v 1:21 odesílatel Josef Šimánek <josef....@gmail.com> napsal:
Tak jsem se na to po naší debatě na P2D2 podíval Pavle a posunul jsem se sem.

1. umim to zkompilovat s msys2 téměř bez úpravy kódu pod Windows, to
ale potřebuje celý prostředí pro běh - nedá se distribuovat jako
jednoduchý exe (příloha 1)
2. s drastickou úpravou (zakomentování neimplementovaných části ve
Windows) to lze zkompilovat s MinGW-w64
  - ve windows konzoli to padne, páč to neotevře TTY (/dev/tty),
protoĹľe tam neexistuje

tahle cast se bude muset nejak prepsat - coz by ale melo jit, jelikoz ve win se da cist klavesnice primo - mam pocit, ze i pdcurses to tak dela. 
resp. dost mozna tam bude fungovat pspg i bez redirectu curses na /dev/tty.

pager cte vstup z stdin. V defaultu curses ctou vstup take ze stdin (na Unixu). Coz samozrejme nemuze fungovat - nicmene jde curses presmerovat na /dev/tty cimz se to vyresi (viz volani funkce newterm). Ve win ( a) mam v tom osobne chaos bo to nepouzivam, b) je v tom chaos bo je tam vic konfiguraci, c) v 11 je snad tty a pseudo tty ) snad pdcurses ctou primo obsluhu klavesnice a nepouzivaji stdin, tudiz cela ta maskarada je zbytecna.

Kod pdcurses je taky dobra chutovka. Je to takova fakeova knihovna (dost API tam je jen interface a vzdy vraci chybu). Na druhou stranu tim, ze podpora ruznych terminalu je tam defacto zkompilovaná (neni resena jako v ncurses) dynamicky, tak je vyrazne rychlejsi nez ncurses (ncurses generuje ruzne vystupni sekvence podle nastaveni TERM), pdcurses nastaveni TERMu ignoruje a generuje ansi sekvence bez dalsi optimalizace (na neunix platformach ani nejako TERM promenna neexistuje).


 
Reply all
Reply to author
Forward
0 new messages