about summary refs log tree commit diff stats
path: root/032array.cc
blob: e9aef14c5a7d8b2be3c07fd524356879a33ec288 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
//: Arrays contain a variable number of elements of the same type. Their value
//: starts with the length of the array.
//:
//: You can create arrays of containers, but containers can only contain
//: elements of a fixed size, so you can't create containers containing arrays.
//: Create containers containing addresses to arrays instead.

//: Tests in this layer often explicitly setup memory before reading it as an
//: array. Don't do this in general. I'm tagging exceptions with /raw to
//: avoid warnings.
:(scenario copy_array)
# Arrays can be copied around with a single instruction just like numbers,
# no matter how large they are.
recipe main [
  1:number <- copy 3:literal  # length
  2:number <- copy 14:literal
  3:number <- copy 15:literal
  4:number <- copy 16:literal
  5:array:number <- copy 1:array:number/raw  # unsafe
]
+mem: storing 3 in location 5
+mem: storing 14 in location 6
+mem: storing 15 in location 7
+mem: storing 16 in location 8

:(scenario copy_array_indirect)
recipe main [
  1:number <- copy 3:literal  # length
  2:number <- copy 14:literal
  3:number <- copy 15:literal
  4:number <- copy 16:literal
  5:address:array:number <- copy 1:literal
  6:array:number <- copy 5:address:array:number/deref
]
+mem: storing 3 in location 6
+mem: storing 14 in location 7
+mem: storing 15 in location 8
+mem: storing 16 in location 9

//: disable the size mismatch check since the destination array need not be initialized
:(after "bool size_mismatch(const reagent& x, const vector<double>& data)")
if (x.types.at(0) == Type_ordinal["array"]) return false;
:(after "long long int size_of(const reagent& r)")
  if (r.types.at(0) == Type_ordinal["array"]) {
    assert(SIZE(r.types) > 1);
    // skip the 'array' type to get at the element type
    return 1 + Memory[r.value]*size_of(array_element(r.types));
  }

//:: To access elements of an array, use 'index'

:(scenario index)
recipe main [
  1:number <- copy 3:literal  # length
  2:number <- copy 14:literal
  3:number <- copy 15:literal
  4:number <- copy 16:literal
  5:number <- index 1:array:number/raw, 0:literal  # unsafe
]
+mem: storing 14 in location 5

:(scenario index_direct_offset)
recipe main [
  1:number <- copy 3:literal  # length
  2:number <- copy 14:literal
  3:number <- copy 15:literal
  4:number <- copy 16:literal
  5:number <- copy 0:literal
  6:number <- index 1:array:number/raw, 5:number  # unsafe
]
+mem: storing 14 in location 6

:(before "End Primitive Recipe Declarations")
INDEX,
:(before "End Primitive Recipe Numbers")
Recipe_ordinal["index"] = INDEX;
:(before "End Primitive Recipe Implementations")
case INDEX: {
//?   if (Trace_stream) Trace_stream->dump_layer = "run"; //? 1
  reagent base = canonize(current_instruction().ingredients.at(0));
//?   trace(Primitive_recipe_depth, "run") << "ingredient 0 after canonize: " << base.to_string(); //? 1
  long long int base_address = base.value;
  assert(base.types.at(0) == Type_ordinal["array"]);
  reagent offset = canonize(current_instruction().ingredients.at(1));
//?   trace(Primitive_recipe_depth, "run") << "ingredient 1 after canonize: " << offset.to_string(); //? 1
  vector<double> offset_val(read_memory(offset));
  vector<type_ordinal> element_type = array_element(base.types);
//?   trace(Primitive_recipe_depth, "run") << "offset: " << offset_val.at(0); //? 1
//?   trace(Primitive_recipe_depth, "run") << "size of elements: " << size_of(element_type); //? 1
  if (offset_val.at(0) < 0 || offset_val.at(0) >= Memory[base_address]) {
    raise << current_recipe_name() << ": invalid index " << offset_val.at(0) << '\n';
    products.resize(1);
    break;
  }
  long long int src = base_address + 1 + offset_val.at(0)*size_of(element_type);
  trace(Primitive_recipe_depth, "run") << "address to copy is " << src;
  trace(Primitive_recipe_depth, "run") << "its type is " << Type[element_type.at(0)].name;
  reagent tmp;
  tmp.set_value(src);
  copy(element_type.begin(), element_type.end(), inserter(tmp.types, tmp.types.begin()));
  products.push_back(read_memory(tmp));
  break;
}

