Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#201 Le 09/09/2023, à 08:10

Pylades

Re : /* Topic des codeurs [9] */

grim7reaper a écrit :
Elzen a écrit :

(j'envoie un caractère \5 pour dire au programme de vérifier si son fichier est toujours là ou pas, dites si vous voyez plus approprié comme message).

EOT: \4

Il y a encore des gens qui utilisent les caractères de contrôle ASCII dans leur sens originel? yikes

grim7reaper a écrit :

Le Rust c'est bon, mangez en!

J’ai fini par un peu mettre mon nej dedans.
On dirait vaguement du C++, mais en bien fait.
En tous cas, ça a tout pour devenir un langage de référence pour les décénies à venir.


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#202 Le 16/09/2023, à 21:30

grim7reaper

Re : /* Topic des codeurs [9] */

Pylades a écrit :

On dirait vaguement du C++, mais en bien fait.

Y'a un peu de ça ouais.
Perso j'y retrouvais les bon côtés du C et du Haskell mais sans les mauvais (bon le langage a aussi ses défauts on va pas se mentir)

Pylades a écrit :

En tous cas, ça a tout pour devenir un langage de référence pour les décénies à venir.

C'est pas trop mal parti, pas mal de gros acteurs sont en train de s'y mettre à divers degré donc c'est bon signe pour la pérennité.

Hors ligne

#203 Le 15/01/2024, à 00:50

Pylades

Re : /* Topic des codeurs [9] */

diff --git a/Makefile.in b/Makefile.in
index 0b4df73a..36a63592 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -160,7 +160,7 @@ CCFLAGS = $(ADDON_CFLAGS) $(BASE_CCFLAGS) ${PROFILE_FLAGS} $(CPPFLAGS) $(CFLAGS)
 CCFLAGS_FOR_BUILD = $(BASE_CCFLAGS) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD)
 
 BASE_LDFLAGS = @LDFLAGS@ $(LOCAL_LDFLAGS) $(CFLAGS)
-LDFLAGS = ${ADDON_LDFLAGS} ${BASE_LDFLAGS} ${PROFILE_FLAGS} ${STATIC_LD}
+LDFLAGS = ${ADDON_LDFLAGS} ${BASE_LDFLAGS} ${PROFILE_FLAGS} ${STATIC_LD} -lidn2
 LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ $(LOCAL_LDFLAGS) $(CFLAGS_FOR_BUILD)
 
 ASAN_XCFLAGS = -fsanitize=address -fno-omit-frame-pointer
diff --git a/shell.c b/shell.c
index ebd89651..830dda91 100644
--- a/shell.c
+++ b/shell.c
@@ -37,6 +37,7 @@
 #include <stdio.h>
 #include <signal.h>
 #include <errno.h>
+#include <idn2.h>
 #include "filecntl.h"
 #if defined (HAVE_PWD_H)
 #  include <pwd.h>
@@ -1928,6 +1929,7 @@ static void
 shell_initialize ()
 {
   char hostname[256];
+  char *hostname_idn;
   int should_be_restricted;
 
   /* Line buffer output for stderr and stdout. */
@@ -1955,7 +1957,15 @@ shell_initialize ()
       if (gethostname (hostname, 255) < 0)
 	current_host_name = "??host??";
       else
-	current_host_name = savestring (hostname);
+        {
+          if (idn2_to_unicode_8z8z (hostname, &hostname_idn, 0) == IDN2_OK)
+            {
+              current_host_name = savestring (hostname_idn);
+              free (hostname_idn);
+            }
+          else
+            current_host_name = "??host??";
+        }
     }
 
   /* Initialize the stuff in current_user that comes from the password

P’tain, les autohells c’est l’enfer ( tongue ), j’y suis allé à la Rache pour éditer le Makefile.
Mais c’est pas grave, j’ai mon bash qui me traduit mon hostname internationalisé, et c’était ça l’objectif.
Et oui, le patch pourrait être plus propre. Mais j’ai pas encore vu comment on coupe les longues lignes dans le style de bash.


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#204 Le 15/01/2024, à 00:57

Pylades

Re : /* Topic des codeurs [9] */

Voilà, c’est plus propre comme ça:

diff --git a/Makefile.in b/Makefile.in
index 0b4df73a..36a63592 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -160,7 +160,7 @@ CCFLAGS = $(ADDON_CFLAGS) $(BASE_CCFLAGS) ${PROFILE_FLAGS} $(CPPFLAGS) $(CFLAGS)
 CCFLAGS_FOR_BUILD = $(BASE_CCFLAGS) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD)
 
 BASE_LDFLAGS = @LDFLAGS@ $(LOCAL_LDFLAGS) $(CFLAGS)
-LDFLAGS = ${ADDON_LDFLAGS} ${BASE_LDFLAGS} ${PROFILE_FLAGS} ${STATIC_LD}
+LDFLAGS = ${ADDON_LDFLAGS} ${BASE_LDFLAGS} ${PROFILE_FLAGS} ${STATIC_LD} -lidn2
 LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ $(LOCAL_LDFLAGS) $(CFLAGS_FOR_BUILD)
 
 ASAN_XCFLAGS = -fsanitize=address -fno-omit-frame-pointer
diff --git a/shell.c b/shell.c
index ebd89651..b6857c54 100644
--- a/shell.c
+++ b/shell.c
@@ -37,6 +37,7 @@
 #include <stdio.h>
 #include <signal.h>
 #include <errno.h>
+#include <idn2.h>
 #include "filecntl.h"
 #if defined (HAVE_PWD_H)
 #  include <pwd.h>
@@ -1928,6 +1929,7 @@ static void
 shell_initialize ()
 {
   char hostname[256];
+  char *hostname_idn;
   int should_be_restricted;
 
   /* Line buffer output for stderr and stdout. */
@@ -1952,10 +1954,14 @@ shell_initialize ()
   if (current_host_name == 0)
     {
       /* Initialize current_host_name. */
-      if (gethostname (hostname, 255) < 0)
-	current_host_name = "??host??";
+      if (gethostname (hostname, 255) == 0 &&
+          idn2_to_unicode_8z8z (hostname, &hostname_idn, 0) == IDN2_OK)
+        {
+          current_host_name = savestring (hostname_idn);
+          free (hostname_idn);
+        }
       else
-	current_host_name = savestring (hostname);
+	current_host_name = "??host??";
     }
 
   /* Initialize the stuff in current_user that comes from the password

“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#205 Le 15/01/2024, à 15:14

Pylades

Re : /* Topic des codeurs [9] */

Bon, plutôt que patcher OpenSSH dans la foulée, on fera comme ça…

function ssh { command ssh $(idn2 --no-tr46 -- "$@"); }

“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#206 Le 31/01/2024, à 22:35

Pylades

Re : /* Topic des codeurs [9] */

Yo dawg, I heard you like diffs, so I did a diff on your diffs…

diff <(git diff) prompt.patch

Et le pire c’est que oui, j’ai vraiment entré cette commande.


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne