# Swedish translation for Lynx # Copyright � 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. # Peter Karlsson <peter@softwolves.pp.se>, 2000-2004. # msgid "" msgstr "" "Project-Id-Version: lynx 2.8.6-dev8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-12-18 16:51-0500\n" "PO-Revision-Date: 2004-11-27 12:30+0100\n" "Last-Translator: Peter Karlsson <peter@softwolves.pp.se>\n" "Language-Team: Swedish <sv@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #. ****************************************************************** #. * The following definitions are for status line prompts, messages, or #. * warnings issued by Lynx during program execution. You can modify #. * them to make them more appropriate for your site. We recommend that #. * you extend these definitions to other languages using the gettext #. * library. There are also scattered uses of 'gettext()' throughout the #. * Lynx source, covering all but those messages which (a) are used for #. * debugging (CTRACE) or (b) are constants used in interaction with #. * other programs. #. * #. * Links to collections of alternate definitions, developed by the Lynx #. * User Community, are maintained in Lynx links: #. * #. * http://www.subir.com/lynx.html #. * #. * See ABOUT-NLS and po/readme for details and location of contributed #. * translations. When no translation is available, the English default is #. * used. #. #: LYMessages.c:30 #, c-format msgid "Alert!: %s" msgstr "Varning!: %s" #: LYMessages.c:31 msgid "Welcome" msgstr "V�lkommen" #: LYMessages.c:32 msgid "Are you sure you want to quit?" msgstr "�r du s�ker att du vill avsluta?" #: LYMessages.c:34 msgid "Really exit from Lynx?" msgstr "Verkligen avsluta Lynx?" #: LYMessages.c:36 msgid "Connection interrupted." msgstr "Anslutningen avbr�ts." #: LYMessages.c:37 msgid "Data transfer interrupted." msgstr "Data�verf�ringen avbr�ts." #: LYMessages.c:38 msgid "Cancelled!!!" msgstr "Avbruten!!!" #: LYMessages.c:39 msgid "Cancelling!" msgstr "Avbryter!" #: LYMessages.c:40 msgid "Excellent!!!" msgstr "Underbart!!!" #: LYMessages.c:41 msgid "OK" msgstr "OK" #: LYMessages.c:42 msgid "Done!" msgstr "Klar!" #: LYMessages.c:43 msgid "Bad request!" msgstr "Felaktig f�rfr�gan!" #: LYMessages.c:44 msgid "previous" msgstr "f�reg�ende" #: LYMessages.c:45 msgid "next screen" msgstr "n�sta sk�rm" #: LYMessages.c:46 msgid "HELP!" msgstr "HJ�LP!" #: LYMessages.c:47 msgid ", help on " msgstr ", hj�lp om " #. #define HELP #: LYMessages.c:49 msgid "Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back." msgstr "Kommandon: Piltangenter flyttar, \"?\" ger hj�lp, \"q\" avslutar, \"<-\" �terg�r." #. #define MOREHELP #: LYMessages.c:51 msgid "-- press space for more, use arrow keys to move, '?' for help, 'q' to quit." msgstr "-- tryck blanksteg f�r mer, piltangenter flyttar, \"?\" ger hj�lp, \"q\" avslutar." #: LYMessages.c:52 msgid "-- press space for next page --" msgstr "-- tryck blanksteg f�r n�sta sida --" #: LYMessages.c:53 msgid "URL too long" msgstr "Adressen f�r l�ng" #. Inactive input fields, messages used with -tna option - kw #. #define FORM_LINK_TEXT_MESSAGE_INA #: LYMessages.c:59 msgid "(Text entry field) Inactive. Press <return> to activate." msgstr "(Textinmatningsf�lt) Inaktivt. Tryck <Enter> f�r att aktivera." #. #define FORM_LINK_TEXTAREA_MESSAGE_INA #: LYMessages.c:61 msgid "(Textarea) Inactive. Press <return> to activate." msgstr "(Textf�lt) Inaktivt. Tryck <Enter> f�r att aktivera." #. #define FORM_LINK_TEXTAREA_MESSAGE_INA_E #: LYMessages.c:63 #, c-format msgid "(Textarea) Inactive. Press <return> to activate (%s for editor)." msgstr "(Textf�lt) Inaktivt. Tryck <Enter> f�r att aktivera (%s f�r redigeringsprogram)." #. #define FORM_LINK_TEXT_SUBMIT_MESSAGE_INA #: LYMessages.c:65 msgid "(Form field) Inactive. Use <return> to edit." msgstr "(Formul�rf�lt) Inaktivt. Tryck <Enter> f�r att redigera." #. #define FORM_TEXT_SUBMIT_MESSAGE_INA_X #: LYMessages.c:67 #, c-format msgid "(Form field) Inactive. Use <return> to edit (%s to submit with no cache)." msgstr "(Formul�rf�lt) Inaktivt. Tryck <Enter> f�r att redigera (%s skickar utan cache)." #. #define FORM_TEXT_RESUBMIT_MESSAGE_INA #: LYMessages.c:69 msgid "(Form field) Inactive. Press <return> to edit, press <return> twice to submit." msgstr "(Formul�rf�lt) Inaktivt. Redigera med <Enter>, tv� g�nger f�r att skicka." #. #define FORM_TEXT_SUBMIT_MAILTO_MSG_INA #: LYMessages.c:71 msgid "(mailto form field) Inactive. Press <return> to change." msgstr "(e-postformul�rf�lt) Inaktivt. Tryck <Enter> f�r att �ndra." #. #define FORM_LINK_PASSWORD_MESSAGE_INA #: LYMessages.c:73 msgid "(Password entry field) Inactive. Press <return> to activate." msgstr "(L�senordsinmatningsf�lt) Inaktivt. Tryck <Enter> f�r att aktivera." #. #define FORM_LINK_FILE_UNM_MSG #: LYMessages.c:76 msgid "UNMODIFIABLE file entry field. Use UP or DOWN arrows or tab to move off." msgstr "SKRIVSKYDDAT filinmatningsf�lt. Anv�nd UPP-/NED-pil eller tabb f�r att l�mna." #. #define FORM_LINK_FILE_MESSAGE #: LYMessages.c:78 msgid "(File entry field) Enter filename. Use UP or DOWN arrows or tab to move off." msgstr "(Filinmatningsf�lt) Ange filnamn. Anv�nd UPP-/NED-pil eller tabb f�r att l�mna." #. #define FORM_LINK_TEXT_MESSAGE #: LYMessages.c:80 msgid "(Text entry field) Enter text. Use UP or DOWN arrows or tab to move off." msgstr "(Textinmatningsf�lt) Ange text. Anv�nd UPP-/NED-pil eller tabb f�r att l�mna." #. #define FORM_LINK_TEXTAREA_MESSAGE #: LYMessages.c:82 msgid "(Textarea) Enter text. Use UP/DOWN arrows or TAB to move off." msgstr "(Textf�lt) Ange text. Anv�nd UPP-/NED-pil eller tabb f�r att l�mna." #. #define FORM_LINK_TEXTAREA_MESSAGE_E #: LYMessages.c:84 #, c-format msgid "(Textarea) Enter text. Use UP/DOWN arrows or TAB to move off (%s for editor)." msgstr "(Textf�lt) Ange text. UPP-/NED-pil eller tabb l�mnar (%s redigerar med program)." #. #define FORM_LINK_TEXT_UNM_MSG #: LYMessages.c:86 msgid "UNMODIFIABLE form text field. Use UP or DOWN arrows or tab to move off." msgstr "SKRIVSKYDDAT formul�rtextf�lt. Anv�nd UPP-/NED-pil eller tabb f�r att l�mna." #. #define FORM_LINK_TEXT_SUBMIT_MESSAGE #: LYMessages.c:88 msgid "(Form field) Enter text. Use <return> to submit." msgstr "(Formul�rf�lt) Ange text. Tryck <Enter> f�r att skicka." #. #define FORM_LINK_TEXT_SUBMIT_MESSAGE_X #: LYMessages.c:90 #, c-format msgid "(Form field) Enter text. Use <return> to submit (%s for no cache)." msgstr "(Formul�rf�lt) Ange text. Tryck <Enter> f�r att skicka (%s f�rbig�r cache)." #. #define FORM_LINK_TEXT_RESUBMIT_MESSAGE #: LYMessages.c:92 msgid "(Form field) Enter text. Use <return> to submit, arrows or tab to move off." msgstr "(Formul�rf�lt) Ange text. <Enter> skickar, pilar eller tabb l�mnar." #. #define FORM_LINK_TEXT_SUBMIT_UNM_MSG #: LYMessages.c:94 msgid "UNMODIFIABLE form field. Use UP or DOWN arrows or tab to move off." msgstr "SKRIVSKYDDAT formul�rf�lt. Anv�nd UPP-/NED-pil eller tabb f�r att l�mna." #. #define FORM_LINK_TEXT_SUBMIT_MAILTO_MSG #: LYMessages.c:96 msgid "(mailto form field) Enter text. Use <return> to submit, arrows to move off." msgstr "(e-postformul�rf�lt) Ange text. <Enter> skickar, pilar l�mnar." #. #define FORM_LINK_TEXT_SUBMIT_MAILTO_DIS_MSG #: LYMessages.c:98 msgid "(mailto form field) Mail is disallowed so you cannot submit." msgstr "(e-postformul�rf�lt) E-post till�ts ej, s� du kan inte skicka." #. #define FORM_LINK_PASSWORD_MESSAGE #: LYMessages.c:100 msgid "(Password entry field) Enter text. Use UP or DOWN arrows or tab to move off." msgstr "(L�senordsf�lt) Ange text. Anv�nd UPP-/NED-pil eller tabb f�r att l�mna." #. #define FORM_LINK_PASSWORD_UNM_MSG #: LYMessages.c:102 msgid "UNMODIFIABLE form password. Use UP or DOWN arrows or tab to move off." msgstr "SKRIVSKYDDAT formul�rl�senord. Anv�nd UPP-/NED-pil eller tabb f�r att l�mna." #. #define FORM_LINK_CHECKBOX_MESSAGE #: LYMessages.c:104 msgid "(Checkbox Field) Use right-arrow or <return> to toggle." msgstr "(Kryssruta) Anv�nd h�gerpil eller <Enter> f�r att st�lla om." #. #define FORM_LINK_CHECKBOX_UNM_MSG #: LYMessages.c:106 msgid "UNMODIFIABLE form checkbox. Use UP or DOWN arrows or tab to move off." msgstr "SKRIVSKYDDAD kryssruta. Anv�nd UPP-/NED-pil eller tabb f�r att l�mna." #. #define FORM_LINK_RADIO_MESSAGE #: LYMessages.c:108 msgid "(Radio Button) Use right-arrow or <return> to toggle." msgstr "(Radioknapp) Anv�nd h�gerpil eller <Enter> f�r att st�lla om." #. #define FORM_LINK_RADIO_UNM_MSG #: LYMessages.c:110 msgid "UNMODIFIABLE form radio button. Use UP or DOWN arrows or tab to move off." msgstr "SKRIVSKYDDAD radioknapp. Anv�nd UPP-/NED-pil eller tabb f�r att l�mna." #. #define FORM_LINK_SUBMIT_PREFIX #: LYMessages.c:112 msgid "Submit ('x' for no cache) to " msgstr "Skicka (\"x\" f�rbig�r cache) till " #. #define FORM_LINK_RESUBMIT_PREFIX #: LYMessages.c:114 msgid "Submit to " msgstr "Skicka till " #. #define FORM_LINK_SUBMIT_MESSAGE #: LYMessages.c:116 msgid "(Form submit button) Use right-arrow or <return> to submit ('x' for no cache)." msgstr "(S�ndknapp) Anv�nd h�gerpil eller <Enter> f�r att skicka (\"x\" f�rbig�r cache)." #. #define FORM_LINK_RESUBMIT_MESSAGE #: LYMessages.c:118 msgid "(Form submit button) Use right-arrow or <return> to submit." msgstr "(S�ndknapp) Anv�nd h�gerpil eller <Enter> f�r att skicka." #. #define FORM_LINK_SUBMIT_DIS_MSG #: LYMessages.c:120 msgid "DISABLED form submit button. Use UP or DOWN arrows or tab to move off." msgstr "INAKTIV s�ndknapp. Anv�nd UPP-/NED-pil eller tabb f�r att l�mna." #. #define FORM_LINK_SUBMIT_MAILTO_PREFIX #: LYMessages.c:122 msgid "Submit mailto form to " msgstr "Skicka e-postformul�r till " #. #define FORM_LINK_SUBMIT_MAILTO_MSG #: LYMessages.c:124 msgid "(mailto form submit button) Use right-arrow or <return> to submit." msgstr "(s�ndknapp i e-postformul�r) Anv�nd h�gerpil eller <Enter> f�r att skicka." #. #define FORM_LINK_SUBMIT_MAILTO_DIS_MSG #: LYMessages.c:126 msgid "(mailto form submit button) Mail is disallowed so you cannot submit." msgstr "(s�ndknapp i e-postformul�r) E-post till�ts ej, s� du kan inte skicka." #. #define FORM_LINK_RESET_MESSAGE #: LYMessages.c:128 msgid "(Form reset button) Use right-arrow or <return> to reset form to defaults." msgstr "(Nollst�llningsknapp) Anv�nd h�gerpil eller <Enter> f�r att �terst�lla f�rval." #. #define FORM_LINK_RESET_DIS_MSG #: LYMessages.c:130 msgid "DISABLED form reset button. Use UP or DOWN arrows or tab to move off." msgstr "INAKTIV nollst�llningsknapp. Anv�nd UPP-/NED-pil eller tabb f�r att l�mna." #. #define FORM_LINK_OPTION_LIST_MESSAGE #: LYMessages.c:132 msgid "(Option list) Hit return and use arrow keys and return to select option." msgstr "(Alternativlista) Tryck Enter och anv�nd pilar och Enter f�r att v�lja." #. #define CHOICE_LIST_MESSAGE #: LYMessages.c:134 msgid "(Choice list) Hit return and use arrow keys and return to select option." msgstr "(Vallista) Tryck Enter och anv�nd piltangenter och Enter f�r att v�lja." #. #define FORM_LINK_OPTION_LIST_UNM_MSG #: LYMessages.c:136 msgid "UNMODIFIABLE option list. Use return or arrow keys to review or leave." msgstr "SKRIVSKYDDAD alternativlista. Anv�nd Enter och pilar f�r att visa eller l�mna." #. #define CHOICE_LIST_UNM_MSG #: LYMessages.c:138 msgid "UNMODIFIABLE choice list. Use return or arrow keys to review or leave." msgstr "SKRIVSKYDDAD vallista. Anv�nd Enter och piltangenter f�r att visa eller l�mna." #: LYMessages.c:139 msgid "Submitting form..." msgstr "Skickar formul�r..." #: LYMessages.c:140 msgid "Resetting form..." msgstr "Nollst�ller formul�r..." #. #define RELOADING_FORM #: LYMessages.c:142 msgid "Reloading document. Any form entries will be lost!" msgstr "H�mtar om dokument. Eventuellt formul�rinneh�ll f�rkastas!" #: LYMessages.c:143 #, c-format msgid "Warning: Cannot transcode form data to charset %s!" msgstr "Varning: Kan inte koda formul�rdata i teckenupps�ttningen %s!" #. #define NORMAL_LINK_MESSAGE #: LYMessages.c:146 msgid "(NORMAL LINK) Use right-arrow or <return> to activate." msgstr "(VANLIG L�NK) Anv�nd h�gerpil eller <Enter> f�r att aktivera." #: LYMessages.c:147 msgid "The resource requested is not available at this time." msgstr "Resursen du beg�rt �r inte tillg�nglig just nu." #: LYMessages.c:148 msgid "Enter Lynx keystroke command: " msgstr "Ange Lynxtangentkommando: " #: LYMessages.c:149 msgid "Looking up " msgstr "Sl�r upp " #: LYMessages.c:150 #, c-format msgid "Getting %s" msgstr "H�mtar %s" #: LYMessages.c:151 #, c-format msgid "Skipping %s" msgstr "Hoppas �ver %s" #: LYMessages.c:152 #, c-format msgid "Using %s" msgstr "Anv�nder %s" #: LYMessages.c:153 #, c-format msgid "Illegal URL: %s" msgstr "Felaktig adress: %s" #: LYMessages.c:154 #, c-format msgid "Badly formed address %s" msgstr "Trasig adress %s" #: LYMessages.c:155 #, c-format msgid "URL: %s" msgstr "Adress: %s" #: LYMessages.c:156 msgid "Unable to access WWW file!!!" msgstr "Kan inte komma �t webbfil!!!" #: LYMessages.c:157 #, c-format msgid "This is a searchable index. Use %s to search." msgstr "Detta �r ett s�kbart index. Anv�nd %s f�r att s�ka." #. #define WWW_INDEX_MORE_MESSAGE #: LYMessages.c:159 #, c-format msgid "--More-- This is a searchable index. Use %s to search." msgstr "--Mer-- Detta �r ett s�kbart index. Anv�nd %s f�r att s�ka." #: LYMessages.c:160 msgid "You have entered an invalid link number." msgstr "Du har angett ett felaktigt l�nknummer." #. #define SOURCE_HELP #: LYMessages.c:162 msgid "Currently viewing document source. Press '\\' to return to rendered version." msgstr "Visar dokumentk�llkod. Tryck \"\\\" f�r att �terg� till tolkad version." #. #define NOVICE_LINE_ONE #: LYMessages.c:164 msgid " Arrow keys: Up and Down to move. Right to follow a link; Left to go back. \n" msgstr " Piltangenter: Upp och ned flyttar. H�ger f�ljer l�nk; v�nster �terg�r. \n" #. #define NOVICE_LINE_TWO #: LYMessages.c:166 msgid " H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list \n" msgstr " H=Hj�lp O=Val P=Utskrift G=G� M=Huvudsk�rm Q=Avsluta /=s�k Del=Historik \n" #. #define NOVICE_LINE_TWO_A #: LYMessages.c:168 msgid " O)ther cmds H)elp K)eymap G)oto P)rint M)ain screen o)ptions Q)uit \n" msgstr " O=Fler H=Hj�lp K=Tangenter G=G� P=Utskrift M=Huvudsk�rm O=Val Q=Avsluta \n" #. #define NOVICE_LINE_TWO_B #: LYMessages.c:170 msgid " O)ther cmds B)ack E)dit D)ownload ^R)eload ^W)ipe screen search doc: / \n" msgstr " O=Fler B=Bak�t E=Redigera D=H�mta ^R=H�mta om ^W=Rita om s�k dokument: / \n" #. #define NOVICE_LINE_TWO_C #: LYMessages.c:172 msgid "O)ther cmds C)omment History: <backspace> Bookmarks: V)iew, A)dd, R)emove \n" msgstr "O=Fler C=Kommentera Historik: backsteg Bokm�rken: V=Visa A=Nytt R=Ta bort \n" #. #define FORM_NOVICELINE_ONE #: LYMessages.c:174 msgid " Enter text into the field by typing on the keyboard " msgstr " Ange text i f�ltet genom att skriva p� tangentbordet " #. #define FORM_NOVICELINE_TWO #: LYMessages.c:176 msgid " Ctrl-U to delete all text in field, [Backspace] to delete a character " msgstr " Ctrl-U t�mmer inmatningsf�ltet, [Backsteg] tar bort en bokstav " #. #define FORM_NOVICELINE_TWO_DELBL #: LYMessages.c:178 msgid " Ctrl-U to delete text in field, [Backspace] to delete a character " msgstr " Ctrl-U t�mmer inmatningsf�ltet, [Backsteg] tar bort en bokstav " #. #define FORM_NOVICELINE_TWO_VAR #: LYMessages.c:180 #, c-format msgid " %s to delete all text in field, [Backspace] to delete a character " msgstr " %s t�mmer inmatningsf�ltet, [Backsteg] tar bort en bokstav " #. #define FORM_NOVICELINE_TWO_DELBL_VAR #: LYMessages.c:182 #, c-format msgid " %s to delete text in field, [Backspace] to delete a character " msgstr " %s t�mmer inmatningsf�ltet, [Backsteg] tar bort en bokstav " #. mailto #: LYMessages.c:185 msgid "Malformed mailto form submission! Cancelled!" msgstr "Trasig \"mailto\" i formul�r! Avbryter!" #: LYMessages.c:186 msgid "Warning! Control codes in mail address replaced by ?" msgstr "Varning! Kontrollkoder i e-postadress ersatta med fr�getecken" #: LYMessages.c:187 msgid "Mail disallowed! Cannot submit." msgstr "E-post till�ts ej! Kan inte skicka." #: LYMessages.c:188 msgid "Mailto form submission failed!" msgstr "Misslyckades att skicka e-postformul�r!" #: LYMessages.c:189 msgid "Mailto form submission Cancelled!!!" msgstr "Ins�ndning av e-postformul�r avbruten!!!" #: LYMessages.c:190 msgid "Sending form content..." msgstr "Skickar formul�rdata..." #: LYMessages.c:191 msgid "No email address is present in mailto URL!" msgstr "Ingen e-postadress i \"mailto\"-f�ltet!" #. #define MAILTO_URL_TEMPOPEN_FAILED #: LYMessages.c:193 msgid "Unable to open temporary file for mailto URL!" msgstr "Kan inte �ppna tempor�rfil f�r \"mailto\"-adress!" #. #define INC_ORIG_MSG_PROMPT #: LYMessages.c:195 msgid "Do you wish to include the original message?" msgstr "Vill du inkludera originalmeddelandet?" #. #define INC_PREPARSED_MSG_PROMPT #: LYMessages.c:197 msgid <style>pre { line-height: 125%; } td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #ffffcc } .highlight .c { color: #888888 } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */</style><div class="highlight"><pre><span></span><span class="c1">//: Labels are defined by ending names with a ':'. This layer will compute</span> <span class="c1">//: displacements for labels, and compute the offset for instructions using them.</span> <span class="c1">//:</span> <span class="c1">//: We won't check this, but our convention will be that jump targets will</span> <span class="c1">//: start with a '$', while functions will not. Function names will never be</span> <span class="c1">//: jumped to, and jump targets will never be called.</span> <span class="c1">//: We're introducing non-number names for the first time, so it's worth</span> <span class="c1">//: laying down some ground rules all transforms will follow, so things don't</span> <span class="c1">//: get too confusing:</span> <span class="c1">//: - if it starts with a digit, it's treated as a number. If it can't be</span> <span class="c1">//: parsed as hex it will raise an error.</span> <span class="c1">//: - if it starts with '-' it's treated as a number.</span> <span class="c1">//: - if it starts with '0x' it's treated as a number.</span> <span class="c1">//: - if it's two characters long, it can't be a name. Either it's a hex</span> <span class="c1">//: byte, or it raises an error.</span> <span class="c1">//: That's it. Names can start with any non-digit that isn't a dash. They can</span> <span class="c1">//: be a single character long. 'a' is not a hex number, it's a variable.</span> <span class="c1">//: Later layers may add more conventions partitioning the space of names. But</span> <span class="c1">//: the above rules will remain inviolate.</span> <span class="c1">//: One special label is 'Entry', the address to start running the program at.</span> <span class="c1">//: It can be non-unique; the last declaration overrides earlier ones.</span> <span class="c1">//: It must exist in a program. Otherwise we don't know where to start running</span> <span class="c1">//: programs.</span> <span class="kt">void</span><span class="w"> </span><span class="nf">test_Entry_label</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">run</span><span class="p">(</span> <span class="w"> </span><span class="s">"== code 0x1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"05 0x0d0c0b0a/imm32</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"Entry:</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"05 0x0d0c0b0a/imm32</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="w"> </span><span class="n">CHECK_TRACE_CONTENTS</span><span class="p">(</span> <span class="w"> </span><span class="s">"run: 0x00000006 opcode: 05</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="w"> </span><span class="n">CHECK_TRACE_DOESNT_CONTAIN</span><span class="p">(</span><span class="s">"run: 0x00000001 opcode: 05"</span><span class="p">);</span> <span class="p">}</span> <span class="o">:</span><span class="p">(</span><span class="n">before</span><span class="w"> </span><span class="s">"End looks_like_hex_int(s) Detectors"</span><span class="p">)</span> <span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">SIZE</span><span class="p">(</span><span class="n">s</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span> <span class="o">:</span><span class="p">(</span><span class="n">code</span><span class="p">)</span> <span class="kt">void</span><span class="w"> </span><span class="n">test_pack_immediate_ignores_single_byte_nondigit_argument</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">Hide_errors</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span> <span class="w"> </span><span class="n">transform</span><span class="p">(</span> <span class="w"> </span><span class="s">"== code 0x1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"b9/copy a/imm32</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="w"> </span><span class="n">CHECK_TRACE_CONTENTS</span><span class="p">(</span> <span class="w"> </span><span class="s">"transform: packing instruction 'b9/copy a/imm32'</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="c1">// no change (we're just not printing metadata to the trace)</span> <span class="w"> </span><span class="s">"transform: instruction after packing: 'b9 a'</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="p">}</span> <span class="kt">void</span><span class="w"> </span><span class="n">test_pack_immediate_ignores_3_hex_digit_argument</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">Hide_errors</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span> <span class="w"> </span><span class="n">transform</span><span class="p">(</span> <span class="w"> </span><span class="s">"== code 0x1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"b9/copy aaa/imm32</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="w"> </span><span class="n">CHECK_TRACE_CONTENTS</span><span class="p">(</span> <span class="w"> </span><span class="s">"transform: packing instruction 'b9/copy aaa/imm32'</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="c1">// no change (we're just not printing metadata to the trace)</span> <span class="w"> </span><span class="s">"transform: instruction after packing: 'b9 aaa'</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="p">}</span> <span class="kt">void</span><span class="w"> </span><span class="n">test_pack_immediate_ignores_non_hex_argument</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">Hide_errors</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span> <span class="w"> </span><span class="n">transform</span><span class="p">(</span> <span class="w"> </span><span class="s">"== code 0x1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"b9/copy xxx/imm32</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="w"> </span><span class="n">CHECK_TRACE_CONTENTS</span><span class="p">(</span> <span class="w"> </span><span class="s">"transform: packing instruction 'b9/copy xxx/imm32'</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="c1">// no change (we're just not printing metadata to the trace)</span> <span class="w"> </span><span class="s">"transform: instruction after packing: 'b9 xxx'</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="p">}</span> <span class="c1">//: a helper we'll find handy later</span> <span class="kt">void</span><span class="w"> </span><span class="n">check_valid_name</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">string</span><span class="o">&</span><span class="w"> </span><span class="n">s</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">s</span><span class="p">.</span><span class="n">empty</span><span class="p">())</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">raise</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"empty name!</span><span class="se">\n</span><span class="s">"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">end</span><span class="p">();</span> <span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">s</span><span class="p">.</span><span class="n">at</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="sc">'-'</span><span class="p">)</span> <span class="w"> </span><span class="n">raise</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"'"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">s</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"' starts with '-', which can be confused with a negative number; use a different name</span><span class="se">\n</span><span class="s">"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">end</span><span class="p">();</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">s</span><span class="p">.</span><span class="n">substr</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s">"0x"</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">raise</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"'"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">s</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"' looks like a hex number; use a different name</span><span class="se">\n</span><span class="s">"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">end</span><span class="p">();</span> <span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">isdigit</span><span class="p">(</span><span class="n">s</span><span class="p">.</span><span class="n">at</span><span class="p">(</span><span class="mi">0</span><span class="p">)))</span> <span class="w"> </span><span class="n">raise</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"'"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">s</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"' starts with a digit, and so can be confused with a number; use a different name.</span><span class="se">\n</span><span class="s">"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">end</span><span class="p">();</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">SIZE</span><span class="p">(</span><span class="n">s</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span> <span class="w"> </span><span class="n">raise</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"'"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">s</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"' is two characters long, which can look like raw hex bytes at a glance; use a different name</span><span class="se">\n</span><span class="s">"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">end</span><span class="p">();</span> <span class="p">}</span> <span class="c1">//: Now that that's done, let's start using names as labels.</span> <span class="kt">void</span><span class="w"> </span><span class="n">test_map_label</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">transform</span><span class="p">(</span> <span class="w"> </span><span class="s">"== code 0x1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"loop:</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">" 05 0x0d0c0b0a/imm32</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="w"> </span><span class="n">CHECK_TRACE_CONTENTS</span><span class="p">(</span> <span class="w"> </span><span class="s">"transform: label 'loop' is at address 1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="p">}</span> <span class="o">:</span><span class="p">(</span><span class="n">before</span><span class="w"> </span><span class="s">"End Transforms"</span><span class="p">)</span> <span class="n">Transform</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="n">rewrite_labels</span><span class="p">);</span> <span class="o">:</span><span class="p">(</span><span class="n">code</span><span class="p">)</span> <span class="kt">void</span><span class="w"> </span><span class="n">rewrite_labels</span><span class="p">(</span><span class="n">program</span><span class="o">&</span><span class="w"> </span><span class="n">p</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">trace</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="s">"transform"</span><span class="p">)</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"-- rewrite labels"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">end</span><span class="p">();</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">segments</span><span class="p">.</span><span class="n">empty</span><span class="p">())</span><span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="w"> </span><span class="n">segment</span><span class="o">&</span><span class="w"> </span><span class="n">code</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">*</span><span class="n">find</span><span class="p">(</span><span class="n">p</span><span class="p">,</span><span class="w"> </span><span class="s">"code"</span><span class="p">);</span> <span class="w"> </span><span class="n">map</span><span class="o"><</span><span class="n">string</span><span class="p">,</span><span class="w"> </span><span class="kt">int32_t</span><span class="o">></span><span class="w"> </span><span class="n">byte_index</span><span class="p">;</span><span class="w"> </span><span class="c1">// values are unsigned, but we're going to do subtractions on them so they need to fit in 31 bits</span> <span class="w"> </span><span class="n">compute_byte_indices_for_labels</span><span class="p">(</span><span class="n">code</span><span class="p">,</span><span class="w"> </span><span class="n">byte_index</span><span class="p">);</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">trace_contains_errors</span><span class="p">())</span><span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="w"> </span><span class="n">drop_labels</span><span class="p">(</span><span class="n">code</span><span class="p">);</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">trace_contains_errors</span><span class="p">())</span><span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="w"> </span><span class="n">replace_labels_with_displacements</span><span class="p">(</span><span class="n">code</span><span class="p">,</span><span class="w"> </span><span class="n">byte_index</span><span class="p">);</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">contains_key</span><span class="p">(</span><span class="n">byte_index</span><span class="p">,</span><span class="w"> </span><span class="s">"Entry"</span><span class="p">))</span> <span class="w"> </span><span class="n">p</span><span class="p">.</span><span class="n">entry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">code</span><span class="p">.</span><span class="n">start</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">get</span><span class="p">(</span><span class="n">byte_index</span><span class="p">,</span><span class="w"> </span><span class="s">"Entry"</span><span class="p">);</span> <span class="p">}</span> <span class="kt">void</span><span class="w"> </span><span class="n">compute_byte_indices_for_labels</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">segment</span><span class="o">&</span><span class="w"> </span><span class="n">code</span><span class="p">,</span><span class="w"> </span><span class="n">map</span><span class="o"><</span><span class="n">string</span><span class="p">,</span><span class="w"> </span><span class="kt">int32_t</span><span class="o">>&</span><span class="w"> </span><span class="n">byte_index</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">current_byte</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">SIZE</span><span class="p">(</span><span class="n">code</span><span class="p">.</span><span class="n">lines</span><span class="p">);</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="n">line</span><span class="o">&</span><span class="w"> </span><span class="n">inst</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">code</span><span class="p">.</span><span class="n">lines</span><span class="p">.</span><span class="n">at</span><span class="p">(</span><span class="n">i</span><span class="p">);</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Source_lines_file</span><span class="p">.</span><span class="n">is_open</span><span class="p">()</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="o">!</span><span class="n">inst</span><span class="p">.</span><span class="n">original</span><span class="p">.</span><span class="n">empty</span><span class="p">()</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="cm">/*not a label*/</span><span class="w"> </span><span class="o">*</span><span class="n">inst</span><span class="p">.</span><span class="n">words</span><span class="p">.</span><span class="n">at</span><span class="p">(</span><span class="mi">0</span><span class="p">).</span><span class="n">data</span><span class="p">.</span><span class="n">rbegin</span><span class="p">()</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="sc">':'</span><span class="p">)</span> <span class="w"> </span><span class="n">Source_lines_file</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"0x"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">HEXWORD</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="p">(</span><span class="n">code</span><span class="p">.</span><span class="n">start</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">current_byte</span><span class="p">)</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="sc">' '</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">inst</span><span class="p">.</span><span class="n">original</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="sc">'\n'</span><span class="p">;</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">SIZE</span><span class="p">(</span><span class="n">inst</span><span class="p">.</span><span class="n">words</span><span class="p">);</span><span class="w"> </span><span class="o">++</span><span class="n">j</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="n">word</span><span class="o">&</span><span class="w"> </span><span class="n">curr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">inst</span><span class="p">.</span><span class="n">words</span><span class="p">.</span><span class="n">at</span><span class="p">(</span><span class="n">j</span><span class="p">);</span> <span class="w"> </span><span class="c1">// hack: if we have any argument metadata left after previous transforms,</span> <span class="w"> </span><span class="c1">// deduce its size</span> <span class="w"> </span><span class="c1">// Maybe we should just move this transform to before instruction</span> <span class="w"> </span><span class="c1">// packing, and deduce the size of *all* arguments. But then we'll also</span> <span class="w"> </span><span class="c1">// have to deal with bitfields.</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">has_argument_metadata</span><span class="p">(</span><span class="n">curr</span><span class="p">,</span><span class="w"> </span><span class="s">"disp32"</span><span class="p">)</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">has_argument_metadata</span><span class="p">(</span><span class="n">curr</span><span class="p">,</span><span class="w"> </span><span class="s">"imm32"</span><span class="p">))</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">curr</span><span class="p">.</span><span class="n">data</span><span class="p">.</span><span class="n">rbegin</span><span class="p">()</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="sc">':'</span><span class="p">)</span> <span class="w"> </span><span class="n">raise</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"'"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">to_string</span><span class="p">(</span><span class="n">inst</span><span class="p">)</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"': don't use ':' when jumping to labels</span><span class="se">\n</span><span class="s">"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">end</span><span class="p">();</span> <span class="w"> </span><span class="n">current_byte</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">4</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">has_argument_metadata</span><span class="p">(</span><span class="n">curr</span><span class="p">,</span><span class="w"> </span><span class="s">"disp16"</span><span class="p">))</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">curr</span><span class="p">.</span><span class="n">data</span><span class="p">.</span><span class="n">rbegin</span><span class="p">()</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="sc">':'</span><span class="p">)</span> <span class="w"> </span><span class="n">raise</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"'"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">to_string</span><span class="p">(</span><span class="n">inst</span><span class="p">)</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"': don't use ':' when jumping to labels</span><span class="se">\n</span><span class="s">"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">end</span><span class="p">();</span> <span class="w"> </span><span class="n">current_byte</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="c1">// automatically handle /disp8 and /imm8 here</span> <span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">curr</span><span class="p">.</span><span class="n">data</span><span class="p">.</span><span class="n">rbegin</span><span class="p">()</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="sc">':'</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="o">++</span><span class="n">current_byte</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">string</span><span class="w"> </span><span class="n">label</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">drop_last</span><span class="p">(</span><span class="n">curr</span><span class="p">.</span><span class="n">data</span><span class="p">);</span> <span class="w"> </span><span class="c1">// ensure labels look sufficiently different from raw hex</span> <span class="w"> </span><span class="n">check_valid_name</span><span class="p">(</span><span class="n">label</span><span class="p">);</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">trace_contains_errors</span><span class="p">())</span><span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">contains_any_argument_metadata</span><span class="p">(</span><span class="n">curr</span><span class="p">))</span> <span class="w"> </span><span class="n">raise</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"'"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">to_string</span><span class="p">(</span><span class="n">inst</span><span class="p">)</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"': label definition (':') not allowed in argument</span><span class="se">\n</span><span class="s">"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">end</span><span class="p">();</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">j</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="p">)</span> <span class="w"> </span><span class="n">raise</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"'"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">to_string</span><span class="p">(</span><span class="n">inst</span><span class="p">)</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"': labels can only be the first word in a line.</span><span class="se">\n</span><span class="s">"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">end</span><span class="p">();</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Labels_file</span><span class="p">.</span><span class="n">is_open</span><span class="p">())</span> <span class="w"> </span><span class="n">Labels_file</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"0x"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">HEXWORD</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="p">(</span><span class="n">code</span><span class="p">.</span><span class="n">start</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">current_byte</span><span class="p">)</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="sc">' '</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">label</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="sc">'\n'</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">contains_key</span><span class="p">(</span><span class="n">byte_index</span><span class="p">,</span><span class="w"> </span><span class="n">label</span><span class="p">)</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">label</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="s">"Entry"</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">raise</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"duplicate label '"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">label</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"'</span><span class="se">\n</span><span class="s">"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">end</span><span class="p">();</span> <span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">put</span><span class="p">(</span><span class="n">byte_index</span><span class="p">,</span><span class="w"> </span><span class="n">label</span><span class="p">,</span><span class="w"> </span><span class="n">current_byte</span><span class="p">);</span> <span class="w"> </span><span class="n">trace</span><span class="p">(</span><span class="mi">99</span><span class="p">,</span><span class="w"> </span><span class="s">"transform"</span><span class="p">)</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"label '"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">label</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"' is at address "</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="p">(</span><span class="n">current_byte</span><span class="o">+</span><span class="n">code</span><span class="p">.</span><span class="n">start</span><span class="p">)</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">end</span><span class="p">();</span> <span class="w"> </span><span class="c1">// no modifying current_byte; label definitions won't be in the final binary</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> <span class="o">:</span><span class="p">(</span><span class="n">before</span><span class="w"> </span><span class="s">"End Globals"</span><span class="p">)</span> <span class="kt">bool</span><span class="w"> </span><span class="n">Dump_debug_info</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">false</span><span class="p">;</span><span class="w"> </span><span class="c1">// currently used only by 'bootstrap translate'</span> <span class="n">ofstream</span><span class="w"> </span><span class="n">Labels_file</span><span class="p">;</span> <span class="n">ofstream</span><span class="w"> </span><span class="n">Source_lines_file</span><span class="p">;</span> <span class="o">:</span><span class="p">(</span><span class="n">before</span><span class="w"> </span><span class="s">"End Commandline Options"</span><span class="p">)</span> <span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">is_equal</span><span class="p">(</span><span class="o">*</span><span class="n">arg</span><span class="p">,</span><span class="w"> </span><span class="s">"--debug"</span><span class="p">))</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">Dump_debug_info</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span> <span class="w"> </span><span class="c1">// End --debug Settings</span> <span class="p">}</span> <span class="c1">//: wait to open "labels" for writing until we're sure we aren't trying to read it</span> <span class="o">:</span><span class="p">(</span><span class="n">after</span><span class="w"> </span><span class="s">"Begin bootstrap translate"</span><span class="p">)</span> <span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Dump_debug_info</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">cerr</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"saving address->label information to 'labels'</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span> <span class="w"> </span><span class="n">Labels_file</span><span class="p">.</span><span class="n">open</span><span class="p">(</span><span class="s">"labels"</span><span class="p">);</span> <span class="w"> </span><span class="n">cerr</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"saving address->source information to 'source_lines'</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span> <span class="w"> </span><span class="n">Source_lines_file</span><span class="p">.</span><span class="n">open</span><span class="p">(</span><span class="s">"source_lines"</span><span class="p">);</span> <span class="p">}</span> <span class="o">:</span><span class="p">(</span><span class="n">before</span><span class="w"> </span><span class="s">"End bootstrap translate"</span><span class="p">)</span> <span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Dump_debug_info</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">Labels_file</span><span class="p">.</span><span class="n">close</span><span class="p">();</span> <span class="w"> </span><span class="n">Source_lines_file</span><span class="p">.</span><span class="n">close</span><span class="p">();</span> <span class="p">}</span> <span class="o">:</span><span class="p">(</span><span class="n">code</span><span class="p">)</span> <span class="kt">void</span><span class="w"> </span><span class="n">drop_labels</span><span class="p">(</span><span class="n">segment</span><span class="o">&</span><span class="w"> </span><span class="n">code</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">SIZE</span><span class="p">(</span><span class="n">code</span><span class="p">.</span><span class="n">lines</span><span class="p">);</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">line</span><span class="o">&</span><span class="w"> </span><span class="n">inst</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">code</span><span class="p">.</span><span class="n">lines</span><span class="p">.</span><span class="n">at</span><span class="p">(</span><span class="n">i</span><span class="p">);</span> <span class="w"> </span><span class="n">vector</span><span class="o"><</span><span class="n">word</span><span class="o">>::</span><span class="n">iterator</span><span class="w"> </span><span class="n">new_end</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">remove_if</span><span class="p">(</span><span class="n">inst</span><span class="p">.</span><span class="n">words</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span><span class="w"> </span><span class="n">inst</span><span class="p">.</span><span class="n">words</span><span class="p">.</span><span class="n">end</span><span class="p">(),</span><span class="w"> </span><span class="n">is_label</span><span class="p">);</span> <span class="w"> </span><span class="n">inst</span><span class="p">.</span><span class="n">words</span><span class="p">.</span><span class="n">erase</span><span class="p">(</span><span class="n">new_end</span><span class="p">,</span><span class="w"> </span><span class="n">inst</span><span class="p">.</span><span class="n">words</span><span class="p">.</span><span class="n">end</span><span class="p">());</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> <span class="kt">bool</span><span class="w"> </span><span class="n">is_label</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">word</span><span class="o">&</span><span class="w"> </span><span class="n">w</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">*</span><span class="n">w</span><span class="p">.</span><span class="n">data</span><span class="p">.</span><span class="n">rbegin</span><span class="p">()</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="sc">':'</span><span class="p">;</span> <span class="p">}</span> <span class="kt">void</span><span class="w"> </span><span class="n">replace_labels_with_displacements</span><span class="p">(</span><span class="n">segment</span><span class="o">&</span><span class="w"> </span><span class="n">code</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="n">map</span><span class="o"><</span><span class="n">string</span><span class="p">,</span><span class="w"> </span><span class="kt">int32_t</span><span class="o">>&</span><span class="w"> </span><span class="n">byte_index</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kt">int32_t</span><span class="w"> </span><span class="n">byte_index_next_instruction_starts_at</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">SIZE</span><span class="p">(</span><span class="n">code</span><span class="p">.</span><span class="n">lines</span><span class="p">);</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">line</span><span class="o">&</span><span class="w"> </span><span class="n">inst</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">code</span><span class="p">.</span><span class="n">lines</span><span class="p">.</span><span class="n">at</span><span class="p">(</span><span class="n">i</span><span class="p">);</span> <span class="w"> </span><span class="n">byte_index_next_instruction_starts_at</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">num_bytes</span><span class="p">(</span><span class="n">inst</span><span class="p">);</span> <span class="w"> </span><span class="n">line</span><span class="w"> </span><span class="n">new_inst</span><span class="p">;</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">SIZE</span><span class="p">(</span><span class="n">inst</span><span class="p">.</span><span class="n">words</span><span class="p">);</span><span class="w"> </span><span class="o">++</span><span class="n">j</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="n">word</span><span class="o">&</span><span class="w"> </span><span class="n">curr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">inst</span><span class="p">.</span><span class="n">words</span><span class="p">.</span><span class="n">at</span><span class="p">(</span><span class="n">j</span><span class="p">);</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">contains_key</span><span class="p">(</span><span class="n">byte_index</span><span class="p">,</span><span class="w"> </span><span class="n">curr</span><span class="p">.</span><span class="n">data</span><span class="p">))</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kt">int32_t</span><span class="w"> </span><span class="n">displacement</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">static_cast</span><span class="o"><</span><span class="kt">int32_t</span><span class="o">></span><span class="p">(</span><span class="n">get</span><span class="p">(</span><span class="n">byte_index</span><span class="p">,</span><span class="w"> </span><span class="n">curr</span><span class="p">.</span><span class="n">data</span><span class="p">))</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">byte_index_next_instruction_starts_at</span><span class="p">;</span> <span class="w"> </span><span class="kt">int32_t</span><span class="w"> </span><span class="n">absolute_address</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">code</span><span class="p">.</span><span class="n">start</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">get</span><span class="p">(</span><span class="n">byte_index</span><span class="p">,</span><span class="w"> </span><span class="n">curr</span><span class="p">.</span><span class="n">data</span><span class="p">);</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">has_argument_metadata</span><span class="p">(</span><span class="n">curr</span><span class="p">,</span><span class="w"> </span><span class="s">"disp8"</span><span class="p">))</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">displacement</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mh">0x7f</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">displacement</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mh">-0x7f</span><span class="p">)</span> <span class="w"> </span><span class="n">raise</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"'"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">to_string</span><span class="p">(</span><span class="n">inst</span><span class="p">)</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"': label too far away for displacement "</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">hex</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">displacement</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">" to fit in 8 signed bits</span><span class="se">\n</span><span class="s">"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">end</span><span class="p">();</span> <span class="w"> </span><span class="k">else</span> <span class="w"> </span><span class="n">emit_hex_bytes</span><span class="p">(</span><span class="n">new_inst</span><span class="p">,</span><span class="w"> </span><span class="n">displacement</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">has_argument_metadata</span><span class="p">(</span><span class="n">curr</span><span class="p">,</span><span class="w"> </span><span class="s">"disp16"</span><span class="p">))</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">displacement</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mh">0x7fff</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">displacement</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mh">-0x7fff</span><span class="p">)</span> <span class="w"> </span><span class="n">raise</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"'"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">to_string</span><span class="p">(</span><span class="n">inst</span><span class="p">)</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"': label too far away for displacement "</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">hex</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">displacement</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">" to fit in 16 signed bits</span><span class="se">\n</span><span class="s">"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">end</span><span class="p">();</span> <span class="w"> </span><span class="k">else</span> <span class="w"> </span><span class="n">emit_hex_bytes</span><span class="p">(</span><span class="n">new_inst</span><span class="p">,</span><span class="w"> </span><span class="n">displacement</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">has_argument_metadata</span><span class="p">(</span><span class="n">curr</span><span class="p">,</span><span class="w"> </span><span class="s">"disp32"</span><span class="p">))</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">is_far_jump_or_call</span><span class="p">(</span><span class="n">new_inst</span><span class="p">))</span> <span class="w"> </span><span class="n">emit_hex_bytes</span><span class="p">(</span><span class="n">new_inst</span><span class="p">,</span><span class="w"> </span><span class="n">displacement</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">);</span> <span class="w"> </span><span class="k">else</span> <span class="w"> </span><span class="n">emit_hex_bytes</span><span class="p">(</span><span class="n">new_inst</span><span class="p">,</span><span class="w"> </span><span class="n">absolute_address</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">has_argument_metadata</span><span class="p">(</span><span class="n">curr</span><span class="p">,</span><span class="w"> </span><span class="s">"imm32"</span><span class="p">))</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">emit_hex_bytes</span><span class="p">(</span><span class="n">new_inst</span><span class="p">,</span><span class="w"> </span><span class="n">absolute_address</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">new_inst</span><span class="p">.</span><span class="n">words</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="n">curr</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">inst</span><span class="p">.</span><span class="n">words</span><span class="p">.</span><span class="n">swap</span><span class="p">(</span><span class="n">new_inst</span><span class="p">.</span><span class="n">words</span><span class="p">);</span> <span class="w"> </span><span class="n">trace</span><span class="p">(</span><span class="mi">99</span><span class="p">,</span><span class="w"> </span><span class="s">"transform"</span><span class="p">)</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"instruction after transform: '"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">data_to_string</span><span class="p">(</span><span class="n">inst</span><span class="p">)</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="s">"'"</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">end</span><span class="p">();</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> <span class="kt">bool</span><span class="w"> </span><span class="n">is_far_jump_or_call</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">line</span><span class="o">&</span><span class="w"> </span><span class="n">inst</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">string</span><span class="w"> </span><span class="n">first_opcode</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">inst</span><span class="p">.</span><span class="n">words</span><span class="p">.</span><span class="n">at</span><span class="p">(</span><span class="mi">0</span><span class="p">).</span><span class="n">data</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">first_opcode</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s">"e8"</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">first_opcode</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s">"e9"</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">SIZE</span><span class="p">(</span><span class="n">inst</span><span class="p">.</span><span class="n">words</span><span class="p">)</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">false</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">first_opcode</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="s">"0f"</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">false</span><span class="p">;</span> <span class="w"> </span><span class="n">string</span><span class="w"> </span><span class="n">second_opcode</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">inst</span><span class="p">.</span><span class="n">words</span><span class="p">.</span><span class="n">at</span><span class="p">(</span><span class="mi">1</span><span class="p">).</span><span class="n">data</span><span class="p">;</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">starts_with</span><span class="p">(</span><span class="n">second_opcode</span><span class="p">,</span><span class="w"> </span><span class="s">"8"</span><span class="p">);</span> <span class="p">}</span> <span class="n">string</span><span class="w"> </span><span class="n">data_to_string</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">line</span><span class="o">&</span><span class="w"> </span><span class="n">inst</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">ostringstream</span><span class="w"> </span><span class="n">out</span><span class="p">;</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">SIZE</span><span class="p">(</span><span class="n">inst</span><span class="p">.</span><span class="n">words</span><span class="p">);</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="n">out</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="sc">' '</span><span class="p">;</span> <span class="w"> </span><span class="n">out</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">inst</span><span class="p">.</span><span class="n">words</span><span class="p">.</span><span class="n">at</span><span class="p">(</span><span class="n">i</span><span class="p">).</span><span class="n">data</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">out</span><span class="p">.</span><span class="n">str</span><span class="p">();</span> <span class="p">}</span> <span class="n">string</span><span class="w"> </span><span class="n">drop_last</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">string</span><span class="o">&</span><span class="w"> </span><span class="n">s</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">string</span><span class="p">(</span><span class="n">s</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span><span class="w"> </span><span class="o">--</span><span class="n">s</span><span class="p">.</span><span class="n">end</span><span class="p">());</span> <span class="p">}</span> <span class="c1">//: Label definitions must be the first word on a line. No jumping inside</span> <span class="c1">//: instructions.</span> <span class="c1">//: They should also be the only word on a line.</span> <span class="c1">//: However, you can absolutely have multiple labels map to the same address,</span> <span class="c1">//: as long as they're on separate lines.</span> <span class="kt">void</span><span class="w"> </span><span class="n">test_multiple_labels_at</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">transform</span><span class="p">(</span> <span class="w"> </span><span class="s">"== code 0x1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="c1">// address 1</span> <span class="w"> </span><span class="s">"loop:</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">" $loop2:</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="c1">// address 1 (labels take up no space)</span> <span class="w"> </span><span class="s">" 05 0x0d0c0b0a/imm32</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="c1">// address 6</span> <span class="w"> </span><span class="s">" eb $loop2/disp8</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="c1">// address 8</span> <span class="w"> </span><span class="s">" eb $loop3/disp8</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="c1">// address 0xa</span> <span class="w"> </span><span class="s">" $loop3:</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="w"> </span><span class="n">CHECK_TRACE_CONTENTS</span><span class="p">(</span> <span class="w"> </span><span class="s">"transform: label 'loop' is at address 1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"transform: label '$loop2' is at address 1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"transform: label '$loop3' is at address a</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="c1">// first jump is to -7</span> <span class="w"> </span><span class="s">"transform: instruction after transform: 'eb f9'</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="c1">// second jump is to 0 (fall through)</span> <span class="w"> </span><span class="s">"transform: instruction after transform: 'eb 00'</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="p">}</span> <span class="kt">void</span><span class="w"> </span><span class="n">test_loading_label_as_imm32</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">transform</span><span class="p">(</span> <span class="w"> </span><span class="s">"== code 0x1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"label:</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">" be/copy-to-ESI label/imm32</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="w"> </span><span class="n">CHECK_TRACE_CONTENTS</span><span class="p">(</span> <span class="w"> </span><span class="s">"transform: label 'label' is at address 1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"transform: instruction after transform: 'be 01 00 00 00'</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="p">}</span> <span class="kt">void</span><span class="w"> </span><span class="n">test_duplicate_label</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">Hide_errors</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span> <span class="w"> </span><span class="n">transform</span><span class="p">(</span> <span class="w"> </span><span class="s">"== code 0x1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"loop:</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"loop:</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">" 05 0x0d0c0b0a/imm32</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="w"> </span><span class="n">CHECK_TRACE_CONTENTS</span><span class="p">(</span> <span class="w"> </span><span class="s">"error: duplicate label 'loop'</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="p">}</span> <span class="kt">void</span><span class="w"> </span><span class="n">test_label_too_short</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">Hide_errors</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span> <span class="w"> </span><span class="n">transform</span><span class="p">(</span> <span class="w"> </span><span class="s">"== code 0x1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"xz:</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">" 05 0x0d0c0b0a/imm32</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="w"> </span><span class="n">CHECK_TRACE_CONTENTS</span><span class="p">(</span> <span class="w"> </span><span class="s">"error: 'xz' is two characters long, which can look like raw hex bytes at a glance; use a different name</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="p">}</span> <span class="kt">void</span><span class="w"> </span><span class="n">test_label_hex</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">Hide_errors</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span> <span class="w"> </span><span class="n">transform</span><span class="p">(</span> <span class="w"> </span><span class="s">"== code 0x1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"0xab:</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">" 05 0x0d0c0b0a/imm32</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="w"> </span><span class="n">CHECK_TRACE_CONTENTS</span><span class="p">(</span> <span class="w"> </span><span class="s">"error: '0xab' looks like a hex number; use a different name</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="p">}</span> <span class="kt">void</span><span class="w"> </span><span class="n">test_label_negative_hex</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">Hide_errors</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span> <span class="w"> </span><span class="n">transform</span><span class="p">(</span> <span class="w"> </span><span class="s">"== code 0x1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"-a:</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">" 05 0x0d0c0b0a/imm32</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="w"> </span><span class="n">CHECK_TRACE_CONTENTS</span><span class="p">(</span> <span class="w"> </span><span class="s">"error: '-a' starts with '-', which can be confused with a negative number; use a different name</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="p">}</span> <span class="c1">//: As said up top, the 'Entry' label is special.</span> <span class="c1">//: It can be non-unique; the last declaration overrides earlier ones.</span> <span class="c1">//: It must exist in a program. Otherwise we don't know where to start running</span> <span class="c1">//: programs.</span> <span class="kt">void</span><span class="w"> </span><span class="n">test_duplicate_Entry_label</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">transform</span><span class="p">(</span> <span class="w"> </span><span class="s">"== code 0x1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"Entry:</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"Entry:</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">" 05 0x0d0c0b0a/imm32</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="w"> </span><span class="n">CHECK_TRACE_DOESNT_CONTAIN_ERRORS</span><span class="p">();</span> <span class="p">}</span> <span class="c1">// This test could do with some refactoring.</span> <span class="c1">// We're duplicating the flow inside `bootstrap translate`, but without</span> <span class="c1">// reading/writing files.</span> <span class="c1">// We can't just use run(string) because most of our tests allow programs</span> <span class="c1">// without 'Entry' labels, as a convenience.</span> <span class="kt">void</span><span class="w"> </span><span class="n">test_programs_without_Entry_label</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">Hide_errors</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span> <span class="w"> </span><span class="n">program</span><span class="w"> </span><span class="n">p</span><span class="p">;</span> <span class="w"> </span><span class="n">istringstream</span><span class="w"> </span><span class="n">in</span><span class="p">(</span> <span class="w"> </span><span class="s">"== code 0x1</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"05 0x0d0c0b0a/imm32</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"05 0x0d0c0b0a/imm32</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="w"> </span><span class="n">parse</span><span class="p">(</span><span class="n">in</span><span class="p">,</span><span class="w"> </span><span class="n">p</span><span class="p">);</span> <span class="w"> </span><span class="n">transform</span><span class="p">(</span><span class="n">p</span><span class="p">);</span> <span class="w"> </span><span class="n">ostringstream</span><span class="w"> </span><span class="n">dummy</span><span class="p">;</span> <span class="w"> </span><span class="n">save_elf</span><span class="p">(</span><span class="n">p</span><span class="p">,</span><span class="w"> </span><span class="n">dummy</span><span class="p">);</span> <span class="w"> </span><span class="n">CHECK_TRACE_CONTENTS</span><span class="p">(</span> <span class="w"> </span><span class="s">"error: no 'Entry' label found</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="p">}</span> <span class="c1">//: now that we have labels, we need to adjust segment size computation to</span> <span class="c1">//: ignore them.</span> <span class="kt">void</span><span class="w"> </span><span class="n">test_segment_size_ignores_labels</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">transform</span><span class="p">(</span> <span class="w"> </span><span class="s">"== code 0x09000074</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">" 05/add 0x0d0c0b0a/imm32</span><span class="se">\n</span><span class="s">"</span><span class="w"> </span><span class="c1">// 5 bytes</span> <span class="w"> </span><span class="s">"foo:</span><span class="se">\n</span><span class="s">"</span><span class="w"> </span><span class="c1">// 0 bytes</span> <span class="w"> </span><span class="s">"== data 0x0a000000</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"bar:</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">" 00</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="w"> </span><span class="n">CHECK_TRACE_CONTENTS</span><span class="p">(</span> <span class="w"> </span><span class="s">"transform: segment 1 begins at address 0x0a000079</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="p">);</span> <span class="p">}</span> <span class="o">:</span><span class="p">(</span><span class="n">before</span><span class="w"> </span><span class="s">"End size_of(word w) Special-cases"</span><span class="p">)</span> <span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">is_label</span><span class="p">(</span><span class="n">w</span><span class="p">))</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> </pre></div> </code></pre></td></tr></table> </div> <!-- class=content --> <div class='footer'>generated by <a href='https://git.causal.agency/cgit-pink/about/'>cgit-pink 1.4.1-2-gfad0</a> (<a href='https://git-scm.com/'>git 2.36.2.497.gbbea4dcf42</a>) at 2025-04-11 12:19:43 +0000</div> </div> <!-- id=cgit --> </body> </html> em\n" " administrator." msgstr "" " Du kan ta bort l�nkar med kommandot radera bokm�rke, vilket vanligtvis\n" " n�s via tangenten \"R\", men som kan ha �ndrats av dig eller din\n" " systemadministrat�r." #: src/LYBookmark.c:378 msgid "" " This file also may be edited with a standard text editor to delete\n" " outdated or invalid links, or to change their order." msgstr "" " Denna fil kan �ven redigeras med ett vanligt textredigeringsprogram f�r\n" " att ta bort f�r�ldrade eller ogiltiga l�nkar, eller �ndra den inb�rdes\n" " ordningen." #: src/LYBookmark.c:381 msgid "" "Note: if you edit this file manually\n" " you should not change the format within the lines\n" " or add other HTML markup.\n" " Make sure any bookmark link is saved as a single line." msgstr "" "Obs: om du redigerar denna fil manuellt\n" " b�r du inte �ndra formatet p� raderna,\n" " eller l�gga till annan HTML-kod.\n" " Se till att alla bokm�rkesl�nkar lagras som enskilda rader." #: src/LYBookmark.c:677 #, c-format msgid "File may be recoverable from %s during this session" msgstr "Filen kan kanske �terskapas fr�n %s under denna session" #: src/LYCgi.c:159 #, c-format msgid "Do you want to execute \"%s\"?" msgstr "" #. #. * Neither the path as given nor any components examined by backing up #. * were stat()able. - kw #. #: src/LYCgi.c:274 msgid "Unable to access cgi script" msgstr "Kan inte n� cgi-skript" #: src/LYCgi.c:699 src/LYCgi.c:702 msgid "Good Advice" msgstr "Gott r�d" #: src/LYCgi.c:706 msgid "An excellent http server for VMS is available via" msgstr "En utm�rkt http-server f�r VMS �r tillg�nglig via" #: src/LYCgi.c:713 msgid "this link" msgstr "denna l�nk" #: src/LYCgi.c:717 msgid "It provides state of the art CGI script support.\n" msgstr "Den ger f�rstklassigt st�d f�r CGI-skript.\n" #: src/LYClean.c:120 msgid "Exiting via interrupt:" msgstr "Avslutar via avbrott:" #: src/LYCookie.c:2458 msgid "(from a previous session)" msgstr "(fr�n en tidigare session)" #: src/LYCookie.c:2519 msgid "Maximum Gobble Date:" msgstr "Maximalt �tdatum:" #: src/LYCookie.c:2559 msgid "Internal" msgstr "Intern" #: src/LYCookie.c:2560 msgid "cookie_domain_flag_set error, aborting program" msgstr "\"cookie_domain_flag_set\"-fel, avbryter programmet" #: src/LYCurses.c:1028 msgid "Terminal initialisation failed - unknown terminal type?" msgstr "Terminalinitiering misslyckades - ok�nd terminaltyp?" #: src/LYCurses.c:1453 msgid "Terminal =" msgstr "Terminal =" #: src/LYCurses.c:1457 msgid "You must use a vt100, 200, etc. terminal with this program." msgstr "Du m�ste anv�nda en vt100-, -200-, etc. -terminal med detta program." #: src/LYCurses.c:1506 msgid "Your Terminal type is unknown!" msgstr "Din terminaltyp �r ok�nd!" #: src/LYCurses.c:1507 msgid "Enter a terminal type:" msgstr "Ange en terminaltyp:" #: src/LYCurses.c:1521 msgid "TERMINAL TYPE IS SET TO" msgstr "TERMINALTYP SATT TILL" #: src/LYCurses.c:2025 #, c-format msgid "" "\n" "A Fatal error has occurred in %s Ver. %s\n" msgstr "" "\n" "Ett fatalt fel har uppst�tt i %s ver. %s\n" #: src/LYCurses.c:2028 #, c-format msgid "" "\n" "Please notify your system administrator to confirm a bug, and if\n" "confirmed, to notify the lynx-dev list. Bug reports should have concise\n" "descriptions of the command and/or URL which causes the problem, the\n" "operating system name with version number, the TCPIP implementation, the\n" "TRACEBACK if it can be captured, and any other relevant information.\n" msgstr "" "\n" "Kontakta din systemadministrat�r f�r att bekr�fta ett programfel, och om\n" "det bekr�ftas, att notifiera lynx-dev-listan. Felrapporter b�r ha en\n" "koncis beskrivning av kommandon och/eller webbadresser (URLar) som g�r att\n" "felet uppst�r, namn och versionsnummer p� operativsystemet, anv�nd TCP/IP-\n" "implementation, TRACEBACK om den kan f�s, och all annan relevant information.\n" #: src/LYEdit.c:251 msgid "Editor killed by signal" msgstr "Redigeringsprogram d�dat av signal" #: src/LYEdit.c:253 #, c-format msgid "Editor returned with error status, %s" msgstr "Redigeringsprogrammet gav felstatus %s" #: src/LYEdit.c:256 msgid "reason unknown." msgstr "ok�nd anledning." #: src/LYDownload.c:503 msgid "Downloaded link:" msgstr "H�mtad l�nk:" #: src/LYDownload.c:508 msgid "Suggested file name:" msgstr "F�reslaget filnamn:" #: src/LYDownload.c:513 msgid "Standard download options:" msgstr "F�rdefinierade h�mtalternativ:" #: src/LYDownload.c:514 msgid "Download options:" msgstr "H�mtalternativ:" #: src/LYDownload.c:530 msgid "Save to disk" msgstr "Spara p� disk" #: src/LYDownload.c:544 msgid "View temporary file" msgstr "Visa tempor�r fil" #: src/LYDownload.c:551 msgid "Save to disk disabled." msgstr "\"Spara p� disk\" deaktiverad." #: src/LYDownload.c:555 src/LYPrint.c:1319 msgid "Local additions:" msgstr "Lokala till�gg:" #: src/LYDownload.c:566 src/LYUpload.c:211 #, c-format msgid "No Name Given" msgstr "Inget namn har angetts" #: src/LYHistory.c:660 msgid "You selected:" msgstr "Du valde:" #: src/LYHistory.c:684 src/LYHistory.c:913 msgid "(no address)" msgstr "(ingen adress)" #: src/LYHistory.c:688 msgid " (internal)" msgstr " (intern)" #: src/LYHistory.c:690 msgid " (was internal)" msgstr " (var intern)" #: src/LYHistory.c:788 msgid " (From History)" msgstr " (Fr�n historik)" #: src/LYHistory.c:833 msgid "You visited (POSTs, bookmark, menu and list files excluded):" msgstr "Du bes�kte (POST, bokm�rkes-, meny- och listfiler ej medr�knade):" #: src/LYHistory.c:1123 msgid "(No messages yet)" msgstr "(Inga meddelanden �nnu)" #: src/LYLeaks.c:206 msgid "Invalid pointer detected." msgstr "Ogiltig pekare uppt�ckt." #: src/LYLeaks.c:208 src/LYLeaks.c:246 msgid "Sequence:" msgstr "Sekvens:" #: src/LYLeaks.c:211 src/LYLeaks.c:249 msgid "Pointer:" msgstr "Pekare:" #: src/LYLeaks.c:220 src/LYLeaks.c:227 src/LYLeaks.c:268 msgid "FileName:" msgstr "Filnamn:" #: src/LYLeaks.c:223 src/LYLeaks.c:230 src/LYLeaks.c:271 src/LYLeaks.c:282 msgid "LineCount:" msgstr "Radnummer:" #: src/LYLeaks.c:244 msgid "Memory leak detected." msgstr "Minnesl�cka uppt�ckt." #: src/LYLeaks.c:252 msgid "Contains:" msgstr "Inneh�ller:" #: src/LYLeaks.c:265 msgid "ByteSize:" msgstr "Bytestorlek:" #: src/LYLeaks.c:279 msgid "realloced:" msgstr "omallokerad:" #: src/LYLeaks.c:300 msgid "Total memory leakage this run:" msgstr "Totalt minnesl�ckage denna k�rning:" #: src/LYLeaks.c:303 msgid "Peak allocation" msgstr "Mesta allokering" #: src/LYLeaks.c:304 msgid "Bytes allocated" msgstr "Byte allokerade" #: src/LYLeaks.c:305 msgid "Total mallocs" msgstr "Totalt antal malloc" #: src/LYLeaks.c:306 msgid "Total frees" msgstr "Totalt antal free" #: src/LYList.c:84 msgid "References in " msgstr "Referenser i " #: src/LYList.c:87 msgid "this document:" msgstr "detta dokument:" #: src/LYList.c:93 msgid "Visible links:" msgstr "Bes�kta l�nkar:" #: src/LYList.c:194 src/LYList.c:293 msgid "Hidden links:" msgstr "Dolda l�nkar:" #: src/LYList.c:326 msgid "References" msgstr "Referenser" #: src/LYList.c:330 msgid "Visible links" msgstr "Synliga l�nkar" #: src/LYLocal.c:269 #, c-format msgid "Unable to get status of '%s'." msgstr "Kan inte ta status p� \"%s\"." #: src/LYLocal.c:303 msgid "The selected item is not a file or a directory! Request ignored." msgstr "Vald post �r inte en fil eller en katalog! Beg�ran ignoreras." #: src/LYLocal.c:371 #, c-format msgid "Unable to %s due to system error!" msgstr "Kan inte %s p� grund av systemfel!" #: src/LYLocal.c:405 #, c-format msgid "Probable failure to %s due to system error!" msgstr "M�jligt misslyckande i %s p� grund av systemfel!" #: src/LYLocal.c:467 src/LYLocal.c:488 #, c-format msgid "remove %s" msgstr "ta bort %s" #: src/LYLocal.c:506 #, c-format msgid "touch %s" msgstr "�ndra datum p� %s" #: src/LYLocal.c:534 #, c-format msgid "move %s to %s" msgstr "flytta %s till %s" #: src/LYLocal.c:575 msgid "There is already a directory with that name! Request ignored." msgstr "Det finns redan en katalog med det namnet! Beg�ran ignoreras." #: src/LYLocal.c:577 msgid "There is already a file with that name! Request ignored." msgstr "Det finns redan en fil med det namnet! Beg�ran ignoreras." #: src/LYLocal.c:579 msgid "The specified name is already in use! Request ignored." msgstr "Angivet filnamn anv�nds redan! Beg�ran ignoreras." #: src/LYLocal.c:590 msgid "Destination has different owner! Request denied." msgstr "M�let har annan �gare! Beg�ran avvisas." #: src/LYLocal.c:593 msgid "Destination is not a valid directory! Request denied." msgstr "M�let �r inte en giltig katalog! Beg�ran avvisas." #: src/LYLocal.c:615 msgid "Remove all tagged files and directories?" msgstr "Ta bort alla markerade filer och kataloger?" #: src/LYLocal.c:673 msgid "Enter new location for tagged items: " msgstr "Ange ny plats f�r markerade poster: " #: src/LYLocal.c:743 msgid "Path too long" msgstr "S�kv�g f�r l�ng" #: src/LYLocal.c:774 msgid "Source and destination are the same location - request ignored!" msgstr "K�lla och m�l �r samma - beg�ran ignoreras!" #: src/LYLocal.c:831 msgid "Enter new name for directory: " msgstr "Ange nytt namn f�r katalog: " #: src/LYLocal.c:833 msgid "Enter new name for file: " msgstr "Ange nytt namn f�r fil: " #: src/LYLocal.c:845 msgid "Illegal character (path-separator) found! Request ignored." msgstr "Felaktigt tecken (s�kv�gsavdelare) funnen! Beg�ran ignorerad." #: src/LYLocal.c:895 msgid "Enter new location for directory: " msgstr "Ange ny plats f�r katalog: " #: src/LYLocal.c:901 msgid "Enter new location for file: " msgstr "Ange ny plats f�r fil: " #: src/LYLocal.c:928 msgid "Unexpected failure - unable to find trailing path separator" msgstr "Ov�ntat misslyckande - kan inte hitta avslutande s�kv�gsavdelare" #: src/LYLocal.c:948 msgid "Source and destination are the same location! Request ignored!" msgstr "K�lla och m�l �r samma plats! Beg�ran ignorerad." #: src/LYLocal.c:995 msgid "Modify name, location, or permission (n, l, or p): " msgstr "�nda N=namn, L=plats eller P=beh�righet? " #: src/LYLocal.c:997 msgid "Modify name or location (n or l): " msgstr "�ndra N=namn eller L=plats? " #. #. * Code for changing ownership needed here. #. #: src/LYLocal.c:1026 msgid "This feature not yet implemented!" msgstr "Denna funktion �r �nnu ej implementerad!" #: src/LYLocal.c:1043 msgid "Enter name of file to create: " msgstr "Ange namn p� fil att skapa: " #: src/LYLocal.c:1051 src/LYLocal.c:1092 msgid "Illegal redirection \"//\" found! Request ignored." msgstr "Felaktig omdirigering \"//\" funnen! Beg�ran ignoreras." #: src/LYLocal.c:1084 msgid "Enter name for new directory: " msgstr "Ange namn p� ny katalog: " #: src/LYLocal.c:1128 msgid "Create file or directory (f or d): " msgstr "Skapa F=fil eller D=katalog? " #: src/LYLocal.c:1170 #, c-format msgid "Remove directory '%s'?" msgstr "Ta bort katalogen \"%s\"?" #: src/LYLocal.c:1173 msgid "Remove directory?" msgstr "Ta bort katalogen?" #: src/LYLocal.c:1178 #, c-format msgid "Remove file '%s'?" msgstr "Ta bort fil \"%s\"?" #: src/LYLocal.c:1180 msgid "Remove file?" msgstr "Ta bort fil?" #: src/LYLocal.c:1185 #, c-format msgid "Remove symbolic link '%s'?" msgstr "Ta bort symbolisk l�nk \"%s\"?" #: src/LYLocal.c:1187 msgid "Remove symbolic link?" msgstr "Ta bort symbolisk l�nk?" #: src/LYLocal.c:1282 msgid "Sorry, don't know how to permit non-UNIX files yet." msgstr "Tyv�rr, kan inte �ndra beh�righet f�r icke-Unixfiler �nnu." #: src/LYLocal.c:1312 msgid "Unable to open permit options file" msgstr "Kan inte �ppna beh�righetsalternativfil" #: src/LYLocal.c:1342 msgid "Specify permissions below:" msgstr "Ange beh�righet nedan:" #: src/LYLocal.c:1343 src/LYShowInfo.c:259 msgid "Owner:" msgstr "�gare:" #: src/LYLocal.c:1359 msgid "Group" msgstr "Grupp" #: src/LYLocal.c:1375 msgid "Others:" msgstr "�vriga:" #: src/LYLocal.c:1393 msgid "form to permit" msgstr "formul�r f�r att �ndra beh�righet f�r" #: src/LYLocal.c:1488 msgid "Invalid mode format." msgstr "Ogiltigt format p� beh�righet." #: src/LYLocal.c:1492 msgid "Invalid syntax format." msgstr "Ogiltig syntaxformat." #: src/LYLocal.c:1674 msgid "Warning! UUDecoded file will exist in the directory you started Lynx." msgstr "Varning! UU-avkodad fil lagras i katalogen du startade Lynx fr�n." #: src/LYLocal.c:1864 msgid "NULL URL pointer" msgstr "URL-pekare �r NULL" #: src/LYLocal.c:1946 #, c-format msgid "Executing %s " msgstr "K�r %s " #: src/LYLocal.c:1949 msgid "Executing system command. This might take a while." msgstr "K�r systemkommando. Detta kan ta en stund." #: src/LYLocal.c:2021 msgid "Current directory:" msgstr "Aktuell katalog:" #: src/LYLocal.c:2024 src/LYLocal.c:2042 msgid "Current selection:" msgstr "Aktuell markering:" #: src/LYLocal.c:2028 msgid "Nothing currently selected." msgstr "Ingenting har markerats." #: src/LYLocal.c:2044 msgid "tagged item:" msgstr "markerad post:" #: src/LYLocal.c:2045 msgid "tagged items:" msgstr "markerade poster:" #: src/LYLocal.c:2142 src/LYLocal.c:2153 msgid "Illegal filename; request ignored." msgstr "Ogiltigt filnamn; beg�ran ignorerad." #. directory not writable #: src/LYLocal.c:2251 src/LYLocal.c:2310 msgid "Install in the selected directory not permitted." msgstr "Installation i vald katalog ej till�ten." #: src/LYLocal.c:2306 msgid "The selected item is not a directory! Request ignored." msgstr "Vald post �r inte en katalog! Beg�ran ignorerad." #: src/LYLocal.c:2315 msgid "Just a moment, ..." msgstr "Ett �gonblick, ..." #: src/LYLocal.c:2332 msgid "Error building install args" msgstr "Fel vid uppbyggning av installationsflaggor" #: src/LYLocal.c:2347 src/LYLocal.c:2378 #, c-format msgid "Source and target are the same: %s" msgstr "K�lla och m�l �r samma: %s" #: src/LYLocal.c:2354 src/LYLocal.c:2385 #, c-format msgid "Already in target directory: %s" msgstr "Redan i m�lkatalog: %s" #: src/LYLocal.c:2403 msgid "Installation complete" msgstr "Installation f�rdig" #: src/LYLocal.c:2590 msgid "Temporary URL or list would be too long." msgstr "Tempor�r adress eller lista skulle vara f�r l�ng." #: src/LYMail.c:520 msgid "Sending" msgstr "Skickar" #: src/LYMail.c:1006 #, c-format msgid "The link %s :?: %s \n" msgstr "L�nken %s :?: %s \n" #: src/LYMail.c:1008 #, c-format msgid "called \"%s\"\n" msgstr "anropade \"%s\"\n" #: src/LYMail.c:1009 #, c-format msgid "in the file \"%s\" called \"%s\"\n" msgstr "i filen \"%s\" anropade \"%s\"\n" #: src/LYMail.c:1010 msgid "was requested but was not available." msgstr "efterfr�gades men var inte tillg�nglig." #: src/LYMail.c:1011 msgid "Thought you might want to know." msgstr "T�nkte att du kanske ville veta." #: src/LYMail.c:1013 msgid "This message was automatically generated by" msgstr "Detta meddelande automatgenererades av" #: src/LYMail.c:1728 msgid "No system mailer configured" msgstr "E-postprogram inte konfigurerat i systemet" #: src/LYMain.c:1000 msgid "No Winsock found, sorry." msgstr "Ingen Winsock hittades, urs�kta." #: src/LYMain.c:1195 msgid "You MUST define a valid TMP or TEMP area!" msgstr "Du M�STE ange ett giltigt TMP- eller TEMP-omr�de!" #: src/LYMain.c:1248 src/LYMainLoop.c:5053 msgid "No such directory" msgstr "Katalogen finns ej" #: src/LYMain.c:1455 #, c-format msgid "" "\n" "Configuration file %s is not available.\n" "\n" msgstr "" "\n" "Konfigurationsfil %s ej tillg�nglig.\n" "\n" #: src/LYMain.c:1465 #, c-format msgid "" "\n" "Lynx character sets not declared.\n" "\n" msgstr "" "\n" "Lynxteckenupps�ttningar ej deklarerade.\n" "\n" #: src/LYMain.c:1494 #, c-format msgid "" "\n" "Lynx edit map not declared.\n" "\n" msgstr "" "\n" "Lynxredigeringskarta ej deklarerad.\n" "\n" #: src/LYMain.c:1520 #, c-format msgid "" "\n" "Lynx file %s is not available.\n" "\n" msgstr "" "\n" "Lynxfil %s ej tillg�nglig.\n" "\n" #: src/LYMain.c:1750 msgid "Warning:" msgstr "Varning:" #: src/LYMain.c:2315 msgid "persistent cookies state will be changed in next session only." msgstr "varaktiga kakinst�llningar �ndras endast i n�sta session." #: src/LYMain.c:2552 src/LYMain.c:2597 #, c-format msgid "Lynx: ignoring unrecognized charset=%s\n" msgstr "Lynx: ignorerar ok�nd teckenupps�ttning %s\n" #: src/LYMain.c:3108 #, c-format msgid "%s Version %s (%s)" msgstr "%s version %s (%s)" #: src/LYMain.c:3143 #, c-format msgid "Built on %s %s %s\n" msgstr "Byggd %s %s %s\n" #: src/LYMain.c:3165 msgid "Copyrights held by the University of Kansas, CERN, and other contributors." msgstr "Upphovsr�tten �gs av University of Kansas, CERN, och andra bidragsl�mnare." #: src/LYMain.c:3166 msgid "Distributed under the GNU General Public License." msgstr "Distribuerad enligt GNU General Public License." #: src/LYMain.c:3167 msgid "See http://lynx.isc.org/ and the online help for more information." msgstr "Se http://lynx.isc.org/ och direkthj�lpen f�r ytterligare information." #: src/LYMain.c:3939 #, c-format msgid "USAGE: %s [options] [file]\n" msgstr "ANV�NDNING: %s [flaggor] [fil]\n" #: src/LYMain.c:3940 #, c-format msgid "Options are:\n" msgstr "Flaggorna �r:\n" #: src/LYMain.c:4239 #, c-format msgid "%s: Invalid Option: %s\n" msgstr "%s: Ok�nd flagga: %s\n" #: src/LYMainLoop.c:575 #, c-format msgid "Internal error: Invalid mouse link %d!" msgstr "Internt fel: Ogiltig musl�nk %d!" #: src/LYMainLoop.c:692 src/LYMainLoop.c:5075 msgid "A URL specified by the user" msgstr "En adress angiven av anv�ndaren" #: src/LYMainLoop.c:1148 msgid "Enctype multipart/form-data not yet supported! Cannot submit." msgstr "Kodningen multiport/form-data st�ds inte �nnu! Kan inte skicka." #. #. * Make a name for this help file. #. #: src/LYMainLoop.c:3050 msgid "Help Screen" msgstr "Hj�lpsk�rm" #: src/LYMainLoop.c:3171 msgid "System Index" msgstr "Systemindex" #: src/LYMainLoop.c:3531 src/LYMainLoop.c:5299 msgid "Entry into main screen" msgstr "Ing�ng till huvudsk�rm" #: src/LYMainLoop.c:3794 msgid "No next document present" msgstr "Det finns inget n�sta dokument" #: src/LYMainLoop.c:4093 msgid "charset for this document specified explicitly, sorry..." msgstr "teckenupps�ttning f�r detta dokumentet explicit deklarerat, urs�kta..." #: src/LYMainLoop.c:5029 msgid "cd to:" msgstr "byt katalog till:" #: src/LYMainLoop.c:5056 msgid "A component of path is not a directory" msgstr "En del av s�kv�gen �r inte en katalog" #: src/LYMainLoop.c:5059 msgid "failed to change directory" msgstr "lyckades inte byta katalog" #: src/LYMainLoop.c:6220 msgid "Reparsing document under current settings..." msgstr "Tolkar om dokumentet med aktuella inst�llningar..." #: src/LYMainLoop.c:6511 #, c-format msgid "Fatal error - could not open output file %s\n" msgstr "Fatalt fel - kunde inte �ppna utdatafil %s\n" # Kollas! #: src/LYMainLoop.c:6856 msgid "TABLE center enable." msgstr "Tabellcentrering aktiverad." # Kollas! #: src/LYMainLoop.c:6859 msgid "TABLE center disable." msgstr "Tabellcentrering inaktiverad." #: src/LYMainLoop.c:6936 msgid "Current URL is empty." msgstr "Nuvarande adress �r tom." #: src/LYMainLoop.c:6938 src/LYUtils.c:1790 msgid "Copy to clipboard failed." msgstr "Misslyckades kopiera till urklipp." #: src/LYMainLoop.c:6940 msgid "Document URL put to clipboard." msgstr "Dokumentadress lagd i urklipp." #: src/LYMainLoop.c:6942 msgid "Link URL put to clipboard." msgstr "L�nkadress lagd i urklipp." #: src/LYMainLoop.c:6969 msgid "No URL in the clipboard." msgstr "Ingen adress i urklipp." #: src/LYMainLoop.c:7633 src/LYMainLoop.c:7803 msgid "-index-" msgstr "-index-" #: src/LYMainLoop.c:7743 msgid "lynx: Can't access startfile" msgstr "lynx: Kan inte komma �t startfil" #: src/LYMainLoop.c:7755 msgid "lynx: Start file could not be found or is not text/html or text/plain" msgstr "lynx: Startfilen hittades inte eller �r varken text/html eller text/plain" #: src/LYMainLoop.c:7756 msgid " Exiting..." msgstr " Avslutar..." #: src/LYMainLoop.c:7797 msgid "-more-" msgstr "-mer-" #. Enable scrolling. #: src/LYNews.c:183 msgid "You will be posting to:" msgstr "Du kommer att skicka till:" #. #. * Get the mail address for the From header, offering personal_mail_address #. * as default. #. #: src/LYNews.c:192 msgid "" "\n" "\n" " Please provide your mail address for the From: header\n" msgstr "" "\n" "\n" " Ange din e-postadress f�r avs�ndarf�ltet\n" #. #. * Get the Subject header, offering the current document's title as the #. * default if this is a followup rather than a new post. - FM #. #: src/LYNews.c:209 msgid "" "\n" "\n" " Please provide or edit the Subject: header\n" msgstr "" "\n" "\n" " Ange eller redigera �renderaden\n" #: src/LYNews.c:299 msgid "" "\n" "\n" " Please provide or edit the Organization: header\n" msgstr "" "\n" "\n" " Ange eller redigera organisationsf�ltet\n" #. #. * Use the built in line editior. #. #: src/LYNews.c:356 msgid "" "\n" "\n" " Please enter your message below." msgstr "" "\n" "\n" " Skriv ditt inl�gg nedan." #: src/LYNews.c:402 msgid "Message has no original text!" msgstr "Inl�gget har ingen ursprunglig text!" #: src/LYOptions.c:761 msgid "review/edit B)ookmarks files" msgstr "se/redigera B)okm�rkesfiler" #: src/LYOptions.c:763 msgid "B)ookmark file: " msgstr "B)okm�rkesfil: " #: src/LYOptions.c:2126 src/LYOptions.c:2133 msgid "ON" msgstr "P�" #. verbose_img variable #: src/LYOptions.c:2127 src/LYOptions.c:2132 src/LYOptions.c:2280 src/LYOptions.c:2291 msgid "OFF" msgstr "AV" #: src/LYOptions.c:2128 msgid "NEVER" msgstr "ALDRIG" #: src/LYOptions.c:2129 msgid "ALWAYS" msgstr "ALLTID" #: src/LYOptions.c:2145 src/LYOptions.c:2272 msgid "ignore" msgstr "ignorera" #: src/LYOptions.c:2146 msgid "ask user" msgstr "fr�ga anv�ndaren" #: src/LYOptions.c:2147 msgid "accept all" msgstr "ta emot alla" #: src/LYOptions.c:2159 msgid "ALWAYS OFF" msgstr "ALLTID AV" #: src/LYOptions.c:2160 msgid "FOR LOCAL FILES ONLY" msgstr "ENDAST F�R LOKALA FILER" #: src/LYOptions.c:2162 msgid "ALWAYS ON" msgstr "ALLTID P�" # Numeriskt tangentbord #: src/LYOptions.c:2174 msgid "Numbers act as arrows" msgstr "Siffror som pilar" #: src/LYOptions.c:2176 msgid "Links are numbered" msgstr "Numrerade l�nkar" #: src/LYOptions.c:2179 msgid "Links and form fields are numbered" msgstr "Numrerade l�nkar och formul�rf�lt" #: src/LYOptions.c:2182 msgid "Form fields are numbered" msgstr "Numrerade formul�rf�lt" #: src/LYOptions.c:2192 msgid "Case insensitive" msgstr "Skilj inte VERSALER och gemener" #: src/LYOptions.c:2193 msgid "Case sensitive" msgstr "Skilj VERSALER och gemener" #: src/LYOptions.c:2217 msgid "prompt normally" msgstr "fr�ga som vanligt" #: src/LYOptions.c:2218 msgid "force yes-response" msgstr "svara alltid ja" #: src/LYOptions.c:2219 msgid "force no-response" msgstr "svara alltid nej" #: src/LYOptions.c:2237 msgid "Novice" msgstr "Nyb�rjare" #: src/LYOptions.c:2238 msgid "Intermediate" msgstr "Amat�r" #: src/LYOptions.c:2239 msgid "Advanced" msgstr "Avancerad" #: src/LYOptions.c:2248 msgid "By First Visit" msgstr "Efter f�rsta bes�k" #: src/LYOptions.c:2250 msgid "By First Visit Reversed" msgstr "Efter f�rsta anv�ndning, omv�nt" #: src/LYOptions.c:2251 msgid "As Visit Tree" msgstr "Som bes�kstr�d" #: src/LYOptions.c:2252 msgid "By Last Visit" msgstr "Efter senaste bes�k" #: src/LYOptions.c:2254 msgid "By Last Visit Reversed" msgstr "Efter senaste bes�k, omv�nt" #. Old_DTD variable #: src/LYOptions.c:2265 msgid "relaxed (TagSoup mode)" msgstr "avslappnad (TagSoup-l�ge)" #: src/LYOptions.c:2266 msgid "strict (SortaSGML mode)" msgstr "strikt (SortaSGML-l�ge)" #: src/LYOptions.c:2273 msgid "as labels" msgstr "som etiketter" #: src/LYOptions.c:2274 msgid "as links" msgstr "som l�nkar" #: src/LYOptions.c:2281 msgid "show filename" msgstr "visa filnamn" #: src/LYOptions.c:2292 msgid "STANDARD" msgstr "NORMAL" #: src/LYOptions.c:2293 msgid "ADVANCED" msgstr "AVANCERAD" #: src/LYOptions.c:2319 msgid "Directories first" msgstr "Kataloger f�rst" #: src/LYOptions.c:2320 msgid "Files first" msgstr "Filer f�rst" #: src/LYOptions.c:2321 msgid "Mixed style" msgstr "Blandad visning" #: src/LYOptions.c:2329 src/LYOptions.c:2346 msgid "By Name" msgstr "Efter namn" #: src/LYOptions.c:2330 src/LYOptions.c:2347 msgid "By Type" msgstr "Efter typ" #: src/LYOptions.c:2331 src/LYOptions.c:2348 msgid "By Size" msgstr "Efter storlek" #: src/LYOptions.c:2332 src/LYOptions.c:2349 msgid "By Date" msgstr "Efter datum" #: src/LYOptions.c:2333 msgid "By Mode" msgstr "Efter l�ge" #: src/LYOptions.c:2335 msgid "By User" msgstr "Efter anv�ndare" #: src/LYOptions.c:2336 msgid "By Group" msgstr "Efter grupp" #: src/LYOptions.c:2357 msgid "Do not show rate" msgstr "Visa inte hastighe" #: src/LYOptions.c:2358 src/LYOptions.c:2359 #, c-format msgid "Show %s/sec rate" msgstr "Visa hastighet som %s/s" #: src/LYOptions.c:2361 src/LYOptions.c:2362 #, c-format msgid "Show %s/sec, ETA" msgstr "Visa %s/s, tid kvar" #: src/LYOptions.c:2374 msgid "Accept lynx's internal types" msgstr "Godta lynx interna typer" #: src/LYOptions.c:2375 msgid "Also accept lynx.cfg's types" msgstr "Godta �ven typer fr�n lynx.cfg" #: src/LYOptions.c:2376 msgid "Also accept user's types" msgstr "Godta �ven anv�ndarens typer" #: src/LYOptions.c:2377 msgid "Also accept system's types" msgstr "Godta �ven systemets typer" #: src/LYOptions.c:2378 msgid "Accept all types" msgstr "Godta alla typer" #: src/LYOptions.c:2387 msgid "gzip" msgstr "gzip" #: src/LYOptions.c:2388 msgid "deflate" msgstr "deflate" #: src/LYOptions.c:2391 msgid "compress" msgstr "compress" #: src/LYOptions.c:2394 msgid "bzip2" msgstr "bzip2" #: src/LYOptions.c:2396 msgid "All" msgstr "Alla" #: src/LYOptions.c:2664 src/LYOptions.c:2688 #, c-format msgid "Use %s to invoke the Options menu!" msgstr "Anv�nd %s f�r att n� alternativmenyn!" #: src/LYOptions.c:3438 msgid "(options marked with (!) will not be saved)" msgstr "(inst�llningar markerade med (!) kommer ej att sparas)" #: src/LYOptions.c:3446 msgid "General Preferences" msgstr "Allm�nna inst�llningar" #. *************************************************************** #. User Mode: SELECT #: src/LYOptions.c:3450 msgid "User mode" msgstr "Anv�ndarl�ge" #. Editor: INPUT #: src/LYOptions.c:3456 msgid "Editor" msgstr "Redigeringsprogram" #. Search Type: SELECT #: src/LYOptions.c:3461 msgid "Type of Search" msgstr "S�ktyp" #: src/LYOptions.c:3466 msgid "Security and Privacy" msgstr "S�kerhet och personlig integritet" #. *************************************************************** #. Cookies: SELECT #: src/LYOptions.c:3470 msgid "Cookies" msgstr "Kakor" #. Cookie Prompting: SELECT #: src/LYOptions.c:3484 msgid "Invalid-Cookie Prompting" msgstr "Fr�ga f�r ogiltiga kakor" #. SSL Prompting: SELECT #: src/LYOptions.c:3491 msgid "SSL Prompting" msgstr "Fr�ga f�r SSL" #: src/LYOptions.c:3497 msgid "Keyboard Input" msgstr "Tangentbordsindata" #. *************************************************************** #. Keypad Mode: SELECT #: src/LYOptions.c:3501 msgid "Keypad mode" msgstr "Numeriskt tangentbord" #. Emacs keys: ON/OFF #: src/LYOptions.c:3507 msgid "Emacs keys" msgstr "Emacstangenter" #. VI Keys: ON/OFF #: src/LYOptions.c:3513 msgid "VI keys" msgstr "VI-tangenter" #. Line edit style: SELECT #. well, at least 2 line edit styles available #: src/LYOptions.c:3520 msgid "Line edit style" msgstr "Radredigeringsstil" #. Keyboard layout: SELECT #: src/LYOptions.c:3532 msgid "Keyboard layout" msgstr "Tangentbordsmall" #. #. * Display and Character Set #. #: src/LYOptions.c:3546 msgid "Display and Character Set" msgstr "Visning och teckenupps�ttning" #. Use locale-based character set: ON/OFF #: src/LYOptions.c:3551 msgid "Use locale-based character set" msgstr "Lokalbaserad teckenupps�ttning" #. Display Character Set: SELECT #: src/LYOptions.c:3560 msgid "Display character set" msgstr "Teckenupps�ttning f�r visning" #: src/LYOptions.c:3591 msgid "Assumed document character set" msgstr "F�rvald dokumentteckenupps�ttning" #. #. * Since CJK people hardly mixed with other world #. * we split the header to make it more readable: #. * "CJK mode" for CJK display charsets, and "Raw 8-bit" for others. #. #: src/LYOptions.c:3611 msgid "CJK mode" msgstr "CJK-l�ge" #: src/LYOptions.c:3613 msgid "Raw 8-bit" msgstr "R� 8-bitars" #. X Display: INPUT #: src/LYOptions.c:3621 msgid "X Display" msgstr "X-display" #. #. * Document Appearance #. #: src/LYOptions.c:3627 msgid "Document Appearance" msgstr "Dokumentutseende" #: src/LYOptions.c:3633 msgid "Show color" msgstr "Visa f�rg" #. Show cursor: ON/OFF #: src/LYOptions.c:3657 msgid "Show cursor" msgstr "Visa mark�r" #. Underline links: ON/OFF #: src/LYOptions.c:3663 msgid "Underline links" msgstr "Stryk under l�nkar" #. Show scrollbar: ON/OFF #: src/LYOptions.c:3670 msgid "Show scrollbar" msgstr "Visa rullningslist" #. Select Popups: ON/OFF #: src/LYOptions.c:3677 msgid "Popups for select fields" msgstr "Popup f�r valf�lt" #. HTML error recovery: SELECT #: src/LYOptions.c:3683 msgid "HTML error recovery" msgstr "HTML-fel�terh�mtning" #. Show Images: SELECT #: src/LYOptions.c:3689 msgid "Show images" msgstr "Visa bilder" #. Verbose Images: ON/OFF #: src/LYOptions.c:3703 msgid "Verbose images" msgstr "Pratsamma bilder" #. #. * Headers Transferred to Remote Servers #. #: src/LYOptions.c:3711 msgid "Headers Transferred to Remote Servers" msgstr "Fr�gehuvud �verf�rt till fj�rrservrar" #. *************************************************************** #. Mail Address: INPUT #: src/LYOptions.c:3715 msgid "Personal mail address" msgstr "Egen e-postadress" #. Mail Address: INPUT #: src/LYOptions.c:3720 #, fuzzy msgid "Password for anonymous ftp" msgstr "L�senord f�r diskussionsv�rd \"%s\":" #. Preferred media type: SELECT #: src/LYOptions.c:3725 msgid "Preferred media type" msgstr "�nskad mediatyp" #. Preferred encoding: SELECT #: src/LYOptions.c:3731 msgid "Preferred encoding" msgstr "�nskade kodningsform" #. Preferred Document Character Set: INPUT #: src/LYOptions.c:3737 msgid "Preferred document character set" msgstr "�nskad dokumentteckenupps�ttning" #. Preferred Document Language: INPUT #: src/LYOptions.c:3742 msgid "Preferred document language" msgstr "�nskade dokumentspr�k" #: src/LYOptions.c:3748 msgid "User-Agent header" msgstr "Webbl�saridentifiering" #. #. * Listing and Accessing Files #. #: src/LYOptions.c:3756 msgid "Listing and Accessing Files" msgstr "Visning av och �tkomst till filer" #. *************************************************************** #. FTP sort: SELECT #: src/LYOptions.c:3760 msgid "FTP sort criteria" msgstr "Sortering f�r ftp-kataloger" #. Local Directory Sort: SELECT #: src/LYOptions.c:3767 msgid "Local directory sort criteria" msgstr "Sortering f�r lokala kataloger" #. Local Directory Order: SELECT #: src/LYOptions.c:3773 msgid "Local directory sort order" msgstr "Sortering f�r lokala kataloger" #: src/LYOptions.c:3782 msgid "Show dot files" msgstr "Visa punktfiler" #: src/LYOptions.c:3790 msgid "Execution links" msgstr "Exekveringsl�nkar" #. Show transfer rate: SELECT #: src/LYOptions.c:3810 msgid "Show transfer rate" msgstr "Visa �verf�ringshastighet" #. #. * Special Files and Screens #. #: src/LYOptions.c:3830 msgid "Special Files and Screens" msgstr "Speciella filer och sk�rmar" #: src/LYOptions.c:3835 msgid "Multi-bookmarks" msgstr "Multibokm�rken" #: src/LYOptions.c:3843 msgid "Review/edit Bookmarks files" msgstr "Se/�ndra bokm�rkesfiler" #: src/LYOptions.c:3845 msgid "Goto multi-bookmark menu" msgstr "G� till multibokm�rkesmenyn" #: src/LYOptions.c:3847 msgid "Bookmarks file" msgstr "Bokm�rkesfil" #. Visited Pages: SELECT #: src/LYOptions.c:3853 msgid "Visited Pages" msgstr "Bes�kta sidor" #: src/LYOptions.c:3858 msgid "View the file " msgstr "Visa filen " #: src/LYPrint.c:946 #, c-format msgid " Print job complete.\n" msgstr " Utskriftsjobb f�rdigt.\n" #: src/LYPrint.c:1271 msgid "Document:" msgstr "Dokument:" #: src/LYPrint.c:1272 msgid "Number of lines:" msgstr "Antal l�nkar:" #: src/LYPrint.c:1273 msgid "Number of pages:" msgstr "Antal sidor:" #: src/LYPrint.c:1274 msgid "pages" msgstr "sidor" #: src/LYPrint.c:1274 msgid "page" msgstr "sida" #: src/LYPrint.c:1275 msgid "(approximately)" msgstr "(ungef�r)" #: src/LYPrint.c:1282 msgid "Some print functions have been disabled!" msgstr "Vissa utskriftsfunktioner har deaktiverats!" #: src/LYPrint.c:1286 msgid "Standard print options:" msgstr "F�rdefinierade utskriftsalternativ:" #: src/LYPrint.c:1287 msgid "Print options:" msgstr "Utskriftsalternativ" #: src/LYPrint.c:1294 msgid "Save to a local file" msgstr "Spara som lokal fil" #: src/LYPrint.c:1296 msgid "Save to disk disabled" msgstr "\"Spara p� disk\" deaktiverad" #: src/LYPrint.c:1303 msgid "Mail the file" msgstr "S�nd filer per e-post" #: src/LYPrint.c:1310 msgid "Print to the screen" msgstr "Skriv ut p� sk�rmen" #: src/LYPrint.c:1315 msgid "Print out on a printer attached to your vt100 terminal" msgstr "Skriv ut p� en skrivare ansluten till din vt100-terminal" #: src/LYReadCFG.c:342 #, c-format msgid "" "Syntax Error parsing COLOR in configuration file:\n" "The line must be of the form:\n" "COLOR:INTEGER:FOREGROUND:BACKGROUND\n" "\n" "Here FOREGROUND and BACKGROUND must be one of:\n" "The special strings 'nocolor' or 'default', or\n" msgstr "" "Syntaxfel vid tolkning av f�rg (COLOR) i konfigurationsfil:\n" "Raden m�ste vara p� formen:\n" "COLOR:HELTAL:F�RGRUND:BAKGRUND\n" "\n" "F�RGRUND och BAKGRUND m�ste vara en av:\n" "specialstr�ngarna \"nocolor\" eller \"default\", eller\n" #: src/LYReadCFG.c:355 msgid "Offending line:" msgstr "Felaktig rad:" #: src/LYReadCFG.c:625 #, c-format msgid "key remapping of %s to %s for %s failed\n" msgstr "tangentomdefiniering av %s till %s f�r %s misslyckades\n" #: src/LYReadCFG.c:632 #, c-format msgid "key remapping of %s to %s failed\n" msgstr "tangentomdefiniering av %s till %s misslyckades\n" #: src/LYReadCFG.c:653 #, c-format msgid "invalid line-editor selection %s for key %s, selecting all\n" msgstr "ogiltig radredigeringsval %s f�r tangent %s, v�ljer alla\n" #: src/LYReadCFG.c:678 src/LYReadCFG.c:690 #, c-format msgid "setting of line-editor binding for key %s (0x%x) to 0x%x for %s failed\n" msgstr "inst�llning av radredigeringsdefinition f�r tangent %s (0x%x) till 0x%x f�r %s misslyckades\n" #: src/LYReadCFG.c:694 #, c-format msgid "setting of line-editor binding for key %s (0x%x) for %s failed\n" msgstr "inst�llning av radredigeringsdefinition f�r tangent %s (0x%x) f�r %s misslyckades\n" #: src/LYReadCFG.c:792 #, c-format msgid "Lynx: cannot start, CERN rules file %s is not available\n" msgstr "Lynx: kan inte b�rja, CERN-regelfilen %s ej tillg�nglig\n" #: src/LYReadCFG.c:793 msgid "(no name)" msgstr "(inget namn)" #: src/LYReadCFG.c:1784 #, c-format msgid "More than %d nested lynx.cfg includes -- perhaps there is a loop?!?\n" msgstr "Mer �n %d staplade lynx.cfg-inkluderingar -- kanske en slinga?!?\n" #: src/LYReadCFG.c:1786 #, c-format msgid "Last attempted include was '%s',\n" msgstr "Sista f�rs�kta inkludering var \"%s\",\n" #: src/LYReadCFG.c:1787 #, c-format msgid "included from '%s'.\n" msgstr "inkluderad fr�n \"%s\".\n" #: src/LYReadCFG.c:2194 src/LYReadCFG.c:2207 src/LYReadCFG.c:2265 msgid "The following is read from your lynx.cfg file." msgstr "F�ljande l�ses fr�n din lynx.cfg-fil." #: src/LYReadCFG.c:2195 src/LYReadCFG.c:2208 msgid "Please read the distribution" msgstr "Se distributionens" #: src/LYReadCFG.c:2201 src/LYReadCFG.c:2211 msgid "for more comments." msgstr "f�r ytterligare kommentarer." #: src/LYReadCFG.c:2247 msgid "RELOAD THE CHANGES" msgstr "H�MTA OM �NDRINGARNA" #: src/LYReadCFG.c:2255 msgid "Your primary configuration" msgstr "Din prim�ra konfiguration" #: src/LYShowInfo.c:172 msgid "Directory that you are currently viewing" msgstr "Visad katalog" #: src/LYShowInfo.c:175 msgid "Name:" msgstr "Namn:" #: src/LYShowInfo.c:178 msgid "URL:" msgstr "Adress:" #: src/LYShowInfo.c:192 msgid "Directory that you have currently selected" msgstr "Markerade kataloger" #: src/LYShowInfo.c:194 msgid "File that you have currently selected" msgstr "Markerade filer" #: src/LYShowInfo.c:197 msgid "Symbolic link that you have currently selected" msgstr "Markerade symboliska l�nkar" #: src/LYShowInfo.c:200 msgid "Item that you have currently selected" msgstr "Markerade poster" #: src/LYShowInfo.c:202 msgid "Full name:" msgstr "Fullt namn:" #: src/LYShowInfo.c:211 msgid "Unable to follow link" msgstr "Kan inte f�lja l�nk" #: src/LYShowInfo.c:213 msgid "Points to file:" msgstr "Pekar p� fil:" #: src/LYShowInfo.c:218 msgid "Name of owner:" msgstr "Namn p� �gare:" #: src/LYShowInfo.c:221 msgid "Group name:" msgstr "Gruppnamn:" #: src/LYShowInfo.c:223 msgid "File size:" msgstr "Filstorlek:" #: src/LYShowInfo.c:225 msgid "(bytes)" msgstr "(byte)" #. #. * Include date and time information. #. #: src/LYShowInfo.c:230 msgid "Creation date:" msgstr "Skapad den:" #: src/LYShowInfo.c:233 msgid "Last modified:" msgstr "Senast �ndrad:" #: src/LYShowInfo.c:236 msgid "Last accessed:" msgstr "Senast �tkommen:" #: src/LYShowInfo.c:242 msgid "Access Permissions" msgstr "�tkomstbeh�righet" #: src/LYShowInfo.c:277 msgid "Group:" msgstr "Grupp:" #: src/LYShowInfo.c:297 msgid "World:" msgstr "�vriga:" #: src/LYShowInfo.c:304 msgid "File that you are currently viewing" msgstr "Visad fil" #: src/LYShowInfo.c:312 src/LYShowInfo.c:416 msgid "Linkname:" msgstr "L�nknamn:" #: src/LYShowInfo.c:318 src/LYShowInfo.c:333 msgid "Charset:" msgstr "Teckenupps�ttning:" #: src/LYShowInfo.c:332 msgid "(assumed)" msgstr "(antogs)" #: src/LYShowInfo.c:339 msgid "Server:" msgstr "Server:" #: src/LYShowInfo.c:342 msgid "Date:" msgstr "Datum:" #: src/LYShowInfo.c:345 msgid "Last Mod:" msgstr "Senaste �ndring:" #: src/LYShowInfo.c:350 msgid "Expires:" msgstr "Utg�r:" #: src/LYShowInfo.c:353 msgid "Cache-Control:" msgstr "Cachekontroll:" #: src/LYShowInfo.c:356 msgid "Content-Length:" msgstr "Datal�ngd:" #: src/LYShowInfo.c:360 #, fuzzy msgid "Length:" msgstr "Datal�ngd:" #: src/LYShowInfo.c:365 msgid "Language:" msgstr "Spr�k:" #: src/LYShowInfo.c:372 msgid "Post Data:" msgstr "\"POST\"-data:" #: src/LYShowInfo.c:375 msgid "Post Content Type:" msgstr "\"POST\"-datatyp:" #: src/LYShowInfo.c:378 msgid "Owner(s):" msgstr "�gare:" #: src/LYShowInfo.c:383 msgid "size:" msgstr "storlek:" #: src/LYShowInfo.c:385 msgid "lines" msgstr "rader" #: src/LYShowInfo.c:389 msgid "forms mode" msgstr "formul�rl�ge" #: src/LYShowInfo.c:391 msgid "source" msgstr "k�llkod" #: src/LYShowInfo.c:392 msgid "normal" msgstr "normal" #: src/LYShowInfo.c:394 msgid ", safe" msgstr ", s�ker" #: src/LYShowInfo.c:396 msgid ", via internal link" msgstr ", via intern l�nk" #: src/LYShowInfo.c:401 msgid ", no-cache" msgstr ", ingen cache" #: src/LYShowInfo.c:403 msgid ", ISMAP script" msgstr ", ISMAP-skript" #: src/LYShowInfo.c:405 msgid ", bookmark file" msgstr ", bokm�rkesfil" #: src/LYShowInfo.c:409 msgid "mode:" msgstr "l�ge:" #: src/LYShowInfo.c:415 msgid "Link that you currently have selected" msgstr "Markerad l�nk" #: src/LYShowInfo.c:424 msgid "Method:" msgstr "Metod:" #: src/LYShowInfo.c:428 msgid "Enctype:" msgstr "Kodningstyp:" #: src/LYShowInfo.c:434 msgid "Action:" msgstr "�tg�rd:" #: src/LYShowInfo.c:439 msgid "(Form field)" msgstr "(Formul�rf�lt)" #: src/LYShowInfo.c:448 msgid "No Links on the current page" msgstr "Ingen l�nk p� aktuell sida" #: src/LYShowInfo.c:453 msgid "Server Headers:" msgstr "Serverhuvuden:" #: src/LYStyle.c:294 #, c-format msgid "" "Syntax Error parsing style in lss file:\n" "[%s]\n" "The line must be of the form:\n" "OBJECT:MONO:COLOR (ie em:bold:brightblue:white)\n" "where OBJECT is one of EM,STRONG,B,I,U,BLINK etc.\n" "\n" msgstr "" "Syntaxfel vid tolkning av stil i lss-fil:\n" "[%s]\n" "Raden m�ste vara p� formen:\n" "OBJEKT:MONO:F�RG (t.ex em:bold:brightblue:white)\n" "d�r OBJEKT �r en av EM,STRONG,B,I,U,BLINK etc.\n" "\n" #: src/LYTraversal.c:108 msgid "here is a list of the history stack so that you may rebuild" msgstr "h�r finns en lista �ver historikstacken s� att du kan bygga om" #: src/LYUpload.c:75 msgid "ERROR! - upload command is misconfigured" msgstr "FEL! - ins�ndningskommandot �r felkonfigurerat" #: src/LYUpload.c:96 msgid "Illegal redirection \"../\" found! Request ignored." msgstr "Felaktig omdirigering \"../\" hittad! Beg�ran ignorerad." #: src/LYUpload.c:99 msgid "Illegal character \"/\" found! Request ignored." msgstr "Felaktigt tecken \"/\" hittad! Beg�ran ignorerad." #: src/LYUpload.c:102 msgid "Illegal redirection using \"~\" found! Request ignored." msgstr "Ogiltig omdirigering med \"~\" hittad! Beg�ran ignorerad." #: src/LYUpload.c:159 msgid "Unable to upload file." msgstr "Kan inte skicka fil." #: src/LYUpload.c:201 msgid "Upload To:" msgstr "Skicka till:" #: src/LYUpload.c:202 msgid "Upload options:" msgstr "Ins�ndningsalternativ:" #: src/LYUtils.c:1792 msgid "Download document URL put to clipboard." msgstr "Adress till h�mtat dokument lagt i urklipp." #: src/LYUtils.c:2569 msgid "Unexpected access protocol for this URL scheme." msgstr "Ov�ntat �tkomstprotokoll f�r denna adresstyp." #: src/LYUtils.c:3377 msgid "Too many tempfiles" msgstr "F�r m�nga tempor�rfiler" #: src/LYUtils.c:3681 msgid "unknown restriction" msgstr "ok�nd begr�nsning" #: src/LYUtils.c:3711 #, c-format msgid "No restrictions set.\n" msgstr "Inga begr�nsningar satta.\n" #: src/LYUtils.c:3714 #, c-format msgid "Restrictions set:\n" msgstr "Satta begr�nsningar:\n" #: src/LYUtils.c:5092 msgid "Cannot find HOME directory" msgstr "Hittar inte hemkatalogen (HOME)" #: src/LYrcFile.c:21 msgid "Normally disabled. See ENABLE_LYNXRC in lynx.cfg\n" msgstr "Vanligtvis avst�ngd. Se ENABLE_LYNXRC i lynx.cfg\n" #: src/LYrcFile.c:318 msgid "" "accept_all_cookies allows the user to tell Lynx to automatically\n" "accept all cookies if desired. The default is \"FALSE\" which will\n" "prompt for each cookie. Set accept_all_cookies to \"TRUE\" to accept\n" "all cookies.\n" msgstr "" "accept_all_cookies l�ter anv�ndaren tala om f�r Lynx att automatiskt\n" "acceptera alla kakor. F�rvalet �r \"FALSE\", och visar en fr�ga f�r\n" "varje kaka. S�tt accept_all_cookies till \"TRUE\" f�r att acceptera\n" "alla kakor.\n" #: src/LYrcFile.c:325 msgid "" "anonftp_password allows the user to tell Lynx to use the personal\n" "email address as the password for anonymous ftp. If no value is given,\n" "Lynx will use the personal email address. Set anonftp_password\n" "to a different value if you choose.\n" msgstr "" #: src/LYrcFile.c:331 msgid "" "bookmark_file specifies the name and location of the default bookmark\n" "file into which the user can paste links for easy access at a later\n" "date.\n" msgstr "" "bookmark_file anger namn och plats f�r standardbokm�rkesfilen, i vilken\n" "anv�ndaren kan klistra in l�nkar f�r att l�tt komma �t dem senare.\n" #: src/LYrcFile.c:336 msgid "" "If case_sensitive_searching is \"on\" then when the user invokes a search\n" "using the 's' or '/' keys, the search performed will be case sensitive\n" "instead of case INsensitive. The default is usually \"off\".\n" msgstr "" "Om case_sensitive_searching �r \"on\" n�r anv�ndaren startar en s�kning\n" "med \"s\" eller \"/\" kommer s�kningen som genomf�rs att g�ra skillnad p�\n" "gemener och versaler. F�rvalet �r normalt sett av (\"off\").\n" #: src/LYrcFile.c:341 msgid "" "The character_set definition controls the representation of 8 bit\n" "characters for your terminal. If 8 bit characters do not show up\n" "correctly on your screen you may try changing to a different 8 bit\n" "set or using the 7 bit character approximations.\n" "Current valid characters sets are:\n" msgstr "" "Inst�llningen f�r character_set anger hur �ttabitarstecken representeras\n" "p� din terminal. Om �ttabitarstecken inte visas korrekt p� din sk�rm kan\n" "du f�rs�ka att �ndra till en annan �ttabitarsteckenupps�ttning, eller\n" "anv�nda sjubitarstolkningarna.\n" "Giltiga teckenupps�ttningar �r:\n" #: src/LYrcFile.c:348 msgid "" "cookie_accept_domains and cookie_reject_domains are comma-delimited\n" "lists of domains from which Lynx should automatically accept or reject\n" "all cookies. If a domain is specified in both options, rejection will\n" "take precedence. The accept_all_cookies parameter will override any\n" "settings made here.\n" msgstr "" "cookie_accept_domains och cookie_reject_domains �r kommaavdelade\n" "listor �ver dom�ner fr�n vilka Lynx automatisk skall acceptera eller\n" "avvisa kakor. Om en dom�n anges i b�da alternativet kommer avvisning\n" "att g� f�re. Flaggan accept_all_cookies g�r f�re alla inst�llningar\n" "som g�rs h�r.\n" #: src/LYrcFile.c:356 msgid "" "cookie_file specifies the file from which to read persistent cookies.\n" "The default is ~/.lynx_cookies.\n" msgstr "" "cookie_file anger filen som varaktiga kakor skall l�sas fr�n.\n" "F�rval �r ~/.lynx_cookies.\n" #: src/LYrcFile.c:361 msgid "" "cookie_loose_invalid_domains, cookie_strict_invalid_domains, and\n" "cookie_query_invalid_domains are comma-delimited lists of which domains\n" "should be subjected to varying degrees of validity checking. If a\n" "domain is set to strict checking, strict conformance to RFC2109 will\n" "be applied. A domain with loose checking will be allowed to set cookies\n" "with an invalid path or domain attribute. All domains will default to\n" "querying the user for an invalid path or domain.\n" msgstr "" "cookie_loose_invalid_domains, cookie_strict_invalid_domains och\n" "cookie_query_invalid_domains �r kommaavdelade listor �ver dom�ner som\n" "skall underkastas olika niv�er av giltighetskontroll. Om en dom�n s�tts\n" "till strikt kontroll kommer strikt tolkning av RFC2109 att g�lla.\n" "En dom�n med l�s kontroll g�r det m�jligt att s�tta kakor med felaktiga\n" "s�kv�g- eller dom�nattribut. Alla dom�ner f�r som f�rval fr�gor till\n" "anv�ndaren f�r felaktiga s�kv�gar eller dom�ner.\n" #: src/LYrcFile.c:375 msgid "" "dir_list_order specifies the directory list order under DIRED_SUPPORT\n" "(if implemented). The default is \"ORDER_BY_NAME\"\n" msgstr "" "dir_list_order anger kataloglistesortering i DIRED_SUPPORT (om det �r\n" "implementerat). F�rvalet �r \"ORDER_BY_NAME\"\n" #: src/LYrcFile.c:380 msgid "" "dir_list_styles specifies the directory list style under DIRED_SUPPORT\n" "(if implemented). The default is \"MIXED_STYLE\", which sorts both\n" "files and directories together. \"FILES_FIRST\" lists files first and\n" "\"DIRECTORIES_FIRST\" lists directories first.\n" msgstr "" "dir_list_styles anger kataloglistestil i DIRED_SUPPORT (om det �r\n" "implementerat). F�rvalet �r \"MIXED_STYLE\", vilket sorterar filer\n" "och kataloger tillsammanns. \"FILES_FIRST\" listar filer f�rst, och\n" "\"DIRECTORIES_FIRST\" listar kataloger f�rst.\n" #: src/LYrcFile.c:388 msgid "" "If emacs_keys is to \"on\" then the normal EMACS movement keys:\n" " ^N = down ^P = up\n" " ^B = left ^F = right\n" "will be enabled.\n" msgstr "" "Om emacs_keys s�tts till \"on\" kommer EMACS-f�rflyttningstangeter att\n" "aktiveras:\n" " ^N = ned ^P = upp\n" " ^B = v�nster ^F = h�ger\n" #: src/LYrcFile.c:394 msgid "" "file_editor specifies the editor to be invoked when editing local files\n" "or sending mail. If no editor is specified, then file editing is disabled\n" "unless it is activated from the command line, and the built-in line editor\n" "will be used for sending mail.\n" msgstr "" "file_editor anger vilket redigeringsprogram som skall aktiveras n�r lokala\n" "filer redigeras, eller e-post s�nds. Om inget program anges deaktiveras\n" "filredigering, s�vida det inte aktiveras fr�n kommandoraden, och den inbyggda\n" "radredigeraren anv�nds f�r e-post.\n" #: src/LYrcFile.c:400 msgid "" "The file_sorting_method specifies which value to sort on when viewing\n" "file lists such as FTP directories. The options are:\n" " BY_FILENAME -- sorts on the name of the file\n" " BY_TYPE -- sorts on the type of the file\n" " BY_SIZE -- sorts on the size of the file\n" " BY_DATE -- sorts on the date of the file\n" msgstr "" "file_sorting_method anger hur fillistor, s�som ftp-kataloger, skall\n" "sorteras. Alternativen �r:\n" " BY_FILENAME -- sorterar efter filnamn\n" " BY_TYPE -- sorterar efter filtyp\n" " BY_SIZE -- sorterar efter filstorlek\n" " BY_DATE -- sorterar efter fildatum\n" #: src/LYrcFile.c:418 msgid "" "lineedit_mode specifies the key binding used for inputting strings in\n" "prompts and forms. If lineedit_mode is set to \"Default Binding\" then\n" "the following control characters are used for moving and deleting:\n" "\n" " Prev Next Enter = Accept input\n" " Move char: <- -> ^G = Cancel input\n" " Move word: ^P ^N ^U = Erase line\n" " Delete char: ^H ^R ^A = Beginning of line\n" " Delete word: ^B ^F ^E = End of line\n" "\n" "Current lineedit modes are:\n" msgstr "" "lineedit_mode ange tangentbordsfunktioner som anv�nds f�r att skriva\n" "in str�ngar i fr�gor och formul�r. Om lineedit_mode s�tts till\n" "\"Default Binding\" kommer f�ljande kontrolltecken anv�ndas f�r att\n" "flytta och ta bort:\n" "\n" " Bak�t Fram�t Enter = Bekr�fta indata\n" " Flytta tecken: <- -> ^G = Avbryt inmatning\n" " Flytta ord: ^P ^N ^U = Radera rad\n" " Radera tecken: ^H ^R ^A = Radb�rjan\n" " Radera ord: ^B ^F ^E = Radslut\n" "\n" #: src/LYrcFile.c:436 msgid "" "The following allow you to define sub-bookmark files and descriptions.\n" "The format is multi_bookmark<capital_letter>=<filename>,<description>\n" "Up to 26 bookmark files (for the English capital letters) are allowed.\n" "We start with \"multi_bookmarkB\" since 'A' is the default (see above).\n" msgstr "" "F�ljande g�r det m�jligt f�r dig att definiera underbokm�rkesfiler och\n" "tillh�rande beskrivningar. Formatet �r:\n" "multi_bookmark<stor bokstav>=<filnamn>,<beskrivning>\n" "Upp till 26 bokm�rkesfiler (de stora bokst�verna A-Z) till�ts.\n" "Vi b�rjar med \"multi_bookmarkB\" eftersom \"A\" �r f�rvalet (se ovan).\n" #: src/LYrcFile.c:442 msgid "" "personal_mail_address specifies your personal mail address. The\n" "address will be sent during HTTP file transfers for authorization and\n" "logging purposes, and for mailed comments.\n" "If you do not want this information given out, set the NO_FROM_HEADER\n" "to TRUE in lynx.cfg, or use the -nofrom command line switch. You also\n" "could leave this field blank, but then you won't have it included in\n" "your mailed comments.\n" msgstr "" "personal_mail_address anger din personliga e-postaderss. Adressen\n" "s�nds under HTTP-fil�verf�ringar f�r auktoriserings- och\n" "loggnings�ndam�l, samt f�r att s�nda kommentarer per e-post\n" "Om du inte vill att denna information skall s�ndas, s�tt NO_FROM_HEADER\n" "till TRUE i lynx.cfg, eller anv�nd kommandoradsflaggan -nofrom. Du kan\n" "�ven l�mna detta f�lt blankt, men d� inkluderas det inte i kommentarer\n" "du s�nder.\n" #: src/LYrcFile.c:451 msgid "" "preferred_charset specifies the character set in MIME notation (e.g.,\n" "ISO-8859-2, ISO-8859-5) which Lynx will indicate you prefer in requests\n" "to http servers using an Accept-Charset header. The value should NOT\n" "include ISO-8859-1 or US-ASCII, since those values are always assumed\n" "by default. May be a comma-separated list.\n" "If a file in that character set is available, the server will send it.\n" "If no Accept-Charset header is present, the default is that any\n" "character set is acceptable. If an Accept-Charset header is present,\n" "and if the server cannot send a response which is acceptable\n" "according to the Accept-Charset header, then the server SHOULD send\n" "an error response, though the sending of an unacceptable response\n" "is also allowed.\n" msgstr "" "preferred_charset anger de teckenupps�ttningar Lynx kommer att ange att\n" "du �nskar ta emot i fr�gor till http-serverar i MIME-notation (t.ex\n" "ISO-8859-2, ISO-8859-5). Detta s�nds i Accept-Charset-huvudet. V�rdet\n" "b�r inte inneh�lla ISO-8859-1 eller US-ASCII eftersom de v�rdena alltid\n" "antas som f�rval. Kan vara en kommaseparerad lista.\n" "Om en fil i den teckenupps�ttningen finns att tillg� kommer servern\n" "Om inget Accept-Charset s�nds �r f�rvalet att alla teckenupps�ttningar\n" "�r acceptabla. Om en Accept-Charset �r tillg�nglig, och om servern inte\n" "kan s�nda ett svar som �r acceptabelt enligt Accept-Charset-huvudet B�R\n" "servern s�nda ett felmeddelande, �ven om det �r till�tet att s�nda �ven\n" "ett icke-acceptabelt svar.\n" #: src/LYrcFile.c:467 msgid "" "preferred_language specifies the language in MIME notation (e.g., en,\n" "fr, may be a comma-separated list in decreasing preference)\n" "which Lynx will indicate you prefer in requests to http servers.\n" "If a file in that language is available, the server will send it.\n" "Otherwise, the server will send the file in its default language.\n" msgstr "" "preferred_language anger de spr�k som Lynx kommer att ange att du �nskar\n" "ta emot i fr�gor till webbservrar i MIME-notation (t.ex en,fr, kan vara\n" "en kommaseparerad lista i minskande prioriteringsordning).\n" "Om en fil i det spr�ket finns att tillg� kommer servern s�nda den.\n" "Annars kommer servern s�nda filen i sitt standardspr�k.\n" #: src/LYrcFile.c:478 msgid "" "If run_all_execution_links is set \"on\" then all local execution links\n" "will be executed when they are selected.\n" "\n" "WARNING - This is potentially VERY dangerous. Since you may view\n" " information that is written by unknown and untrusted sources\n" " there exists the possibility that Trojan horse links could be\n" " written. Trojan horse links could be written to erase files\n" " or compromise security. This should only be set to \"on\" if\n" " you are viewing trusted source information.\n" msgstr "" "Om run_all_execution_links �r satt till \"on\" kommer alla lokala\n" "programk�rningsl�nkar att k�ras n�r de v�ljs.\n" "\n" "VARNING - Detta kan vara MYCKET farligt. Eftersom du kan visa information\n" " som skrivits av ok�nda och otillf�rlitliga k�llor �r det m�jligt\n" " att trojanska h�stl�nkar kan skrivas. Trojanska h�stl�nkar kan\n" " skrivas s� att de raderar filer eller komprometterar s�kerheten.\n" " Detta b�r endast aktiveras (\"on\") om du visar information fr�n\n" " tillf�rlitliga k�llor.\n" #: src/LYrcFile.c:489 msgid "" "If run_execution_links_on_local_files is set \"on\" then all local\n" "execution links that are found in LOCAL files will be executed when they\n" "are selected. This is different from run_all_execution_links in that\n" "only files that reside on the local system will have execution link\n" "permissions.\n" "\n" "WARNING - This is potentially dangerous. Since you may view\n" " information that is written by unknown and untrusted sources\n" " there exists the possibility that Trojan horse links could be\n" " written. Trojan horse links could be written to erase files\n" " or compromise security. This should only be set to \"on\" if\n" " you are viewing trusted source information.\n" msgstr "" "Om run_all_execution_links_on_local_files �r satt till \"on\" kommer\n" "alla lokala programk�rningsl�nkar i LOKALA filer att k�ras n�r de v�ljs.\n" "Detta skiljer sig fr�n run_all_execution_links i det att endast filer\n" "som ligger p� det lokala systemet har r�ttighet att inneh�lla\n" "programk�rningsl�nkar.\n" "\n" "VARNING - Detta kan vara farligt. Eftersom du kan visa information som\n" " skrivits av ok�nda och otillf�rlitliga k�llor �r det m�jligt att\n" " trojanska h�stl�nkar kan skrivas. Trojanska h�stl�nkar kan\n" " skrivas � att de raderar filer eller komprometterar s�kerheten.\n" " Detta b�r endast aktiveras (\"on\") om du visar information fr�n\n" " tillf�rlitliga k�llor.\n" #: src/LYrcFile.c:507 msgid "" "select_popups specifies whether the OPTIONs in a SELECT block which\n" "lacks a MULTIPLE attribute are presented as a vertical list of radio\n" "buttons or via a popup menu. Note that if the MULTIPLE attribute is\n" "present in the SELECT start tag, Lynx always will create a vertical list\n" "of checkboxes for the OPTIONs. A value of \"on\" will set popup menus\n" "as the default while a value of \"off\" will set use of radio boxes.\n" "The default can be overridden via the -popup command line toggle.\n" msgstr "" "select_popups anger huruvida OPTION i ett SELECT-block som saknar\n" "MULTIPLE-attribut skall visas som en vertikal lista med radioknappar\n" "eller via en popupmuni. Observera att om MULTIPLE-attributet finns i\n" "SELECT-m�rket kommer Lynx alltid skapa en vertikal lista med kryssrutor\n" "f�r varje OPTION. V�rdet \"on\" skapar som f�rval popupmenyer, medan\n" "v�rdet \"off\" v�ljer radioknappar. F�rvalet kan g�s f�rbi via\n" "kommandoradsflaggan -popup.\n" #: src/LYrcFile.c:517 msgid "" "show_color specifies how to set the color mode at startup. A value of\n" "\"never\" will force color mode off (treat the terminal as monochrome)\n" "at startup even if the terminal appears to be color capable. A value of\n" "\"always\" will force color mode on even if the terminal appears to be\n" "monochrome, if this is supported by the library used to build lynx.\n" "A value of \"default\" will yield the behavior of assuming\n" "a monochrome terminal unless color capability is inferred at startup\n" "based on the terminal type, or the -color command line switch is used, or\n" "the COLORTERM environment variable is set. The default behavior always is\n" "used in anonymous accounts or if the \"option_save\" restriction is set.\n" "The effect of the saved value can be overridden via\n" "the -color and -nocolor command line switches.\n" "The mode set at startup can be changed via the \"show color\" option in\n" "the 'o'ptions menu. If the option settings are saved, the \"on\" and\n" "\"off\" \"show color\" settings will be treated as \"default\".\n" msgstr "" "show_color anger hur f�rger st�lls in vid start. V�rdet \"never\" tvingar\n" "f�rg att st�ngas av (terminalen behandlas som vore den monokrom) vid\n" "start, �ven om terminalen verkar vara kapabel till f�rg. V�rdet \"always\"\n" "tvingar f�rg att sl�s p� �ven om terminalen verkar vara monokrom, om det\n" "st�ds av det bibliotek som anv�ndes f�r att bygga lynx. V�rdet \"default\"\n" "g�r att en monokrom terminal antas s�vida inte f�rgst�d anges vid start\n" "baserat p� terminaltyp, eller via kommandoradsflaggan -color, eller om\n" "milj�variabeln COLORTERM �r satt. Detta beteende anv�nds alltid f�r anonyma\n" "konton, eller om \"option_save\"-begr�nsningen �r satt.\n" "Det sparade v�rdet kan f�rbig�s med kommandoradsflaggorna -color och\n" "-nocolor.\n" "L�get som s�tts vid start kan �ndras via inst�llningen \"visa f�rg\" i\n" "alternativmenyn. Om alternativen sparas kommer inst�llningarna \"on\" och\n" "\"off\" att tolkas som \"default\".\n" #: src/LYrcFile.c:534 msgid "" "show_cursor specifies whether to 'hide' the cursor to the right (and\n" "bottom, if possible) of the screen, or to place it to the left of the\n" "current link in documents, or current option in select popup windows.\n" "Positioning the cursor to the left of the current link or option is\n" "helpful for speech or braille interfaces, and when the terminal is\n" "one which does not distinguish the current link based on highlighting\n" "or color. A value of \"on\" will set positioning to the left as the\n" "default while a value of \"off\" will set 'hiding' of the cursor.\n" "The default can be overridden via the -show_cursor command line toggle.\n" msgstr "" "show_cursor anger om mark�ren skall \"g�mmas\" till h�ger (och nederst,\n" "om m�jligt) p� sk�rmen, eller om den skall st�llas till v�nster om\n" "aktuell l�nk i dokument, eller aktuellt alternativ i popupf�nster.\n" "Att st�lla mark�ren till v�nster om den aktuella l�nken eller alternativet\n" "f�renklar f�r tal- och braillegr�nssnitt, och om terminalen inte g�r\n" "skillnad p� den aktuella l�nken med ljus- eller f�rgmarkering. V�rdet\n" "\"on\" placerar mark�ren till v�nster som f�rval, medan \"off\" \"g�mmer\"\n" "mark�ren. F�rvalet kan g�s f�rbi via kommandoradsflaggan -show_cursor.\n" #: src/LYrcFile.c:545 msgid "" "show_dotfiles specifies that the directory listing should include\n" "\"hidden\" (dot) files/directories. If set \"on\", this will be\n" "honored only if enabled via userdefs.h and/or lynx.cfg, and not\n" "restricted via a command line switch. If display of hidden files\n" "is disabled, creation of such files via Lynx also is disabled.\n" msgstr "" "show_dotfiles anger att kataloglistan skall inkludera \"dolda\"\n" "(punkt-)filer/kataloger. Om satt till \"on\" kommer detta endast\n" "att l�sas om det aktiverats via userdefs.h och/eller lynx.cfg, och\n" "inte begr�nsat via en kommandoradsflagga. Om visning av dolda\n" "filer �r deaktiverat kommer skapandet av s�dana filer via Lynx\n" "ocks� att deaktiveras.\n" #: src/LYrcFile.c:556 msgid "" "If sub_bookmarks is not turned \"off\", and multiple bookmarks have\n" "been defined (see below), then all bookmark operations will first\n" "prompt the user to select an active sub-bookmark file. If the default\n" "Lynx bookmark_file is defined (see above), it will be used as the\n" "default selection. When this option is set to \"advanced\", and the\n" "user mode is advanced, the 'v'iew bookmark command will invoke a\n" "statusline prompt instead of the menu seen in novice and intermediate\n" "user modes. When this option is set to \"standard\", the menu will be\n" "presented regardless of user mode.\n" msgstr "" "Om sub_bookmarks inte �r avst�ngt (\"off\"), och multipla bokm�rken\n" "har angetts (se nedan) kommer alla bokm�rkesfunktioner f�rst att be\n" "anv�ndaren ange en aktiv underbokm�rkesfil. Om en standardbokm�rkesfil\n" "har definierats (se bookmark_file ovan), kommer den att anv�ndas som\n" "f�rval. N�r detta alternativ �r satt till \"advanced\", och anv�ndarl�get\n" "�r avancerat, kommer kommandot visa bokm�rke att visa en statusradsfr�ga\n" "ist�llet f�r den meny som visas i anv�ndarl�gets nyb�rjar- och\n" "mellanniv�er. Om detta alternativ s�tts till \"standard\" visas menyn\n" "oavsett anv�ndarl�ge.\n" #: src/LYrcFile.c:570 msgid "" "user_mode specifies the users level of knowledge with Lynx. The\n" "default is \"NOVICE\" which displays two extra lines of help at the\n" "bottom of the screen to aid the user in learning the basic Lynx\n" "commands. Set user_mode to \"INTERMEDIATE\" to turn off the extra info.\n" "Use \"ADVANCED\" to see the URL of the currently selected link at the\n" "bottom of the screen.\n" msgstr "" "user_mode anger anv�ndarens niv� av kunskap om Lynx. F�rvalet\n" "\"NOVICE\" (nyb�rjare) visar tv� extra rader med hj�lp nederst p�\n" "sk�rmen f�r att hj�lpa anv�ndaren l�ra de grundl�ggande kommandona\n" "i Lynx. S�tt user_mode till \"INTERMEDIATE\" (mellanniv�) f�r att\n" "st�nga av extrainformationen. Anv�nd \"ADVANCED\" f�r att se adressen\n" "f�r den markerade l�nken nederst p� sk�rmen.\n" #: src/LYrcFile.c:579 msgid "" "If verbose_images is \"on\", lynx will print the name of the image\n" "source file in place of [INLINE], [LINK] or [IMAGE]\n" "See also VERBOSE_IMAGES in lynx.cfg\n" msgstr "" "Om verbose_images �r \"on\" skriver lynx namnet p� bildens k�llfil\n" "ist�llet f�r [INLINE], [LINK] eller [IMAGE]\n" "Se �ven VERBOSE_IMAGES i lynx.cfg\n" #: src/LYrcFile.c:584 msgid "" "If vi_keys is set to \"on\", then the normal VI movement keys:\n" " j = down k = up\n" " h = left l = right\n" "will be enabled. These keys are only lower case.\n" "Capital 'H', 'J' and 'K will still activate help, jump shortcuts,\n" "and the keymap display, respectively.\n" msgstr "" "Om vi_keys s�tts till \"on\" kommer VI-f�rflyttningstangeter att aktiveras:\n" " j = ned k = upp\n" " h = v�nster l = h�ger\n" "Dessa tangenter g�ller bara som gemener.\n" "Versala \"H\", \"J\" och \"K\" aktiverar hj�lp, hoppgenv�gar respektiva\n" "tangentbordsinst�llningarna.\n" #: src/LYrcFile.c:592 msgid "" "The visited_links setting controls how Lynx organizes the information\n" "in the Visited Links Page.\n" msgstr "" "Inst�llningen visited_links anger hur Lynx organiserar informationen\n" "p� sidan Anv�nda l�nkar.\n" #: src/LYrcFile.c:810 msgid "" "If keypad_mode is set to \"NUMBERS_AS_ARROWS\", then the numbers on\n" "your keypad when the numlock is on will act as arrow keys:\n" " 8 = Up Arrow\n" " 4 = Left Arrow 6 = Right Arrow\n" " 2 = Down Arrow\n" "and the corresponding keyboard numbers will act as arrow keys,\n" "regardless of whether numlock is on.\n" msgstr "" "Om keypad_mode s�tts till \"NUMBERS_AS_ARROWS\" fungerar siffrorna p�\n" "ditt numeriska tangentbord som piltangeter n�r NumLock �r aktivt:\n" " 8 = Upppil\n" " 4 = V�nsterpil 6 = H�gerpil\n" " 2 = Nedpil\n" "och motsvarande siffertangenter p� tangentbordet fungerar som\n" "piltangetner, oavsett om NumLock �r aktivt eller inte.\n" #: src/LYrcFile.c:819 msgid "" "If keypad_mode is set to \"LINKS_ARE_NUMBERED\", then numbers will\n" "appear next to each link and numbers are used to select links.\n" msgstr "" "Om keypad_mode s�tts till \"LINKS_ARE_NUMBERED\" kommer siffror\n" "att visas vid varje l�nk, och siffror anv�nds f�r att v�lja l�nk.\n" #: src/LYrcFile.c:823 msgid "" "If keypad_mode is set to \"LINKS_AND_FORM_FIELDS_ARE_NUMBERED\", then\n" "numbers will appear next to each link and visible form input field.\n" "Numbers are used to select links, or to move the \"current link\" to a\n" "form input field or button. In addition, options in popup menus are\n" "indexed so that the user may type an option number to select an option in\n" "a popup menu, even if the option isn't visible on the screen. Reference\n" "lists and output from the list command also enumerate form inputs.\n" msgstr "" "Om keypad_mode s�tts till \"LINKS_AND_FORM_FIELDS_ARE_NUMBERED\" kommer\n" "siffror att visas vid varje l�nk och synligt formul�rindataf�lt.\n" "Siffror anv�nds f�r att v�lja l�nkar, eller f�r att flytta \"aktuell\n" "l�nk\" till ett formul�rindataf�lt eller -knapp. Dessutom kommer\n" "alternativ i popupmenyer att numreras s� att anv�ndaren kan skriva in\n" "ett alternativnummer f�r att v�lja ett alternativ i popupmenyn, �ven om\n" "alternativet inte �r synligt p� sk�rmen. Referenslistor och utdata fr�n\n" "listkommandot kommer �ven de att numrera formul�rindataf�lt.\n" #: src/LYrcFile.c:832 msgid "" "NOTE: Some fixed format documents may look disfigured when\n" "\"LINKS_ARE_NUMBERED\" or \"LINKS_AND_FORM_FIELDS_ARE_NUMBERED\" are\n" "enabled.\n" msgstr "" "OBS: Vissa dokument med fixerat format kan se trasiga ut n�r\n" "\"LINKS_ARE_NUMBERED\" eller \"LINKS_AND_FORM_FILES_ARE_NUMBERED\" �r\n" "aktiva.\n" #: src/LYrcFile.c:864 msgid "" "Lynx User Defaults File\n" "\n" "This file contains options saved from the Lynx Options Screen (normally\n" "with the '>' key). There is normally no need to edit this file manually,\n" "since the defaults here can be controlled from the Options Screen, and the\n" "next time options are saved from the Options Screen this file will be\n" "completely rewritten. You have been warned...\n" "If you are looking for the general configuration file - it is normally\n" "called lynx.cfg, and it has different content and a different format.\n" "It is not this file.\n" msgstr "" "Lynx anv�ndarinst�llningsfil\n" "\n" "Denna fil inneh�ller alternativ som sparats fr�n Lynx' alternativmeny\n" "vanligtvis med tangenten \">\"). Vanligtvis beh�ver du inte redigera denna\n" "fil manuellt, eftersom dessa inst�llningar kan n�s fr�n alternativmenyn,\n" "och n�sta g�ng alternativen lagras fr�n alternativmenyn kommer denna fil\n" "helt att skrivas �ver. Du har varnats...\n" "Om du letar efter den generella konfigurationsfilen heter den normalt\n" "lynx.cfg, och har annat inneh�ll och ett annat format. Det �r inte denna\n" "fil.\n" #~ msgid "KB" #~ msgstr "KB" #~ msgid "Remove '%s' and all of its contents?" #~ msgstr "Ta bort \"%s\" och allt dess inneh�ll?" #~ msgid "Remove directory and all of its contents?" #~ msgstr "Ta bort katalog och allt dess inneh�ll?" #~ msgid "Short read from file, problem?" #~ msgstr "Filen tog slut tidigt, problem?" #~ msgid "Unable to open file management menu file." #~ msgstr "Kan inte �ppna filhanteringsmenyfil." #~ msgid "create %s" #~ msgstr "skapa %s" #~ msgid "Ignoring invalid HOME" #~ msgstr "Ignorerar ogiltig HOME" #~ msgid "(From Cookie Jar)" #~ msgstr "(Fr�n kakburk)" #~ msgid "" #~ "partial_thres specifies the number of lines Lynx should download and render\n" #~ "before we redraw the screen in Partial Display logic\n" #~ "e.g., partial_thres=2\n" #~ "would have Lynx redraw every 2 lines that it renders\n" #~ "partial_thres=-1 would use the entire screensize\n" #~ msgstr "" #~ "partial_thres anger antalet rader Lynx skall h�mta och tolka innan sk�rmen\n" #~ "ritas om. partial_thres=2 g�r att Lynx ritar om sk�rmen f�r varannan rad\n" #~ "som tolkas. partial_thres=-1 anv�nder sk�rmstorleken\n" #~ msgid "Comment request cancelled!!!" #~ msgstr "Kommentaren avbruten!!!" #~ msgid "You are not allowed to goto \"file:\" URLs" #~ msgstr "Du till�ts inte g� till \"file:\"-adresser" #~ msgid "You are not allowed to goto \"finger:\" URLs" #~ msgstr "Du till�ts inte g� till \"finger:\"-adresser" #~ msgid "You are not allowed to goto \"ftp:\" URLs" #~ msgstr "Du till�ts inte g� till \"ftp:\"-adresser" #~ msgid "You are not allowed to goto \"gopher:\" URLs" #~ msgstr "Du till�ts inte g� till \"gopher:\"-adresser" #~ msgid "You are not allowed to goto \"http:\" URLs" #~ msgstr "Du till�ts inte g� till \"http:\"-adresser" #~ msgid "You are not allowed to goto \"https:\" URLs" #~ msgstr "Du till�ts inte g� till \"https:\"-adresser" #~ msgid "You are not allowed to goto \"lynxcgi:\" URLs" #~ msgstr "Du till�ts inte g� till \"lynxcgi:\"-adresser" #~ msgid "You are not allowed to goto \"lynxexec:\" URLs" #~ msgstr "Du till�ts inte g� till \"lynxexec:\"-adresser" #~ msgid "You are not allowed to goto \"lynxprog:\" URLs" #~ msgstr "Du till�ts inte g� till \"lynxprog:\"-adresser" #~ msgid "You are not allowed to goto \"mailto:\" URLs" #~ msgstr "Du till�ts inte g� till \"mailto:\"-adresser" #~ msgid "You are not allowed to goto \"news:\" URLs" #~ msgstr "Du till�ts inte g� till \"news:\"-adresser" #~ msgid "You are not allowed to goto \"nntp:\" URLs" #~ msgstr "Du till�ts inte g� till \"nntp:\"-adresser" #~ msgid "You are not allowed to goto \"rlogin:\" URLs" #~ msgstr "Du till�ts inte g� till \"rlogin:\"-adresser" #~ msgid "You are not allowed to goto \"snews:\" URLs" #~ msgstr "Du till�ts inte g� till \"snews:\"-adresser" #~ msgid "You are not allowed to goto \"telnet:\" URLs" #~ msgstr "Du till�ts inte g� till \"telnet:\"-adresser" #~ msgid "You are not allowed to goto \"tn3270:\" URLs" #~ msgstr "Du till�ts inte g� till \"tn3270:\"-adresser" #~ msgid "You are not allowed to goto \"wais:\" URLs" #~ msgstr "Du till�ts inte g� till \"wais:\"-adresser" #~ msgid "This special URL is not allowed as a goto!" #~ msgstr "Denna specialadress till�ts inte g�s till!" #~ msgid "Option choice (or page) number: " #~ msgstr "V�lj alternativ- (eller sid-)nummer: " #~ msgid "Choice number %d already is current." #~ msgstr "Val %d �r redan markerat." #~ msgid "You are already at the end of this choice list." #~ msgstr "Du �r redan i slutet av vallistan." #~ msgid "You are already at the beginning of this choice list." #~ msgstr "Du �r redan i b�rjan av vallistan." #~ msgid "You are already at page %d of this choice list." #~ msgstr "Du �r redan p� sida %d i vallistan." #~ msgid "You have entered an invalid choice number." #~ msgstr "Du har angett ett felaktigt valnummer." #~ msgid "Read %ld of %ld %s of data" #~ msgstr "L�ste %ld av %ld%s data" #~ msgid "Read %ld %s of data" #~ msgstr "L�ste %ld%s data" #~ msgid ", %ld %s/sec." #~ msgstr ", %ld%s/s" #~ msgid "Lynx ver. %s" #~ msgstr "Lynx ver. %s" #~ msgid "Personal Name: " #~ msgstr "Namn: " #~ msgid "Inactive text input, activate to edit (e.g., press ENTER)" #~ msgstr "Inaktiv textindata, aktivera f�r att redigera (tryck Enter)" #~ msgid "Left mouse button or return to select, arrow keys to scroll." #~ msgstr "V�nster musknapp eller Enter v�ljer, piltangenter rullar."