:(code)
vector<type_ordinal> array_element(const vector<type_ordinal>& types) {
  return vector<type_ordinal>(++types.begin(), types.end());
}

:(scenario index_indirect)
recipe main [
  1:number <- copy 3:literal  # length
  2:number <- copy 14:literal
  3:number <- copy 15:literal
  4:number <- copy 16:literal
  5:address:array:number <- copy 1:literal
  6:number <- index 5:address:array:number/deref, 1:literal
]
+mem: storing 15 in location 6

:(scenario index_out_of_bounds)
% Hide_warnings = true;
recipe main [
  1:number <- copy 3:literal  # 3 points
  2:number <- copy 14:literal
  3:number <- copy 15:literal
  4:number <- copy 16:literal
  5:number <- copy 14:literal
  6:number <- copy 15:literal
  7:number <- copy 16:literal
  8:address:array:point <- copy 1:literal
  index 8:address:array:point/deref, 4:literal  # less than size of array in locations, but larger than its length in elements
]
+warn: main: invalid index 4

:(scenario index_out_of_bounds2)
% Hide_warnings = true;
recipe main [
  1:number <- copy 3:literal  # 3 points
  2:number <- copy 14:literal
  3:number <- copy 15:literal
  4:number <- copy 16:literal
  5:number <- copy 14:literal
  6:number <- copy 15:literal
  7:number <- copy 16:literal
  8:address:array:point <- copy 1:literal
  index 8:address:array:point/deref, -1:literal
]
+warn: main: invalid index -1

//:: To write to elements of containers, you need their address.

:(scenario index_address)
recipe main [
  1:number <- copy 3:literal  # length
  2:number <- copy 14:literal
  3:number <- copy 15:literal
  4:number <- copy 16:literal
  5:number <- index-address 1:array:number/raw, 0:literal  # unsafe
]
+mem: storing 2 in location 5

:(before "End Primitive Recipe Declarations")
INDEX_ADDRESS,
:(before "End Primitive Recipe Numbers")
Recipe_ordinal["index-address"] = INDEX_ADDRESS;
:(before "End Primitive Recipe Implementations")
case INDEX_ADDRESS: {
  reagent base = canonize(current_instruction().ingredients.at(0));
  long long int base_address = base.value;
  assert(base.types.at(0) == Type_ordinal["array"]);
  reagent offset = canonize(current_instruction().ingredients.at(1));
  vector<double> offset_val(read_memory(offset));
  vector<type_ordinal> element_type = array_element(base.types);
  if (offset_val.at(0) < 0 || offset_val.at(0) >= Memory[base_address]) {
    raise << current_recipe_name() << ": invalid index " << offset_val.at(0) << '\n';
    products.resize(1);
    break;
  }
  long long int result = base_address + 1 + offset_val.at(0)*size_of(element_type);
  products.resize(1);
  products.at(0).push_back(result);
  break;
}

:(scenario index_address_out_of_bounds)
% Hide_warnings = true;
recipe main [
  1:number <- copy 3:literal  # 3 points
  2:number <- copy 14:literal
  3:number <- copy 15:literal
  4:number <- copy 16:literal
  5:number <- copy 14:literal
  6:number <- copy 15:literal
  7:number <- copy 16:literal
  8:address:array:point <- copy 1:literal
  index-address 8:address:array:point/deref, 4:literal  # less than size of array in locations, but larger than its length in elements
]
+warn: main: invalid index 4

:(scenario index_address_out_of_bounds2)
% Hide_warnings = true;
recipe main [
  1:number <- copy 3:literal  # 3 points
  2:number <- copy 14:literal
  3:number <- copy 15:literal
  4:number <- copy 16:literal
  5:number <- copy 14:literal
  6:number <- copy 15:literal
  7:number <- copy 16:literal
  8:address:array:point <- copy 1:literal
  index-address 8:address:array:point/deref, -1:literal
]
+warn: main: invalid index -1

//:: compute the length of an array

:(scenario array_length)
recipe main [
  1:number <- copy 3:literal  # length
  2:number <- copy 14:literal
  3:number <- copy 15:literal
  4:number <- copy 16:literal
  5:number <- length 1:array:number/raw  # unsafe
]
+mem: storing 3 in location 5

