Question

Je suis en cours de conversion d'un très vieux ancienne application 25+ ans.

Il envoie une séquence d'échappement pour rendre l'écran large 132 caractères ...
Cependant, il ne fonctionnait pas et je mis le equilivment XTERM qui semble fonctionner dans la plupart des cas ..

Il est

"\x1B[8;50;132t"

Bien que l'écran redimensionne avec succès il y a un problème Voici le code que les utilisations du programme COBOL pour exécuter la commande

   pg -f FILETOSHOW

à l'aide CALL "SYSTEM" USING BY CONTENT DS-REC
où se trouve la commande ci-dessus DS-REC ....

Le problème est que même si l'écran des données redimensionne sont imprimées avec les réglages précédents ... Appel à nouveau le programme permet de résoudre le problème et imprime correctement ...
Doesnt quelqu'un sait si je dois envoyer un autre code d'échappement aussi?

Était-ce utile?

La solution

Ne comptez pas sur ces codes d'échappement. xterm ne se fixe à une plus grande taille que l'écran. Donc, étant donné que l'utilisateur a une police suffisamment grande et / ou un écran de petite assez, il n'obtenir son dimensionnement automatique, beaucoup moins automatiquement la borne 132x50 fera. (Par ex Lucida console à 15pt sur 1024x600 moins une barre des tâches et déco WM me donne la place pour 85x28 cellules.)

Si votre programme nécessite une telle taille vt maladroite de 132x50, en font la demande de l'utilisateur comme une condition sine qua non. Ou tout simplement rendre votre programme réellement exécuté sur une taille variable.

Autres conseils

La séquence d'échappement est documentée dans XTerm séquences de contrôle, dans le « Fonctions utilisant CSI, commandé par le caractère final (s) " section, sous cette ligne:

CSI Ps ; Ps ; Ps t

Il est l'un des contrôles adaptés de dtterm , et en particulier

  

Ps = 8 ; hauteur ; largeur

     

Redimensionner la zone de texte donnée    hauteur et largeur en caractères. réutiliser les paramètres Omission   hauteur ou la largeur actuelle. Zéro paramètres utilisent les années d'affichage   hauteur ou largeur.

Il a été mis en œuvre xterm en 1996 ( correctif # 18 ) .

Parce que certains utilisateurs voient des opérations de ce genre comme un problème de sécurité (y compris le redimensionnement de la police), une windowOps des ressources a été ajoutée en 2003 ( Patch # 174 ) afin de permettre emballeurs de changer le default comportement. Cette ressource peut être modifiée lors de l'exécution en utilisant une entrée de menu, ainsi que directement dans les ensemble des ressources X d'un utilisateur.

En bref, la fonction est présente dans xterm, mais peut nécessiter des changements de configuration (simples) pour l'utiliser.

La séquence de contrôle pour redimensionner la fenêtre xterm est une demande au gestionnaire de fenêtres. Le gestionnaire de fenêtres peut ne pas honorer la demande, par exemple, pour carrelage gestionnaires de fenêtres il échouera toujours. En outre, parce que xterm ne change pas la taille de la police dynamique, il peut échouer si la taille de la police est trop grande pour permettre 132 colonnes à l'écran. La police fixed fonctionne probablement pour les grands écrans modernes (mon moniteur peut afficher 1280x1024 60x210 avec un peu de jeu), mais les grandes polices ne peuvent pas.

Quand il ne parvient pas à redimensionner aussi grand que demandé, il est le gestionnaire de fenêtres qui gère la demande:. Xterm a oublié au moment où la demande est terminée, et acceptera tout ce que le gestionnaire de fenêtres ne

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top