:(before "End Primitive Recipe Declarations")
LENGTH,
:(before "End Primitive Recipe Numbers")
Recipe_ordinal["length"] = LENGTH;
:(before "End Primitive Recipe Implementations")
case LENGTH: {
  reagent x = canonize(current_instruction().ingredients.at(0));
  if (x.types.at(0) != Type_ordinal["array"]) {
    raise << "tried to calculate length of non-array " << x.to_string() << '\n';
    break;
  }
  products.resize(1);
  products.at(0).push_back(Memory[x.value]);
  break;
}
BLED gettext("Rlogin access is disabled!") #define FTP_DISABLED gettext("Ftp access is disabled!") #define NO_REFS_FROM_DOC gettext("There are no references from this document.") #define NO_VISIBLE_REFS_FROM_DOC gettext("There are only hidden links from this document.") #ifdef VMS #define CANNOT_OPEN_COMFILE gettext("Unable to open command file.") #endif /* VMS */ #define NEWS_POST_CANCELLED gettext("News Post Cancelled!!!") #define SPAWNING_EDITOR_FOR_NEWS \ gettext("Spawning your selected editor to edit news message") #define POST_MSG_PROMPT gettext("Post this message?") #define APPEND_SIG_FILE gettext("Append '%s'?") #define POSTING_TO_NEWS gettext("Posting to newsgroup(s)...") #ifdef VMS #define HAVE_UNREAD_MAIL_MSG gettext("*** You have unread mail. ***") #else #define HAVE_MAIL_MSG gettext("*** You have mail. ***") #endif /* VMS */ #define HAVE_NEW_MAIL_MSG gettext("*** You have new mail. ***") #define FILE_INSERT_CANCELLED gettext("File insert cancelled!!!") #define MEMORY_EXHAUSTED_FILE gettext("Not enough memory for file!") #define FILE_CANNOT_OPEN_R gettext("Can't open file for reading.") #define FILE_DOES_NOT_EXIST gettext("File does not exist.") #define FILE_DOES_NOT_EXIST_RE gettext("File does not exist - reenter or cancel:") #define FILE_NOT_READABLE gettext("File is not readable.") #define FILE_NOT_READABLE_RE gettext("File is not readable - reenter or cancel:") #define FILE_INSERT_0_LENGTH gettext("Nothing to insert - file is 0-length.") #define SAVE_REQUEST_CANCELLED gettext("Save request cancelled!!!") #define MAIL_REQUEST_CANCELLED gettext("Mail request cancelled!!!") #define CONFIRM_MAIL_SOURCE_PREPARSED \ gettext("Viewing preparsed source. Are you sure you want to mail it?") #define PLEASE_WAIT gettext("Please wait...") #define MAILING_FILE gettext("Mailing file. Please wait...") #define MAIL_REQUEST_FAILED gettext("ERROR - Unable to mail file") #define CONFIRM_LONG_SCREEN_PRINT \ gettext("File is %d screens long. Are you sure you want to print?") #define PRINT_REQUEST_CANCELLED gettext("Print request cancelled!!!") #define PRESS_RETURN_TO_BEGIN gettext("Press <return> to begin: ") #define PRESS_RETURN_TO_FINISH gettext("Press <return> to finish: ") #define CONFIRM_LONG_PAGE_PRINT \ gettext("File is %d pages long. Are you sure you want to print?") #define CHECK_PRINTER \ gettext("Be sure your printer is on-line. Press <return> to start printing:") #define FILE_ALLOC_FAILED gettext("ERROR - Unable to allocate file space!!!") #define UNABLE_TO_OPEN_TEMPFILE gettext("Unable to open tempfile") #define UNABLE_TO_OPEN_PRINTOP_FILE gettext("Unable to open print options file") #define PRINTING_FILE gettext("Printing file. Please wait...") #define MAIL_ADDRESS_PROMPT gettext("Please enter a valid internet mail address: ") #define PRINTER_MISCONF_ERROR gettext("ERROR! - printer is misconfigured!") #define FAILED_MAP_POST_REQUEST gettext("Image map from POST response not available!") #define MISDIRECTED_MAP_REQUEST gettext("Misdirected client-side image MAP request!") #define MAP_NOT_ACCESSIBLE gettext("Client-side image MAP is not accessible!") #define MAPS_NOT_AVAILABLE gettext("No client-side image MAPs are available!") #define MAP_NOT_AVAILABLE gettext("Client-side image MAP is not available!") #ifndef NO_OPTION_MENU #define OPTION_SCREEN_NEEDS_24 \ gettext("Screen height must be at least 24 lines for the Options menu!") #define OPTION_SCREEN_NEEDS_23 \ gettext("Screen height must be at least 23 lines for the Options menu!") #define OPTION_SCREEN_NEEDS_22 \ gettext("Screen height must be at least 22 lines for the Options menu!") #endif /* !NO_OPTION_MENU */ #define NEED_ADVANCED_USER_MODE gettext("That key requires Advanced User mode.") #define CONTENT_TYPE_MSG gettext("Content-type: %s") #define COMMAND_PROMPT gettext("Command: ") #define COMMAND_UNKNOWN gettext("Unknown or ambiguous command") #define VERSION_SEGMENT gettext(" Version ") #define FIRST_SEGMENT gettext(" first") #define GUESSING_SEGMENT gettext(", guessing...") #define PERMISSIONS_SEGMENT gettext("Permissions for ") #define SELECT_SEGMENT gettext("Select ") #define CAP_LETT_SEGMENT gettext("capital letter") #define OF_OPT_LINE_SEGMENT gettext(" of option line,") #define TO_SAVE_SEGMENT gettext(" to save,") #define TO_SEGMENT gettext(" to ") #define OR_SEGMENT gettext(" or ") #define INDEX_SEGMENT gettext(" index") #define TO_RETURN_SEGMENT gettext(" to return to Lynx.") #define ACCEPT_CHANGES gettext("Accept Changes") #define RESET_CHANGES gettext("Reset Changes") #define CANCEL_CHANGES gettext("Left Arrow cancels changes") #define SAVE_OPTIONS gettext("Save options to disk") #define ACCEPT_DATA gettext("Hit RETURN to accept entered data.") #define ACCEPT_DATA_OR_DEFAULT \ gettext("Hit RETURN to accept entered data. Delete data to invoke the default.") #define VALUE_ACCEPTED gettext("Value accepted!") #define VALUE_ACCEPTED_WARNING_X \ gettext("Value accepted! -- WARNING: Lynx is configured for XWINDOWS!") #define VALUE_ACCEPTED_WARNING_NONX \ gettext("Value accepted! -- WARNING: Lynx is NOT configured for XWINDOWS!") #define EDITOR_LOCKED gettext("You are not allowed to change which editor to use!") #define FAILED_TO_SET_DISPLAY gettext("Failed to set DISPLAY variable!") #define FAILED_CLEAR_SET_DISPLAY gettext("Failed to clear DISPLAY variable!") #define BOOKMARK_CHANGE_DISALLOWED \ gettext("You are not allowed to change the bookmark file!") #define COLOR_TOGGLE_DISABLED gettext("Terminal does not support color") #define COLOR_TOGGLE_DISABLED_FOR_TERM gettext("Your '%s' terminal does not support color.") #define DOTFILE_ACCESS_DISABLED gettext("Access to dot files is disabled!") #define UA_NO_LYNX_WARNING \ gettext("User-Agent string does not contain \"Lynx\" or \"L_y_n_x\"") #define UA_PLEASE_USE_LYNX \ gettext("Use \"L_y_n_x\" or \"Lynx\" in User-Agent, or it looks like intentional deception!") #define UA_CHANGE_DISABLED \ gettext("Changing of the User-Agent string is disabled!") #define CHANGE_OF_SETTING_DISALLOWED \ gettext("You are not allowed to change this setting.") #define SAVING_OPTIONS gettext("Saving Options...") #define OPTIONS_SAVED gettext("Options saved!") #define OPTIONS_NOT_SAVED gettext("Unable to save Options!") #define R_TO_RETURN_TO_LYNX gettext(" 'r' to return to Lynx ") #define SAVE_OR_R_TO_RETURN_TO_LYNX gettext(" '>' to save, or 'r' to return to Lynx ") #define ANY_KEY_CHANGE_RET_ACCEPT \ gettext("Hit any key to change value; RETURN to accept.") #define ERROR_UNCOMPRESSING_TEMP gettext("Error uncompressing temporary file!") #define UNSUPPORTED_URL_SCHEME gettext("Unsupported URL scheme!") #define UNSUPPORTED_DATA_URL gettext("Unsupported data: URL! Use SHOWINFO, for now.") #define TOO_MANY_REDIRECTIONS gettext("Redirection limit of 10 URL's reached.") #define ILLEGAL_REDIRECTION_URL gettext("Illegal redirection URL received from server!") #define SERVER_ASKED_FOR_REDIRECTION \ gettext("Server asked for %d redirection of POST content to") #define REDIRECTION_WITH_BAD_LOCATION "Got redirection with a bad Location header." #define REDIRECTION_WITH_NO_LOCATION "Got redirection with no Location header." #define PROCEED_GET_CANCEL gettext("P)roceed, use G)ET or C)ancel ") #define PROCEED_OR_CANCEL gettext("P)roceed, or C)ancel ") #define ADVANCED_POST_GET_REDIRECT \ gettext("Redirection of POST content. P)roceed, see U)RL, use G)ET or C)ancel") #define ADVANCED_POST_REDIRECT \ gettext("Redirection of POST content. P)roceed, see U)RL, or C)ancel") #define CONFIRM_POST_RESUBMISSION \ gettext("Document from Form with POST content. Resubmit?") #define CONFIRM_POST_RESUBMISSION_TO \ gettext("Resubmit POST content to %s ?") #define CONFIRM_POST_LIST_RELOAD \ gettext("List from document with POST data. Reload %s ?") #define CONFIRM_POST_DOC_HEAD \ gettext("Document from POST action, HEAD may not be understood. Proceed?") #define CONFIRM_POST_LINK_HEAD \ gettext("Form submit action is POST, HEAD may not be understood. Proceed?") #define CONFIRM_WO_PASSWORD gettext("Proceed without a username and password?") #define CONFIRM_PROCEED gettext("Proceed (%s)?") #define CANNOT_POST gettext("Cannot POST to this host.") #define IGNORED_POST gettext("POST not supported for this URL - ignoring POST data!") #define DISCARDING_POST_DATA gettext("Discarding POST data...") #define WILL_NOT_RELOAD_DOC gettext("Document will not be reloaded!") #define LOCATION_HEADER gettext("Location: ") #define STRING_NOT_FOUND gettext("'%s' not found!") #define MULTIBOOKMARKS_DEFAULT gettext("Default Bookmark File") #define MULTIBOOKMARKS_SMALL gettext("Screen too small! (8x35 min)") #define MULTIBOOKMARKS_SAVE gettext("Select destination or ^G to Cancel: ") #define MULTIBOOKMARKS_SELECT \ gettext("Select subbookmark, '=' for menu, or ^G to cancel: ") #define MULTIBOOKMARKS_SELF \ gettext("Reproduce L)ink in this bookmark file or C)ancel? (l,c): ") #define MULTIBOOKMARKS_DISALLOWED gettext("Multiple bookmark support is not available.") #define MULTIBOOKMARKS_SHEAD_MASK gettext(" Select Bookmark (screen %d of %d)") #define MULTIBOOKMARKS_SHEAD gettext(" Select Bookmark") #define MULTIBOOKMARKS_EHEAD_MASK \ gettext("Editing Bookmark DESCRIPTION and FILEPATH (%d of 2)") #define MULTIBOOKMARKS_EHEAD \ gettext(" Editing Bookmark DESCRIPTION and FILEPATH") #define MULTIBOOKMARKS_LETTER gettext("Letter: ") #ifdef VMS #define USE_PATH_OFF_HOME \ gettext("Use a filepath off your login directory in SHELL syntax!") #else #define USE_PATH_OFF_HOME gettext("Use a filepath off your home directory!") #endif /* VMS */ #define MAXLINKS_REACHED \ gettext("Maximum links per page exceeded! Use half-page or two-line scrolling.") #define VISITED_LINKS_EMPTY gettext("No previously visited links available!") #define MEMORY_EXHAUSTED_ABORT gettext("Memory exhausted! Program aborted!") #define MEMORY_EXHAUSTED_ABORTING gettext("Memory exhausted! Aborting...") #define NOT_ENOUGH_MEMORY gettext("Not enough memory!") #define DFM_NOT_AVAILABLE gettext("Directory/File Manager not available") #define BASE_NOT_ABSOLUTE gettext("HREF in BASE tag is not an absolute URL.") #define LOCATION_NOT_ABSOLUTE gettext("Location URL is not absolute.") #define REFRESH_URL_NOT_ABSOLUTE gettext("Refresh URL is not absolute.") #define SENDING_MESSAGE_WITH_BODY_TO \ gettext("You are sending a message with body to:\n ") #define SENDING_COMMENT_TO gettext("You are sending a comment to:\n ") #define WITH_COPY_TO gettext("\n With copy to:\n ") #define WITH_COPIES_TO gettext("\n With copies to:\n ") #define CTRL_G_TO_CANCEL_SEND \ gettext("\n\nUse Ctrl-G to cancel if you do not want to send a message\n") #define ENTER_NAME_OR_BLANK \ gettext("\n Please enter your name, or leave it blank to remain anonymous\n") #define ENTER_MAIL_ADDRESS_OR_OTHER \ gettext("\n Please enter a mail address or some other\n") #define MEANS_TO_CONTACT_FOR_RESPONSE \ gettext(" means to contact you, if you desire a response.\n") #define ENTER_SUBJECT_LINE gettext("\n Please enter a subject line.\n") #define ENTER_ADDRESS_FOR_CC \ gettext("\n Enter a mail address for a CC of your message.\n") #define BLANK_FOR_NO_COPY gettext(" (Leave blank if you don't want a copy.)\n") #define REVIEW_MESSAGE_BODY gettext("\n Please review the message body:\n\n") #define RETURN_TO_CONTINUE gettext("\nPress RETURN to continue: ") #define RETURN_TO_CLEANUP gettext("\nPress RETURN to clean up: ") #define CTRL_U_TO_ERASE gettext(" Use Control-U to erase the default.\n") #define ENTER_MESSAGE_BELOW gettext("\n Please enter your message below.") #define ENTER_PERIOD_WHEN_DONE_A \ gettext("\n When you are done, press enter and put a single period (.)") #define ENTER_PERIOD_WHEN_DONE_B \ gettext("\n on a line and press enter again.") /* Cookies messages */ #define ADVANCED_COOKIE_CONFIRMATION \ gettext("%s cookie: %.*s=%.*s Allow? (Y/N/Always/neVer)") #define INVALID_COOKIE_DOMAIN_CONFIRMATION \ gettext("Accept invalid cookie domain=%s for '%s'?") #define INVALID_COOKIE_PATH_CONFIRMATION \ gettext("Accept invalid cookie path=%s as a prefix of '%s'?") #define ALLOWING_COOKIE gettext("Allowing this cookie.") #define REJECTING_COOKIE gettext("Rejecting this cookie.") #define COOKIE_JAR_IS_EMPTY gettext("The Cookie Jar is empty.") #define CACHE_JAR_IS_EMPTY gettext("The Cache Jar is empty.") #define ACTIVATE_TO_GOBBLE \ gettext("Activate links to gobble up cookies or entire domains,") #define OR_CHANGE_ALLOW gettext("or to change a domain's 'allow' setting.") #define COOKIES_NEVER_ALLOWED gettext("(Cookies never allowed.)") #define COOKIES_ALWAYS_ALLOWED gettext("(Cookies always allowed.)") #define COOKIES_ALLOWED_VIA_PROMPT gettext("(Cookies allowed via prompt.)") #define COOKIES_READ_FROM_FILE gettext("(Persistent Cookies.)") #define NO_TITLE gettext("(No title.)") #define NO_NAME gettext("(No name.)") #define NO_VALUE gettext("(No value.)") #define NO_NOTHING gettext("None") #define END_OF_SESSION gettext("(End of session.)") #define DELETE_COOKIE_CONFIRMATION gettext("Delete this cookie?") #define COOKIE_EATEN gettext("The cookie has been eaten!") #define DELETE_EMPTY_DOMAIN_CONFIRMATION gettext("Delete this empty domain?") #define DOMAIN_EATEN gettext("The domain has been eaten!") #define DELETE_COOKIES_SET_ALLOW_OR_CANCEL \ gettext("D)elete domain's cookies, set allow A)lways/P)rompt/neV)er, or C)ancel? ") #define DELETE_DOMAIN_SET_ALLOW_OR_CANCEL \ gettext("D)elete domain, set allow A)lways/P)rompt/neV)er, or C)ancel? ") #define DOMAIN_COOKIES_EATEN gettext("All cookies in the domain have been eaten!") #define ALWAYS_ALLOWING_COOKIES gettext("'A'lways allowing from domain '%s'.") #define NEVER_ALLOWING_COOKIES gettext("ne'V'er allowing from domain '%s'.") #define PROMPTING_TO_ALLOW_COOKIES gettext("'P'rompting to allow from domain '%s'.") #define DELETE_ALL_COOKIES_IN_DOMAIN gettext("Delete all cookies in this domain?") #define ALL_COOKIES_EATEN gettext("All of the cookies in the jar have been eaten!") #define PORT_NINETEEN_INVALID gettext("Port 19 not permitted in URLs.") #define PORT_TWENTYFIVE_INVALID gettext("Port 25 not permitted in URLs.") #define PORT_INVALID gettext("Port %lu not permitted in URLs.") #define URL_PORT_BAD gettext("URL has a bad port field.") #define HTML_STACK_OVERRUN gettext("Maximum nesting of HTML elements exceeded.") #define BAD_PARTIAL_REFERENCE gettext("Bad partial reference! Stripping lead dots.") #define TRACELOG_OPEN_FAILED gettext("Trace Log open failed. Trace off!") #define LYNX_TRACELOG_TITLE gettext("Lynx Trace Log") #define NO_TRACELOG_STARTED gettext("No trace log has been started for this session.") #define MAX_TEMPCOUNT_REACHED \ gettext("The maximum temporary file count has been reached!") #define FORM_VALUE_TOO_LONG \ gettext("Form field value exceeds buffer length! Trim the tail.") #define FORM_TAIL_COMBINED_WITH_HEAD \ gettext("Modified tail combined with head of form field value.") /* HTFile.c */ #define ENTRY_IS_DIRECTORY gettext("Directory") #define DISALLOWED_DIR_SCAN gettext("Directory browsing is not allowed.") #define DISALLOWED_SELECTIVE_ACCESS gettext("Selective access is not enabled for this directory") #define FAILED_DIR_SCAN gettext("Multiformat: directory scan failed.") #define FAILED_DIR_UNREADABLE gettext("This directory is not readable.") #define FAILED_FILE_UNREADABLE gettext("Can't access requested file.") #define FAILED_NO_REPRESENTATION gettext("Could not find suitable representation for transmission.") #define FAILED_OPEN_COMPRESSED_FILE gettext("Could not open file for decompression!") #define LABEL_FILES gettext("Files:") #define LABEL_SUBDIRECTORIES gettext("Subdirectories:") #define SEGMENT_DIRECTORY gettext(" directory") #define SEGMENT_UP_TO gettext("Up to ") #define SEGMENT_CURRENT_DIR gettext("Current directory is ") /* HTFTP.c */ #define ENTRY_IS_SYMBOLIC_LINK gettext("Symbolic Link") /* HTGopher.c */ #define FAILED_NO_RESPONSE gettext("No response from server!") #define GOPHER_CSO_INDEX gettext("CSO index") #define GOPHER_CSO_INDEX_SUBTITLE gettext("\nThis is a searchable index of a CSO database.\n") #define GOPHER_CSO_SEARCH_RESULTS gettext("CSO Search Results") #define GOPHER_CSO_SEEK_FAILED gettext("Seek fail on %s\n") #define GOPHER_CSO_SOLICIT_KEYWORDS gettext("\nPress the 's' key and enter search keywords.\n") #define GOPHER_INDEX_SUBTITLE gettext("\nThis is a searchable Gopher index.\n") #define GOPHER_INDEX_TITLE gettext("Gopher index") #define GOPHER_MENU_TITLE gettext("Gopher Menu") #define GOPHER_SEARCH_RESULTS gettext(" Search Results") #define GOPHER_SENDING_CSO_REQUEST gettext("Sending CSO/PH request.") #define GOPHER_SENDING_REQUEST gettext("Sending Gopher request.") #define GOPHER_SENT_CSO_REQUEST gettext("CSO/PH request sent; waiting for response.") #define GOPHER_SENT_REQUEST gettext("Gopher request sent; waiting for response.") #define GOPHER_SOLICIT_KEYWORDS gettext("\nPlease enter search keywords.\n") #define SEGMENT_KEYWORDS_WILL gettext("\nThe keywords that you enter will allow you to search on a") #define SEGMENT_PERSONS_DB_NAME gettext(" person's name in the database.\n") /* HTNews.c */ #define FAILED_CONNECTION_CLOSED gettext("Connection closed ???") #define FAILED_CANNOT_OPEN_POST gettext("Cannot open temporary file for news POST.") #define FAILED_CANNOT_POST_SSL gettext("This client does not contain support for posting to news with SSL.") /* HTStyle.c */ #define STYLE_DUMP_FONT gettext("Style %d `%s' SGML:%s. Font %s %.1f point.\n") #define STYLE_DUMP_INDENT gettext("\tIndents: first=%.0f others=%.0f, Height=%.1f Desc=%.1f\n" #define STYLE_DUMP_ALIGN gettext("\tAlign=%d, %d tabs. (%.0f before, %.0f after)\n") #define STYLE_DUMP_TAB gettext("\t\tTab kind=%d at %.0f\n") /* HTTP.c */ #define FAILED_NEED_PASSWD gettext("Can't proceed without a username and password.") #define FAILED_RETRY_WITH_AUTH gettext("Can't retry with authorization! Contact the server's WebMaster.") #define FAILED_RETRY_WITH_PROXY gettext("Can't retry with proxy authorization! Contact the server's WebMaster.") #define HTTP_RETRY_WITH_PROXY gettext("Retrying with proxy authorization information.") #define SSL_FORCED_PROMPT gettext("SSL error:%s-Continue?") /* HTWAIS.c */ #define HTWAIS_MESSAGE_TOO_BIG gettext("HTWAIS: Return message too large.") #define HTWAIS_SOLICIT_QUERY gettext("Enter WAIS query: ") /* Miscellaneous status */ #define RETRYING_AS_HTTP0 gettext("Retrying as HTTP0 request.") #define TRANSFERRED_X_BYTES gettext("Transferred %d bytes") #define TRANSFER_COMPLETE gettext("Data transfer complete") #define FAILED_READING_KEYMAP gettext("Error processing line %d of %s\n") /* Lynx internal page titles */ #define ADDRLIST_PAGE_TITLE gettext("Address List Page") #define BOOKMARK_TITLE gettext("Bookmark file") #define CONFIG_DEF_TITLE gettext("Configuration Definitions") #define COOKIE_JAR_TITLE gettext("Cookie Jar") #define CURRENT_KEYMAP_TITLE gettext("Current Key Map") #define DIRED_MENU_TITLE gettext("File Management Options") #define DOWNLOAD_OPTIONS_TITLE gettext("Download Options") #define HISTORY_PAGE_TITLE gettext("History Page") #define CACHE_JAR_TITLE gettext("Cache Jar") #define LIST_PAGE_TITLE gettext("List Page") #define LYNXCFG_TITLE gettext("Lynx.cfg Information") #define MOSAIC_BOOKMARK_TITLE gettext("Converted Mosaic Hotlist") #define OPTIONS_TITLE gettext("Options Menu") #define PERMIT_OPTIONS_TITLE gettext("File Permission Options") #define PRINT_OPTIONS_TITLE gettext("Printing Options") #define SHOWINFO_TITLE gettext("Information about the current document") #define STATUSLINES_TITLE gettext("Your recent statusline messages") #define UPLOAD_OPTIONS_TITLE gettext("Upload Options") #define VISITED_LINKS_TITLE gettext("Visited Links Page") /* CONFIG_DEF_TITLE subtitles */ #define SEE_ALSO gettext("See also") #define YOUR_SEGMENT gettext("your") #define RUNTIME_OPT_SEGMENT gettext("for runtime options") #define COMPILE_OPT_SEGMENT gettext("compile time options") #define COLOR_STYLE_SEGMENT gettext("color-style configuration") #define REL_VERSION gettext("latest release") #define PRE_VERSION gettext("pre-release version") #define DEV_VERSION gettext("development version") #define AUTOCONF_CONFIG_CACHE \ gettext("The following data were derived during the automatic configuration/build\n\ process of this copy of Lynx. When reporting a bug, please include a copy\n\ of this page.") #define AUTOCONF_LYNXCFG_H \ gettext("The following data were used as automatically-configured compile-time\n\ definitions when this copy of Lynx was built.") #ifdef DIRED_SUPPORT #define DIRED_NOVICELINE \ gettext(" C)reate D)ownload E)dit F)ull menu M)odify R)emove T)ag U)pload \n") #define CURRENT_LINK_STATUS_FAILED gettext("Failed to obtain status of current link!") #define INVALID_PERMIT_URL \ gettext("Special URL only valid from current File Permission menu!") #endif /* DIRED_SUPPORT */ #ifdef USE_EXTERNALS #define EXTERNALS_DISABLED gettext("External support is currently disabled.") #endif /* USE_EXTERNALS */ /* new with 2.8.4dev.21 */ #define CHDIR_DISABLED gettext("Changing working-directory is currently disabled.") #define LINEWRAP_OFF gettext("Linewrap OFF!") #define LINEWRAP_ON gettext("Linewrap ON!") #define NESTED_TABLES_OFF gettext("Parsing nested-tables toggled OFF! Reloading...") #define NESTED_TABLES_ON gettext("Parsing nested-tables toggled ON! Reloading...") #define SHIFT_VS_LINEWRAP gettext("Shifting is disabled while line-wrap is in effect") #define TRACE_DISABLED gettext("Trace not supported") #endif /* LYMESSAGES_EN_H */