Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dc17f0d02e | ||
|
|
14cd4315c7 | ||
|
|
644d881787 | ||
|
|
7fdfc62237 | ||
|
|
9fa0f00c23 | ||
|
|
fe6aaa3664 | ||
|
|
6e6b527d6e | ||
|
|
94d0009994 | ||
|
|
7cd99d1559 | ||
|
|
d91fa3b6fb | ||
|
|
466dca361c | ||
|
|
8b24c39a1d | ||
|
|
9dd64dfb49 | ||
|
|
2c810ce763 | ||
|
|
b61e81d5b4 | ||
|
|
f3db84decb | ||
|
|
13644ce351 | ||
|
|
42ec3b492a | ||
|
|
0862fd1f59 | ||
|
|
6663a947ee | ||
|
|
3e8bb98197 | ||
|
|
9b2f68a25d | ||
|
|
11a7cd6983 | ||
|
|
7d904e455d | ||
|
|
c3cf6a22e9 | ||
|
|
12a150a438 | ||
|
|
5b44e36317 | ||
|
|
82f5de3bb9 | ||
|
|
dcf30b40c0 | ||
|
|
3b89134c05 | ||
|
|
d76d50677d | ||
|
|
8790a94a56 | ||
|
|
308535dc5c | ||
|
|
efe5b20b73 | ||
|
|
d1a6e8de3b | ||
|
|
f3cf646bbf | ||
|
|
a39b309b74 | ||
|
|
1aeb562066 | ||
|
|
107d1a1496 | ||
|
|
39edbfb655 | ||
|
|
246b0edaa1 | ||
|
|
4afa08da8d | ||
|
|
dc5b525559 | ||
|
|
30251e5d7c | ||
|
|
81e231ea20 | ||
|
|
36930e9661 | ||
|
|
838c11b69c | ||
|
|
05041722f1 | ||
|
|
36eb7efe5e | ||
|
|
87c9370e8c | ||
|
|
0b018fd4e9 | ||
|
|
39c4356ef6 | ||
|
|
59b79e9b04 | ||
|
|
b2e940f305 | ||
|
|
c3bc59b5e1 | ||
|
|
e3126ba3f8 | ||
|
|
f951abb7a9 | ||
|
|
549a8cd31b | ||
|
|
874ba72f4e | ||
|
|
ea1fd3d01b | ||
|
|
4c6b993458 | ||
|
|
323cc44e0e | ||
|
|
8bf81875ca | ||
|
|
15cf76c767 | ||
|
|
3df272fb92 | ||
|
|
04a8137f09 | ||
|
|
3217a4bee4 | ||
|
|
2aab58473e | ||
|
|
5d3bac6a86 | ||
|
|
09d67a6c52 | ||
|
|
af7588ef16 | ||
|
|
a6e85ad5f5 | ||
|
|
d5e83902a5 | ||
|
|
055614bbbc | ||
|
|
0d803ac895 | ||
|
|
253babff62 | ||
|
|
fac964bcf5 | ||
|
|
02d809c194 | ||
|
|
5d1b6cfe97 | ||
|
|
e37a9b62b7 | ||
|
|
623853f3f4 | ||
|
|
6c892e7161 | ||
|
|
be304c6ee7 | ||
|
|
00f380a75c | ||
|
|
af29effbf3 | ||
|
|
57300f5159 | ||
|
|
9d34ed8781 | ||
|
|
f3dd0a4ec8 | ||
|
|
9371520a73 | ||
|
|
fd5be55d81 | ||
|
|
e0c0fb6917 | ||
|
|
f2f0f460c4 | ||
|
|
08928d8b8e | ||
|
|
cb4728f8f5 | ||
|
|
4a71a41380 | ||
|
|
9c3b1105e2 | ||
|
|
edf897182e | ||
|
|
7c1559b8ad | ||
|
|
b01165c1f8 | ||
|
|
b5d9c6b113 | ||
|
|
5a56849df8 | ||
|
|
c908f849c5 | ||
|
|
fed92ac5c8 | ||
|
|
00f4232ecc | ||
|
|
fa1cd89aa9 | ||
|
|
5193f4fae0 | ||
|
|
740ae96f5f | ||
|
|
55ca998224 | ||
|
|
fdff1ca793 | ||
|
|
fa729b8306 | ||
|
|
eee99f62e1 | ||
|
|
da9f86f1a7 | ||
|
|
0535f9425b | ||
|
|
c86fd87819 | ||
|
|
3a866cf202 | ||
|
|
e2aaa8d362 | ||
|
|
524db02228 | ||
|
|
cf9d2348a1 | ||
|
|
92122bf29b | ||
|
|
abb7a49584 | ||
|
|
beff0db301 | ||
|
|
ab1526b085 | ||
|
|
b91e737017 | ||
|
|
fa093e2bd2 | ||
|
|
2f001f8af9 | ||
|
|
f87300d30e | ||
|
|
04ae96617d | ||
|
|
7a80efd8bd | ||
|
|
df268ad5cd | ||
|
|
e721bdc9f0 | ||
|
|
ae99ad83d0 | ||
|
|
c491537de1 | ||
|
|
383d59bbc3 | ||
|
|
2471910244 | ||
|
|
2a36ff0839 | ||
|
|
136c838f30 | ||
|
|
bd3936cc9f | ||
|
|
dab80b58ae | ||
|
|
23cfa3d824 | ||
|
|
289ff8092d | ||
|
|
47b01786e2 | ||
|
|
6bc1881727 | ||
|
|
21d765b227 | ||
|
|
d82c008052 | ||
|
|
11823ce890 | ||
|
|
670b179140 | ||
|
|
637c2eae43 | ||
|
|
53e8df40bb | ||
|
|
180a7af75d | ||
|
|
0fd0f45d8b | ||
|
|
8754f8d895 | ||
|
|
c02cc84498 | ||
|
|
647216876b | ||
|
|
f3bd6145a5 | ||
|
|
7320515820 | ||
|
|
8fa1a46584 | ||
|
|
fa7d214e78 | ||
|
|
178b611b0c | ||
|
|
1f28c22323 | ||
|
|
ae0f963799 | ||
|
|
82cac90005 | ||
|
|
8ebfa27210 | ||
|
|
4babc92d7c | ||
|
|
1a3846161a | ||
|
|
ff7d0e58dc | ||
|
|
3d64f91a5c | ||
|
|
f980f32fe5 | ||
|
|
dc67c94545 | ||
|
|
fff56eea1b | ||
|
|
bd2158613d | ||
|
|
537fbad705 | ||
|
|
52cc8fa5fe | ||
|
|
7988f634f3 | ||
|
|
a5e34e2288 | ||
|
|
ad3764ae4a | ||
|
|
685bc54bf2 | ||
|
|
a54eb8ac44 | ||
|
|
6a87253d94 | ||
|
|
6406a88ddf | ||
|
|
18b2a1c3b4 | ||
|
|
58056df23d |
@@ -0,0 +1,11 @@
|
|||||||
|
<!-- Enter your issue description here -->
|
||||||
|
|
||||||
|
## Details
|
||||||
|
- Browser and browser version:
|
||||||
|
- OS version:
|
||||||
|
- xterm.js version:
|
||||||
|
|
||||||
|
### Steps to reproduce
|
||||||
|
|
||||||
|
1.
|
||||||
|
2.
|
||||||
+1
-1
@@ -8,5 +8,5 @@ Makefile.gyp
|
|||||||
*.target.gyp.mk
|
*.target.gyp.mk
|
||||||
*.node
|
*.node
|
||||||
example/*.log
|
example/*.log
|
||||||
docs/_build
|
docs/
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
Antonis Kalipetis <akalipetis@sourcelair.com>
|
||||||
|
Antonis Kalipetis <akalipetis@sourcelair.com> <akalipetis@gmail.com>
|
||||||
|
Daniel Imms <daimms@microsoft.com> <tyriar@tyriar.com>
|
||||||
|
Paris Kasidiaris <paris@sourcelair.com>
|
||||||
|
Paris Kasidiaris <pariskasidiaris@gmail.com>
|
||||||
|
Thanasis Daglis <thanasis@sourcelair.com>
|
||||||
|
Thanasis Daglis <thanasis@sourcelair.com> <ath.daglis@gmail.com>
|
||||||
+13
@@ -0,0 +1,13 @@
|
|||||||
|
language: node_js
|
||||||
|
node_js:
|
||||||
|
- 4
|
||||||
|
env:
|
||||||
|
- CXX=g++-4.8
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
packages:
|
||||||
|
- g++-4.8
|
||||||
|
notifications:
|
||||||
|
email: false
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
List of xterm.js contributors. Updated before every release.
|
||||||
|
|
||||||
|
Alexander Olsson <noseglid@gmail.com>
|
||||||
|
Antonis Kalipetis <akalipetis@sourcelair.com>
|
||||||
|
Austin Robertson <austinrobertson@gmail.com>
|
||||||
|
Benjamin Fischer <benjamin.fischer@rwth-aachen.de>
|
||||||
|
Carson Anderson <carson@betterservers.com>
|
||||||
|
Christopher Jeffrey <chjjeffrey@gmail.com>
|
||||||
|
Daniel Imms <daimms@microsoft.com>
|
||||||
|
Daniel Risacher <drisacher@gmail.com>
|
||||||
|
Dan Kaplun <dbkaplun@twitch.tv>
|
||||||
|
Darin Morrison <freebroccolo@users.noreply.github.com>
|
||||||
|
Jean Bruenn <himself@jeanbruenn.info>
|
||||||
|
Jörg Breitbart <jerch@rockborn.de>
|
||||||
|
Paris Kasidiaris <pariskasidiaris@gmail.com>
|
||||||
|
Paris Kasidiaris <paris@sourcelair.com>
|
||||||
|
runarberg <runar@greenqloud.com>
|
||||||
|
Steven Silvester <steven.silvester@ieee.org>
|
||||||
|
Thanasis Daglis <thanasis@sourcelair.com>
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
# How to contribute to xterm.js
|
||||||
|
|
||||||
|
- [Opening issues for bug reports or feature requests](#opening-issues)
|
||||||
|
- [Contributing code](#contributing-code)
|
||||||
|
|
||||||
|
## Opening issues
|
||||||
|
|
||||||
|
The preferred way to report bugs or request features is to use
|
||||||
|
[GitHub issues](http://github.com/sourcelair/xterm.js/issues). Before
|
||||||
|
opening an issue, read these pointers.
|
||||||
|
|
||||||
|
### Opening issues effectively
|
||||||
|
|
||||||
|
- Include information about **the browser in which the problem occurred**. Even
|
||||||
|
if you tested several browsers, and the problem occurred in all of them,
|
||||||
|
mention this fact in the bug report. Also include browser version numbers and
|
||||||
|
the operating system that you're on.
|
||||||
|
|
||||||
|
- Mention which release of xterm.js you're using. Preferably, try also with
|
||||||
|
the current HEAD of the master branch, to ensure the problem has not already been
|
||||||
|
fixed.
|
||||||
|
|
||||||
|
- Mention precisely what went wrong. What did you expect to happen? What happened instead? Describe the
|
||||||
|
exact steps a maintainer has to take to make the problem occur.
|
||||||
|
|
||||||
|
- If the problem can not be reproduced in the [demo of xterm.js](README.md#demo), please provide an HTML document that demonstrates the problem.
|
||||||
|
|
||||||
|
- Be polite. Issues with an indignant or belligerent tone tend to be moved to the
|
||||||
|
bottom of the pile.
|
||||||
|
|
||||||
|
## Contributing code
|
||||||
|
|
||||||
|
- Make sure you have a [GitHub account](https://github.com/join)
|
||||||
|
- Fork [xterm.js](https://github.com/sourcelair/xterm.js/)
|
||||||
|
([how to fork a repo](https://help.github.com/articles/fork-a-repo))
|
||||||
|
- Make your changes
|
||||||
|
- If your changes are easy to test or likely to regress, add tests. Tests go into `test`, directory.
|
||||||
|
- Follow the general code style of the rest of the project (see below).
|
||||||
|
- Submit a pull request
|
||||||
|
([how to create a pull request](https://help.github.com/articles/fork-a-repo)).
|
||||||
|
Don't put more than one feature/fix in a single pull request.
|
||||||
|
|
||||||
|
By contributing code to xterm.js you
|
||||||
|
|
||||||
|
- agree to license the contributed code under xterm.js' [MIT
|
||||||
|
license](LICENSE).
|
||||||
|
|
||||||
|
- confirm that you have the right to contribute and license the code
|
||||||
|
in question. (Either you hold all rights on the code, or the rights
|
||||||
|
holder has explicitly granted the right to use it like this,
|
||||||
|
through a compatible open source license or through a direct
|
||||||
|
agreement with you.)
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
FROM node:4-onbuild
|
||||||
|
MAINTAINER Paris Kasidiaris <paris@sourcelair.com>
|
||||||
|
|
||||||
|
EXPOSE 3000
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
web: npm start
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
# xterm.js
|
# xterm.js
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
Xterm.js is a full xterm clone, written in JavaScript.
|
Xterm.js is a full xterm clone, written in JavaScript.
|
||||||
|
|
||||||
It is used at [SourceLair](https://www.sourcelair.com/home) to help people develop their applications in their browsers.
|
It is used at [SourceLair](https://www.sourcelair.com/home) to help people develop their applications in their browsers.
|
||||||
@@ -8,12 +10,67 @@ Xterm.js supplies a modular, event-based interface that lets developers build ad
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
### Contribution and License Agreement
|
## Browser Support
|
||||||
|
|
||||||
|
Since xterm.js is typically implemented as a developer tool, only modern browsers are supported officially. Here is a list of the versions we aim to support:
|
||||||
|
|
||||||
|
- Chrome 48+
|
||||||
|
- Edge 13+
|
||||||
|
- Firefox 44+
|
||||||
|
- Internet Explorer 11+
|
||||||
|
- Opera 35+
|
||||||
|
- Safari 8+
|
||||||
|
|
||||||
|
xterm.js may work on earlier versions of the browsers but these are the browsers we strive to keep working.
|
||||||
|
|
||||||
|
## Demo
|
||||||
|
|
||||||
|
To launch the demo simply run:
|
||||||
|
|
||||||
|
```
|
||||||
|
npm install
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
Then open http://0.0.0.0:3000 in a web browser (use http://127.0.0.1:3000 is running under Windows).
|
||||||
|
|
||||||
|
## Addons
|
||||||
|
|
||||||
|
Addons are JavaScript modules that attach functions to the `Terminal` prototype to extend its functionality. There are a handful available in the main repository in the `addons` directory, you can even write your own (though they may break when the internals of xterm.js change across versions).
|
||||||
|
|
||||||
|
To use an addon, just include the JavaScript file after xterm.js and before the `Terminal` object has been instantiated. The function should then be exposed on the `Terminal` object:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<script src="node_modules/src/xterm.js"></script>
|
||||||
|
<script src="node_modules/addons/fit/fit.js"></script>
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
var xterm = new Terminal();
|
||||||
|
// init code...
|
||||||
|
xterm.fit();
|
||||||
|
```
|
||||||
|
|
||||||
|
## Development and Contribution
|
||||||
|
|
||||||
|
To contribute either code, documentation or issues to xterm.js please read the [Contributing document](CONTRIBUTING.md) before.
|
||||||
|
|
||||||
|
The development of xterm.js does not require any special tool. All you need is an editor that supports JavaScript and a browser (if you would like to run the demo you will need Node.js to get all features).
|
||||||
|
|
||||||
|
It is recommended though to use a development tool that uses xterm.js internally, to develop for xterm.js. [Eating our own dogfood](https://en.wikipedia.org/wiki/Eating_your_own_dog_food) has been proved extremely beneficial for this project. Known tools that use xterm.js internally are:
|
||||||
|
|
||||||
|
#### [SourceLair](https://www.sourcelair.com)
|
||||||
|
|
||||||
|
Visit https://lair.io/sourcelair/xterm and follow the instructions. All development will happen in your browser.
|
||||||
|
|
||||||
|
#### [Visual Studio Code](http://code.visualstudio.com/)
|
||||||
|
|
||||||
|
[Download Visual Studio Code](http://code.visualstudio.com/Download), clone xterm.js and you are all set.
|
||||||
|
|
||||||
|
## License Agreement
|
||||||
|
|
||||||
If you contribute code to this project, you are implicitly allowing your code to be distributed under the MIT license. You are also implicitly verifying that all code is your original work.
|
If you contribute code to this project, you are implicitly allowing your code to be distributed under the MIT license. You are also implicitly verifying that all code is your original work.
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
Copyright (c) 2014-2016, SourceLair, Private Company ([www.sourcelair.com](https://www.sourcelair.com/home)) (MIT License)
|
Copyright (c) 2014-2016, SourceLair, Private Company ([www.sourcelair.com](https://www.sourcelair.com/home)) (MIT License)
|
||||||
|
|
||||||
Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
|
Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
|
||||||
|
|||||||
@@ -7,7 +7,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
(function (attach) {
|
(function (attach) {
|
||||||
if (typeof define == 'function') {
|
if (typeof exports === 'object' && typeof module === 'object') {
|
||||||
|
/*
|
||||||
|
* CommonJS environment
|
||||||
|
*/
|
||||||
|
module.exports = attach(require('../../src/xterm'));
|
||||||
|
} else if (typeof define == 'function') {
|
||||||
/*
|
/*
|
||||||
* Require.js is available
|
* Require.js is available
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"name": "xterm.attach",
|
||||||
|
"main": "attach.js",
|
||||||
|
"private": true
|
||||||
|
}
|
||||||
+31
-9
@@ -12,7 +12,12 @@
|
|||||||
* of columns)
|
* of columns)
|
||||||
*/
|
*/
|
||||||
(function (fit) {
|
(function (fit) {
|
||||||
if (typeof define == 'function') {
|
if (typeof exports === 'object' && typeof module === 'object') {
|
||||||
|
/*
|
||||||
|
* CommonJS environment
|
||||||
|
*/
|
||||||
|
module.exports = fit(require('../../src/xterm'));
|
||||||
|
} else if (typeof define == 'function') {
|
||||||
/*
|
/*
|
||||||
* Require.js is available
|
* Require.js is available
|
||||||
*/
|
*/
|
||||||
@@ -24,17 +29,24 @@
|
|||||||
fit(this.Xterm);
|
fit(this.Xterm);
|
||||||
}
|
}
|
||||||
})(function (Xterm) {
|
})(function (Xterm) {
|
||||||
Xterm.prototype.proposeGeometry = function () {
|
/**
|
||||||
var parentElementStyle = window.getComputedStyle(this.element.parentElement),
|
* This module provides methods for fitting a terminal's size to a parent container.
|
||||||
|
*
|
||||||
|
* @module xterm/addons/fit/fit
|
||||||
|
*/
|
||||||
|
var exports = {};
|
||||||
|
|
||||||
|
exports.proposeGeometry = function (term) {
|
||||||
|
var parentElementStyle = window.getComputedStyle(term.element.parentElement),
|
||||||
parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height')),
|
parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height')),
|
||||||
parentElementWidth = parseInt(parentElementStyle.getPropertyValue('width')),
|
parentElementWidth = parseInt(parentElementStyle.getPropertyValue('width')),
|
||||||
elementStyle = window.getComputedStyle(this.element),
|
elementStyle = window.getComputedStyle(term.element),
|
||||||
elementPaddingVer = parseInt(elementStyle.getPropertyValue('padding-top')) + parseInt(elementStyle.getPropertyValue('padding-bottom')),
|
elementPaddingVer = parseInt(elementStyle.getPropertyValue('padding-top')) + parseInt(elementStyle.getPropertyValue('padding-bottom')),
|
||||||
elementPaddingHor = parseInt(elementStyle.getPropertyValue('padding-right')) + parseInt(elementStyle.getPropertyValue('padding-left')),
|
elementPaddingHor = parseInt(elementStyle.getPropertyValue('padding-right')) + parseInt(elementStyle.getPropertyValue('padding-left')),
|
||||||
availableHeight = parentElementHeight - elementPaddingVer,
|
availableHeight = parentElementHeight - elementPaddingVer,
|
||||||
availableWidth = parentElementWidth - elementPaddingHor,
|
availableWidth = parentElementWidth - elementPaddingHor,
|
||||||
container = this.rowContainer,
|
container = term.rowContainer,
|
||||||
subjectRow = this.rowContainer.firstElementChild,
|
subjectRow = term.rowContainer.firstElementChild,
|
||||||
contentBuffer = subjectRow.innerHTML,
|
contentBuffer = subjectRow.innerHTML,
|
||||||
characterHeight,
|
characterHeight,
|
||||||
rows,
|
rows,
|
||||||
@@ -56,9 +68,19 @@
|
|||||||
return geometry;
|
return geometry;
|
||||||
};
|
};
|
||||||
|
|
||||||
Xterm.prototype.fit = function () {
|
exports.fit = function (term) {
|
||||||
var geometry = this.proposeGeometry();
|
var geometry = exports.proposeGeometry(term);
|
||||||
|
|
||||||
this.resize(geometry.cols, geometry.rows);
|
term.resize(geometry.cols, geometry.rows);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Xterm.prototype.proposeGeometry = function () {
|
||||||
|
return exports.proposeGeometry(this);
|
||||||
|
};
|
||||||
|
|
||||||
|
Xterm.prototype.fit = function () {
|
||||||
|
return exports.fit(this);
|
||||||
|
};
|
||||||
|
|
||||||
|
return exports;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"name": "xterm.fit",
|
||||||
|
"main": "fit.js",
|
||||||
|
"private": true
|
||||||
|
}
|
||||||
@@ -11,7 +11,12 @@
|
|||||||
* fullscreen mode is being toggled.
|
* fullscreen mode is being toggled.
|
||||||
*/
|
*/
|
||||||
(function (fullscreen) {
|
(function (fullscreen) {
|
||||||
if (typeof define == 'function') {
|
if (typeof exports === 'object' && typeof module === 'object') {
|
||||||
|
/*
|
||||||
|
* CommonJS environment
|
||||||
|
*/
|
||||||
|
module.exports = fullscreen(require('../../src/xterm'));
|
||||||
|
} else if (typeof define == 'function') {
|
||||||
/*
|
/*
|
||||||
* Require.js is available
|
* Require.js is available
|
||||||
*/
|
*/
|
||||||
@@ -23,17 +28,25 @@
|
|||||||
fullscreen(this.Xterm);
|
fullscreen(this.Xterm);
|
||||||
}
|
}
|
||||||
})(function (Xterm) {
|
})(function (Xterm) {
|
||||||
Xterm.prototype.toggleFullscreen = function (fullscreen) {
|
var exports = {};
|
||||||
|
|
||||||
|
exports.toggleFullScreen = function (term, fullscreen) {
|
||||||
var fn;
|
var fn;
|
||||||
|
|
||||||
if (typeof fullscreen == 'undefined') {
|
if (typeof fullscreen == 'undefined') {
|
||||||
fn = (this.element.classList.contains('fullscreen')) ? 'remove' : 'add';
|
fn = (term.element.classList.contains('fullscreen')) ? 'remove' : 'add';
|
||||||
} else if (!fullscreen) {
|
} else if (!fullscreen) {
|
||||||
fn = 'remove';
|
fn = 'remove';
|
||||||
} else {
|
} else {
|
||||||
fn = 'add';
|
fn = 'add';
|
||||||
}
|
}
|
||||||
|
|
||||||
this.element.classList[fn]('fullscreen');
|
term.element.classList[fn]('fullscreen');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Xterm.prototype.toggleFullscreen = function (fullscreen) {
|
||||||
|
exports.toggleFullScreen(this, fullscreen);
|
||||||
|
};
|
||||||
|
|
||||||
|
return exports;
|
||||||
});
|
});
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"name": "xterm.fullscreen",
|
||||||
|
"main": "fullscreen.js",
|
||||||
|
"private": true
|
||||||
|
}
|
||||||
+30
-19
@@ -1,5 +1,10 @@
|
|||||||
(function (linkify) {
|
(function (linkify) {
|
||||||
if (typeof define == 'function') {
|
if (typeof exports === 'object' && typeof module === 'object') {
|
||||||
|
/*
|
||||||
|
* CommonJS environment
|
||||||
|
*/
|
||||||
|
module.exports = linkify(require('../../src/xterm'));
|
||||||
|
} else if (typeof define == 'function') {
|
||||||
/*
|
/*
|
||||||
* Require.js is available
|
* Require.js is available
|
||||||
*/
|
*/
|
||||||
@@ -25,8 +30,10 @@
|
|||||||
negatedDomainCharacterSet = '[^\\da-z\\.-]+',
|
negatedDomainCharacterSet = '[^\\da-z\\.-]+',
|
||||||
domainBodyClause = '(' + domainCharacterSet + ')',
|
domainBodyClause = '(' + domainCharacterSet + ')',
|
||||||
tldClause = '([a-z\\.]{2,6})',
|
tldClause = '([a-z\\.]{2,6})',
|
||||||
hostClause = domainBodyClause + '\\.' + tldClause,
|
ipClause = '((\\d{1,3}\\.){3}\\d{1,3})',
|
||||||
pathClause = '([\\/\\w\\.-]*)*\\/?',
|
portClause = '(:\\d{1,5})',
|
||||||
|
hostClause = '((' + domainBodyClause + '\\.' + tldClause + ')|' + ipClause + ')' + portClause + '?',
|
||||||
|
pathClause = '(\\/[\\/\\w\\.-]*)*',
|
||||||
negatedPathCharacterSet = '[^\\/\\w\\.-]+',
|
negatedPathCharacterSet = '[^\\/\\w\\.-]+',
|
||||||
bodyClause = hostClause + pathClause,
|
bodyClause = hostClause + pathClause,
|
||||||
start = '(?:^|' + negatedDomainCharacterSet + ')(',
|
start = '(?:^|' + negatedDomainCharacterSet + ')(',
|
||||||
@@ -36,7 +43,6 @@
|
|||||||
lenientUrlRegex = new RegExp(lenientUrlClause),
|
lenientUrlRegex = new RegExp(lenientUrlClause),
|
||||||
strictUrlRegex = new RegExp(strictUrlClause);
|
strictUrlRegex = new RegExp(strictUrlClause);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts all valid URLs found in the given terminal line into
|
* Converts all valid URLs found in the given terminal line into
|
||||||
* hyperlinks. The terminal line can be either the HTML element itself
|
* hyperlinks. The terminal line can be either the HTML element itself
|
||||||
@@ -68,7 +74,7 @@
|
|||||||
var node = nodes[j],
|
var node = nodes[j],
|
||||||
match;
|
match;
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* Since we cannot access the TextNode's HTML representation
|
* Since we cannot access the TextNode's HTML representation
|
||||||
* from the instance itself, we assign its data as textContent
|
* from the instance itself, we assign its data as textContent
|
||||||
* to a dummy buffer span, in order to retrieve the TextNode's
|
* to a dummy buffer span, in order to retrieve the TextNode's
|
||||||
@@ -78,29 +84,20 @@
|
|||||||
|
|
||||||
var nodeHTML = buffer.innerHTML;
|
var nodeHTML = buffer.innerHTML;
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* Apply function only on TextNodes
|
* Apply function only on TextNodes
|
||||||
*/
|
*/
|
||||||
if (node.nodeType != node.TEXT_NODE) {
|
if (node.nodeType != node.TEXT_NODE) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var url = exports.findLinkMatch(node.data, lenient);
|
||||||
|
|
||||||
if (lenient) {
|
if (!url) {
|
||||||
match = node.data.match(lenientUrlRegex);
|
|
||||||
} else {
|
|
||||||
match = node.data.match(strictUrlRegex);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If no URL was found in the current text, return.
|
|
||||||
*/
|
|
||||||
if (!match) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = match[1],
|
var startsWithProtocol = new RegExp('^' + protocolClause),
|
||||||
startsWithProtocol = new RegExp('^' + protocolClause),
|
|
||||||
urlHasProtocol = url.match(startsWithProtocol),
|
urlHasProtocol = url.match(startsWithProtocol),
|
||||||
href = (urlHasProtocol) ? url : 'http://' + url,
|
href = (urlHasProtocol) ? url : 'http://' + url,
|
||||||
link = '<a href="' + href + '" >' + url + '</a>',
|
link = '<a href="' + href + '" >' + url + '</a>',
|
||||||
@@ -119,6 +116,20 @@
|
|||||||
terminal.emit('linkify:line', line);
|
terminal.emit('linkify:line', line);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds a link within a block of text.
|
||||||
|
*
|
||||||
|
* @param {string} text - The text to search .
|
||||||
|
* @param {boolean} lenient - Whether to use the lenient search.
|
||||||
|
* @return {string} A URL.
|
||||||
|
*/
|
||||||
|
exports.findLinkMatch = function (text, lenient) {
|
||||||
|
var match = text.match(lenient ? lenientUrlRegex : strictUrlRegex);
|
||||||
|
if (!match || match.length === 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return match[1];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts all valid URLs found in the terminal view into hyperlinks.
|
* Converts all valid URLs found in the terminal view into hyperlinks.
|
||||||
@@ -149,7 +160,7 @@
|
|||||||
terminal.emit('linkify');
|
terminal.emit('linkify');
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* Extend Xterm prototype.
|
* Extend Xterm prototype.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"name": "xterm.linkify",
|
||||||
|
"main": "linkify.js",
|
||||||
|
"private": true
|
||||||
|
}
|
||||||
Executable
+7
@@ -0,0 +1,7 @@
|
|||||||
|
#! /usr/bin/env sh
|
||||||
|
|
||||||
|
tail --lines=+3 AUTHORS > AUTHORS.tmp
|
||||||
|
git log --format='%aN <%aE>' >> AUTHORS.tmp
|
||||||
|
echo "List of xterm.js contributors. Updated before every release.\n" > AUTHORS
|
||||||
|
sort -u AUTHORS.tmp >> AUTHORS
|
||||||
|
rm -f AUTHORS.tmp
|
||||||
Executable
+27
@@ -0,0 +1,27 @@
|
|||||||
|
#! /usr/bin/env sh
|
||||||
|
|
||||||
|
# Usage: ./bin/prepare-release x.y.z
|
||||||
|
# x.y.z should be semver (e.g. 1.0.0)
|
||||||
|
|
||||||
|
NEW_VERSION=$1
|
||||||
|
CURRENT_PACKAGE_JSON_VERSION=$(cat package.json \
|
||||||
|
| grep version \
|
||||||
|
| head -1 \
|
||||||
|
| awk -F: '{ print $2 }' \
|
||||||
|
| sed 's/[",]//g' \
|
||||||
|
| tr -d '[[:space:]]')
|
||||||
|
CURRENT_BOWER_JSON_VERSION=$(cat bower.json \
|
||||||
|
| grep version \
|
||||||
|
| head -1 \
|
||||||
|
| awk -F: '{ print $2 }' \
|
||||||
|
| sed 's/[",]//g' \
|
||||||
|
| tr -d '[[:space:]]')
|
||||||
|
|
||||||
|
# Update version in package.json and bower.json
|
||||||
|
sed -i "s/\"version\": \"$CURRENT_PACKAGE_JSON_VERSION\"/\"version\": \"$NEW_VERSION\"/g" package.json
|
||||||
|
sed -i "s/\"version\": \"$CURRENT_BOWER_JSON_VERSION\"/\"version\": \"$NEW_VERSION\"/g" bower.json
|
||||||
|
|
||||||
|
# Update AUTHORS file
|
||||||
|
sh bin/generate-authors
|
||||||
|
|
||||||
|
git commit -a -m "Bump version to $NEW_VERSION"
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "xterm.js",
|
"name": "xterm.js",
|
||||||
"version": "0.32",
|
"version": "1.0.0",
|
||||||
"ignore": ["demo", "test", ".gitignore"]
|
"ignore": ["demo", "test", ".gitignore"]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
{
|
|
||||||
"source": {
|
|
||||||
"include": [
|
|
||||||
"src/xterm.js",
|
|
||||||
"addons/attach/attach.js",
|
|
||||||
"addons/fit/fit.js",
|
|
||||||
"addons/fullscreen/fullscreen.js",
|
|
||||||
"addons/linkify/linkify.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"opts": {
|
|
||||||
"readme": "README.md"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+53
@@ -0,0 +1,53 @@
|
|||||||
|
var express = require('express');
|
||||||
|
var app = express();
|
||||||
|
var expressWs = require('express-ws')(app);
|
||||||
|
var os = require('os');
|
||||||
|
var pty = require('pty.js');
|
||||||
|
|
||||||
|
app.use('/src', express.static(__dirname + '/../src'));
|
||||||
|
app.use('/addons', express.static(__dirname + '/../addons'));
|
||||||
|
|
||||||
|
app.get('/', function(req, res){
|
||||||
|
res.sendFile(__dirname + '/index.html');
|
||||||
|
});
|
||||||
|
|
||||||
|
app.get('/style.css', function(req, res){
|
||||||
|
res.sendFile(__dirname + '/style.css');
|
||||||
|
});
|
||||||
|
|
||||||
|
app.get('/main.js', function(req, res){
|
||||||
|
res.sendFile(__dirname + '/main.js');
|
||||||
|
});
|
||||||
|
|
||||||
|
app.ws('/bash', function(ws, req) {
|
||||||
|
/**
|
||||||
|
* Open bash terminal and attach it
|
||||||
|
*/
|
||||||
|
var term = pty.spawn(process.platform === 'win32' ? 'cmd.exe' : 'bash', [], {
|
||||||
|
name: 'xterm-color',
|
||||||
|
cols: 80,
|
||||||
|
rows: 24,
|
||||||
|
cwd: process.env.PWD,
|
||||||
|
env: process.env
|
||||||
|
});
|
||||||
|
term.on('data', function(data) {
|
||||||
|
try {
|
||||||
|
ws.send(data);
|
||||||
|
} catch (ex) {
|
||||||
|
// The WebSocket is not open, ignore
|
||||||
|
}
|
||||||
|
});
|
||||||
|
ws.on('message', function(msg) {
|
||||||
|
term.write(msg);
|
||||||
|
});
|
||||||
|
ws.on('close', function () {
|
||||||
|
console.log('close');
|
||||||
|
process.kill(term.pid);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
var port = process.env.PORT || 3000,
|
||||||
|
host = os.platform() === 'win32' ? '127.0.0.1' : '0.0.0.0';
|
||||||
|
|
||||||
|
console.log('App listening to http://' + host + ':' + port);
|
||||||
|
app.listen(port, host);
|
||||||
+6
-1
@@ -6,14 +6,19 @@
|
|||||||
<link rel="stylesheet" href="../addons/fullscreen/fullscreen.css" />
|
<link rel="stylesheet" href="../addons/fullscreen/fullscreen.css" />
|
||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css" />
|
||||||
<script src="../src/xterm.js" ></script>
|
<script src="../src/xterm.js" ></script>
|
||||||
|
<script src="../addons/attach/attach.js" ></script>
|
||||||
<script src="../addons/fit/fit.js" ></script>
|
<script src="../addons/fit/fit.js" ></script>
|
||||||
<script src="../addons/fullscreen/fullscreen.js" ></script>
|
<script src="../addons/fullscreen/fullscreen.js" ></script>
|
||||||
<script src="main.js" defer ></script>
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>
|
<h1>
|
||||||
xterm.js: xterm, in the browser
|
xterm.js: xterm, in the browser
|
||||||
</h1>
|
</h1>
|
||||||
<div id="terminal-container"></div>
|
<div id="terminal-container"></div>
|
||||||
|
<div>
|
||||||
|
<h2>Options</h2>
|
||||||
|
<label><input type="checkbox" id="option-cursor-blink"> cursorBlink</label>
|
||||||
|
</div>
|
||||||
|
<script src="main.js" defer ></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
+54
-5
@@ -1,21 +1,65 @@
|
|||||||
var terminalContainer = document.getElementById('terminal-container'),
|
var term,
|
||||||
term = new Terminal(),
|
protocol,
|
||||||
shellprompt = '> ';
|
socketURL,
|
||||||
|
socket;
|
||||||
|
|
||||||
|
var terminalContainer = document.getElementById('terminal-container');
|
||||||
|
var optionElements = {
|
||||||
|
cursorBlink: document.querySelector('#option-cursor-blink')
|
||||||
|
};
|
||||||
|
|
||||||
|
optionElements.cursorBlink.addEventListener('change', createTerminal);
|
||||||
|
|
||||||
|
createTerminal();
|
||||||
|
|
||||||
|
function createTerminal() {
|
||||||
|
while (terminalContainer.children.length) {
|
||||||
|
terminalContainer.removeChild(terminalContainer.children[0]);
|
||||||
|
}
|
||||||
|
term = new Terminal({
|
||||||
|
cursorBlink: optionElements.cursorBlink.checked
|
||||||
|
});
|
||||||
|
protocol = (location.protocol === 'https:') ? 'wss://' : 'ws://';
|
||||||
|
socketURL = protocol + location.hostname + ((location.port) ? (':' + location.port) : '') + '/bash';
|
||||||
|
socket = new WebSocket(socketURL);
|
||||||
|
|
||||||
term.open(terminalContainer);
|
term.open(terminalContainer);
|
||||||
term.fit();
|
term.fit();
|
||||||
|
|
||||||
|
socket.onopen = runRealTerminal;
|
||||||
|
socket.onclose = runFakeTerminal;
|
||||||
|
socket.onerror = runFakeTerminal;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function runRealTerminal() {
|
||||||
|
term.attach(socket);
|
||||||
|
term._initialized = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function runFakeTerminal() {
|
||||||
|
if (term._initialized) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
term._initialized = true;
|
||||||
|
|
||||||
|
var shellprompt = '$ ';
|
||||||
|
|
||||||
term.prompt = function () {
|
term.prompt = function () {
|
||||||
term.write('\r\n' + shellprompt);
|
term.write('\r\n' + shellprompt);
|
||||||
};
|
};
|
||||||
|
|
||||||
term.writeln('Welcome to xterm.js');
|
term.writeln('Welcome to xterm.js');
|
||||||
term.writeln('Just type some keys in the prompt below.');
|
term.writeln('This is a local terminal emulation, without a real terminal in the back-end.');
|
||||||
|
term.writeln('Type some keys and commands to play around.');
|
||||||
term.writeln('');
|
term.writeln('');
|
||||||
term.prompt();
|
term.prompt();
|
||||||
|
|
||||||
term.on('key', function (key, ev) {
|
term.on('key', function (key, ev) {
|
||||||
var printable = (!ev.altKey && !ev.altGraphKey && !ev.ctrlKey && !ev.metaKey);
|
var printable = (
|
||||||
|
!ev.altKey && !ev.altGraphKey && !ev.ctrlKey && !ev.metaKey
|
||||||
|
);
|
||||||
|
|
||||||
if (ev.keyCode == 13) {
|
if (ev.keyCode == 13) {
|
||||||
term.prompt();
|
term.prompt();
|
||||||
@@ -30,3 +74,8 @@ term.on('key', function (key, ev) {
|
|||||||
term.write(key);
|
term.write(key);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
term.on('paste', function (data, ev) {
|
||||||
|
term.write(data);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
+1
-1
@@ -21,6 +21,6 @@ h1 {
|
|||||||
padding: 2px;
|
padding: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#terminal-container .terminal .terminal-cursor {
|
#terminal-container .terminal:focus .terminal-cursor {
|
||||||
background-color: #fafafa;
|
background-color: #fafafa;
|
||||||
}
|
}
|
||||||
|
|||||||
+26
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"source": {
|
||||||
|
"include": [
|
||||||
|
"src/xterm.js",
|
||||||
|
"addons/attach/attach.js",
|
||||||
|
"addons/fit/fit.js",
|
||||||
|
"addons/fullscreen/fullscreen.js",
|
||||||
|
"addons/linkify/linkify.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"opts": {
|
||||||
|
"readme": "README.md",
|
||||||
|
"template": "node_modules/docdash",
|
||||||
|
"encoding": "utf8",
|
||||||
|
"destination": "docs/",
|
||||||
|
"recurse": true,
|
||||||
|
"verbose": true
|
||||||
|
},
|
||||||
|
"plugins": [
|
||||||
|
"plugins/markdown"
|
||||||
|
],
|
||||||
|
"templates": {
|
||||||
|
"cleverLinks": false,
|
||||||
|
"monospaceLinks": false
|
||||||
|
}
|
||||||
|
}
|
||||||
+23
-3
@@ -1,8 +1,28 @@
|
|||||||
{
|
{
|
||||||
"name": "xterm",
|
"name": "xterm",
|
||||||
"version": "0.32.0",
|
"version": "1.0.0",
|
||||||
"ignore": ["demo", "test", ".gitignore"],
|
"ignore": [
|
||||||
|
"demo",
|
||||||
|
"test",
|
||||||
|
".gitignore"
|
||||||
|
],
|
||||||
"main": "src/xterm.js",
|
"main": "src/xterm.js",
|
||||||
"repository": "https://github.com/sourcelair/xterm.js",
|
"repository": "https://github.com/sourcelair/xterm.js",
|
||||||
"license": "MIT"
|
"license": "MIT",
|
||||||
|
"devDependencies": {
|
||||||
|
"chai": "3.5.0",
|
||||||
|
"docdash": "0.4.0",
|
||||||
|
"express": "4.13.4",
|
||||||
|
"express-ws": "2.0.0-rc.1",
|
||||||
|
"glob": "^7.0.5",
|
||||||
|
"jsdoc": "3.4.0",
|
||||||
|
"mocha": "2.5.3",
|
||||||
|
"pty.js": "0.3.0",
|
||||||
|
"sleep": "^3.0.1"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"start": "node demo/app",
|
||||||
|
"test": "mocha --recursive",
|
||||||
|
"build:docs": "node_modules/.bin/jsdoc -c jsdoc.json"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+26
-13
@@ -39,6 +39,7 @@
|
|||||||
background-color: #000;
|
background-color: #000;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-family: courier-new, courier, monospace;
|
font-family: courier-new, courier, monospace;
|
||||||
|
font-feature-settings: "liga" 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,21 +52,25 @@
|
|||||||
color: #000;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.terminal .xterm-helpers {
|
.terminal:not(:focus) .terminal-cursor {
|
||||||
position: absolute;
|
outline: 1px solid #fff;
|
||||||
top: 0;
|
outline-offset: -1px;
|
||||||
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.terminal .xterm-helper-textarea {
|
.terminal:focus .terminal-cursor.blinking {
|
||||||
/*
|
animation: blink-cursor 1.2s infinite step-end;
|
||||||
* HACK: to fix IE's blinking cursor
|
}
|
||||||
* Move textarea out of the screen to the far left, so that the cursor is not visible.
|
|
||||||
*/
|
@keyframes blink-cursor {
|
||||||
text-indent: -9999em;
|
0% {
|
||||||
opacity: 0;
|
background-color: #fff;
|
||||||
width: 0;
|
color: #000;
|
||||||
height: 0;
|
}
|
||||||
z-index: -10;
|
50% {
|
||||||
|
background-color: transparent;
|
||||||
|
color: #FFF;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -2134,3 +2139,11 @@
|
|||||||
.terminal .xterm-bg-color-255 {
|
.terminal .xterm-bg-color-255 {
|
||||||
background-color: #eeeeee;
|
background-color: #eeeeee;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* All terminal rows should have explicitly declared height,
|
||||||
|
* in order to allow child elements to adjust.
|
||||||
|
*/
|
||||||
|
.terminal .xterm-rows > div {
|
||||||
|
line-height: normal;
|
||||||
|
}
|
||||||
|
|||||||
+1642
-1284
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,48 @@
|
|||||||
|
var assert = require('chai').assert;
|
||||||
|
var Terminal = require('../../src/xterm');
|
||||||
|
var linkify = require('../../addons/linkify/linkify');
|
||||||
|
|
||||||
|
describe('linkify addon', function () {
|
||||||
|
var xterm;
|
||||||
|
|
||||||
|
describe('API', function () {
|
||||||
|
it('should define Terminal.prototype.linkify', function () {
|
||||||
|
assert.isDefined(Terminal.prototype.linkify);
|
||||||
|
});
|
||||||
|
it('should define Terminal.prototype.linkifyTerminalLine', function () {
|
||||||
|
assert.isDefined(Terminal.prototype.linkifyTerminalLine);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('findUrlMatchOnLine', function () {
|
||||||
|
describe('strict regex', function () {
|
||||||
|
it('should match when the entire text is a match', function () {
|
||||||
|
assert.equal(linkify.findLinkMatch('http://github.com', false), 'http://github.com');
|
||||||
|
assert.equal(linkify.findLinkMatch('http://127.0.0.1', false), 'http://127.0.0.1');
|
||||||
|
});
|
||||||
|
it('should match simple domains', function () {
|
||||||
|
assert.equal(linkify.findLinkMatch('foo http://github.com bar', false), 'http://github.com');
|
||||||
|
assert.equal(linkify.findLinkMatch('foo http://www.github.com bar', false), 'http://www.github.com');
|
||||||
|
assert.equal(linkify.findLinkMatch('foo https://github.com bar', false), 'https://github.com');
|
||||||
|
assert.equal(linkify.findLinkMatch('foo https://www.github.com bar', false), 'https://www.github.com');
|
||||||
|
});
|
||||||
|
it('should match web addresses with alpha paths', function () {
|
||||||
|
assert.equal(linkify.findLinkMatch('foo http://github.com/a/b/c bar', false), 'http://github.com/a/b/c');
|
||||||
|
assert.equal(linkify.findLinkMatch('foo http://www.github.com/a/b/c bar', false), 'http://www.github.com/a/b/c');
|
||||||
|
});
|
||||||
|
it('should not include whitespace surrounding a match', function () {
|
||||||
|
assert.equal(linkify.findLinkMatch(' http://github.com', false), 'http://github.com');
|
||||||
|
assert.equal(linkify.findLinkMatch('http://github.com ', false), 'http://github.com');
|
||||||
|
assert.equal(linkify.findLinkMatch(' http://github.com ', false), 'http://github.com');
|
||||||
|
});
|
||||||
|
it('should match IP addresses', function () {
|
||||||
|
assert.equal(linkify.findLinkMatch('foo http://127.0.0.1 bar', false), 'http://127.0.0.1');
|
||||||
|
assert.equal(linkify.findLinkMatch('foo https://127.0.0.1 bar', false), 'https://127.0.0.1');
|
||||||
|
});
|
||||||
|
it('should match ports on both domains and IP addresses', function () {
|
||||||
|
assert.equal(linkify.findLinkMatch('foo http://127.0.0.1:8080 bar', false), 'http://127.0.0.1:8080');
|
||||||
|
assert.equal(linkify.findLinkMatch('foo http://www.github.com:8080 bar', false), 'http://www.github.com:8080');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
var assert = require('chai').assert;
|
||||||
|
var Terminal = require('../../src/xterm');
|
||||||
|
|
||||||
|
describe('xterm.js addons', function() {
|
||||||
|
it('should load addons with Terminal.loadAddon', function () {
|
||||||
|
Terminal.loadAddon('attach');
|
||||||
|
// Test that function was loaded successfully
|
||||||
|
assert.equal(typeof Terminal.prototype.attach, 'function');
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
/**
|
|
||||||
* term.js
|
|
||||||
* Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
|
|
||||||
*/
|
|
||||||
|
|
||||||
var element = {
|
|
||||||
createElement: function() { return element; },
|
|
||||||
appendChild: function() {},
|
|
||||||
removeChild: function() {},
|
|
||||||
addEventListener: function() {},
|
|
||||||
removeEventListener: function() {},
|
|
||||||
setAttribute: function() {},
|
|
||||||
style: {}
|
|
||||||
};
|
|
||||||
|
|
||||||
global.window = global;
|
|
||||||
window.navigator = { userAgent: '' };
|
|
||||||
window.document = element;
|
|
||||||
window.document.body = element;
|
|
||||||
|
|
||||||
element.ownerDocument = window.document;
|
|
||||||
window.document.defaultView = window;
|
|
||||||
|
|
||||||
var Terminal = require('../src/term');
|
|
||||||
Terminal.cursorBlink = false;
|
|
||||||
|
|
||||||
var data = require('./data').data;
|
|
||||||
|
|
||||||
var term = new Terminal({
|
|
||||||
cols: 250,
|
|
||||||
rows: 100
|
|
||||||
});
|
|
||||||
|
|
||||||
term.open(element);
|
|
||||||
|
|
||||||
var time = new Date;
|
|
||||||
var t = 10;
|
|
||||||
|
|
||||||
while (t--) {
|
|
||||||
var l = data.length
|
|
||||||
, i = 0;
|
|
||||||
|
|
||||||
for (; i < l; i++) {
|
|
||||||
term.write(data[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log('Completed: %d.', new Date - time);
|
|
||||||
console.log('Average (?): 13.5k (for ~2.7k writes).');
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
167a168,170
|
|
||||||
> var stream = fs.createWriteStream(__dirname + '/../test/data.js');
|
|
||||||
> stream.write('this.data = [\n');
|
|
||||||
>
|
|
||||||
169a173
|
|
||||||
> stream.write(' ' + JSON.stringify(data) + ',\n');
|
|
||||||
182a187,189
|
|
||||||
>
|
|
||||||
> stream.write('];\n');
|
|
||||||
> stream.end();
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
All tests are made for 80x25 terminal. Make sure to run tests with 80x25.
|
||||||
|
|
||||||
|
Create .text files from xterm (expected output)
|
||||||
|
- open xterm
|
||||||
|
- resize xterm to 80x25
|
||||||
|
- run `python run_tests.py`
|
||||||
|
- copy & paste whole window output into editor
|
||||||
|
- add 26th empty line (due to line handling in toString) - not a bug, a feature ;)
|
||||||
|
- advance to next test with ^D
|
||||||
|
|
||||||
|
|
||||||
|
Known problems
|
||||||
|
##############
|
||||||
|
|
||||||
|
|
||||||
|
t0031-HBP:
|
||||||
|
- no documentation at all about CSIj found - skipping
|
||||||
|
|
||||||
|
t0050-ICH:
|
||||||
|
- bug in xterm? (cant ICH last real char, always sticks to last col)
|
||||||
|
- text used from https://github.com/MarkLodato/vt100-parser/blob/master/test/t0050-ICH.text
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
!"#$%&'()*+,-./
|
||||||
|
0123456789:;<=>?
|
||||||
|
@ABCDEFGHIJKLMNO
|
||||||
|
PQRSTUVWXYZ[\]^_
|
||||||
|
`abcdefghijklmno
|
||||||
|
pqrstuvwxyz{|}~
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
!"#$%&'()*+,-./
|
||||||
|
0123456789:;<=>?
|
||||||
|
@ABCDEFGHIJKLMNO
|
||||||
|
PQRSTUVWXYZ[\]^_
|
||||||
|
`abcdefghijklmno
|
||||||
|
pqrstuvwxyz{|}~
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,95 @@
|
|||||||
|
|
||||||
|
!
|
||||||
|
"
|
||||||
|
#
|
||||||
|
$
|
||||||
|
%
|
||||||
|
&
|
||||||
|
'
|
||||||
|
(
|
||||||
|
)
|
||||||
|
*
|
||||||
|
+
|
||||||
|
,
|
||||||
|
-
|
||||||
|
.
|
||||||
|
/
|
||||||
|
0
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
5
|
||||||
|
6
|
||||||
|
7
|
||||||
|
8
|
||||||
|
9
|
||||||
|
:
|
||||||
|
;
|
||||||
|
<
|
||||||
|
=
|
||||||
|
>
|
||||||
|
?
|
||||||
|
@
|
||||||
|
A
|
||||||
|
B
|
||||||
|
C
|
||||||
|
D
|
||||||
|
E
|
||||||
|
F
|
||||||
|
G
|
||||||
|
H
|
||||||
|
I
|
||||||
|
J
|
||||||
|
K
|
||||||
|
L
|
||||||
|
M
|
||||||
|
N
|
||||||
|
O
|
||||||
|
P
|
||||||
|
Q
|
||||||
|
R
|
||||||
|
S
|
||||||
|
T
|
||||||
|
U
|
||||||
|
V
|
||||||
|
W
|
||||||
|
X
|
||||||
|
Y
|
||||||
|
Z
|
||||||
|
[
|
||||||
|
\
|
||||||
|
]
|
||||||
|
^
|
||||||
|
_
|
||||||
|
`
|
||||||
|
a
|
||||||
|
b
|
||||||
|
c
|
||||||
|
d
|
||||||
|
e
|
||||||
|
f
|
||||||
|
g
|
||||||
|
h
|
||||||
|
i
|
||||||
|
j
|
||||||
|
k
|
||||||
|
l
|
||||||
|
m
|
||||||
|
n
|
||||||
|
o
|
||||||
|
p
|
||||||
|
q
|
||||||
|
r
|
||||||
|
s
|
||||||
|
t
|
||||||
|
u
|
||||||
|
v
|
||||||
|
w
|
||||||
|
x
|
||||||
|
y
|
||||||
|
z
|
||||||
|
{
|
||||||
|
|
|
||||||
|
}
|
||||||
|
~
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
g
|
||||||
|
h
|
||||||
|
i
|
||||||
|
j
|
||||||
|
k
|
||||||
|
l
|
||||||
|
m
|
||||||
|
n
|
||||||
|
o
|
||||||
|
p
|
||||||
|
q
|
||||||
|
r
|
||||||
|
s
|
||||||
|
t
|
||||||
|
u
|
||||||
|
v
|
||||||
|
w
|
||||||
|
x
|
||||||
|
y
|
||||||
|
z
|
||||||
|
{
|
||||||
|
|
|
||||||
|
}
|
||||||
|
~
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
abcdefghijklmnopqrstuvwxyz0123456789
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
abcdefghijklmnopqrstuvwxyz0123456789
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
a
|
||||||
|
ab
|
||||||
|
abc
|
||||||
|
abcd
|
||||||
|
abcde
|
||||||
|
abcdef
|
||||||
|
abcdefg
|
||||||
|
abcdefgh
|
||||||
|
abcdefghi
|
||||||
|
abcdefghij
|
||||||
|
abcdefghijk
|
||||||
|
abcdefghijkl
|
||||||
|
abcdefghijklm
|
||||||
|
abcdefghijklmn
|
||||||
|
abcdefghijklmno
|
||||||
|
abcdefghijklmnop
|
||||||
|
abcdefghijklmnopq
|
||||||
|
abcdefghijklmnopqr
|
||||||
|
abcdefghijklmnopqrs
|
||||||
|
abcdefghijklmnopqrst
|
||||||
|
abcdefghijklmnopqrstu
|
||||||
|
abcdefghijklmnopqrstuv
|
||||||
|
abcdefghijklmnopqrstuvw
|
||||||
|
abcdefghijklmnopqrstuvwx
|
||||||
|
abcdefghijklmnopqrstuvwxy
|
||||||
|
abcdefghijklmnopqrstuvwxyz
|
||||||
|
abcdefghijklmnopqrstuvwxyzA
|
||||||
|
abcdefghijklmnopqrstuvwxyzAB
|
||||||
|
abcdefghijklmnopqrstuvwxyzABC
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCD
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDE
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEF
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFG
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGH
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHI
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJ
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJK
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKL
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQR
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRST
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTU
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890a
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890ab
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abc
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcd
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcde
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdef
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijk
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijkl
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmn
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrs
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrst
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890a
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890ab
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abc
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcd
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcde
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdef
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijk
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijkl
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmn
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
|
||||||
|
r
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
|
||||||
|
rs
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
|
||||||
|
rst
|
||||||
|
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
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
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
3
|
||||||
|
4
|
||||||
|
5
|
||||||
|
6
|
||||||
|
7
|
||||||
|
8
|
||||||
|
9
|
||||||
|
10
|
||||||
|
11
|
||||||
|
12
|
||||||
|
13
|
||||||
|
14
|
||||||
|
15
|
||||||
|
16
|
||||||
|
17
|
||||||
|
18
|
||||||
|
19
|
||||||
|
20
|
||||||
|
21
|
||||||
|
22
|
||||||
|
23
|
||||||
|
24
|
||||||
|
25
|
||||||
|
26
|
||||||
|
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
a
|
||||||
|
b
|
||||||
|
c
|
||||||
|
d
|
||||||
|
e
|
||||||
|
f
|
||||||
|
g
|
||||||
|
h
|
||||||
|
i
|
||||||
|
j
|
||||||
|
k
|
||||||
|
l
|
||||||
|
m
|
||||||
|
n
|
||||||
|
o
|
||||||
|
p
|
||||||
|
q
|
||||||
|
r
|
||||||
|
s
|
||||||
|
t
|
||||||
|
u
|
||||||
|
v
|
||||||
|
w
|
||||||
|
x
|
||||||
|
y
|
||||||
|
z
|
||||||
|
A
|
||||||
|
B
|
||||||
|
C
|
||||||
|
D
|
||||||
|
E
|
||||||
|
F
|
||||||
|
G
|
||||||
|
H
|
||||||
|
I
|
||||||
|
J
|
||||||
|
K
|
||||||
|
L
|
||||||
|
M
|
||||||
|
N
|
||||||
|
O
|
||||||
|
P
|
||||||
|
Q
|
||||||
|
R
|
||||||
|
S
|
||||||
|
T
|
||||||
|
U
|
||||||
|
V
|
||||||
|
W
|
||||||
|
X
|
||||||
|
Y
|
||||||
|
Z
|
||||||
|
0
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
5
|
||||||
|
6
|
||||||
|
7
|
||||||
|
8
|
||||||
|
9
|
||||||
|
0
|
||||||
|
a
|
||||||
|
b
|
||||||
|
c
|
||||||
|
d
|
||||||
|
e
|
||||||
|
f
|
||||||
|
g
|
||||||
|
h
|
||||||
|
i
|
||||||
|
j
|
||||||
|
k
|
||||||
|
l
|
||||||
|
m
|
||||||
|
n
|
||||||
|
o
|
||||||
|
p
|
||||||
|
q
|
||||||
|
r
|
||||||
|
s
|
||||||
|
t
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
7
|
||||||
|
8
|
||||||
|
9
|
||||||
|
0
|
||||||
|
a
|
||||||
|
b
|
||||||
|
c
|
||||||
|
d
|
||||||
|
e
|
||||||
|
f
|
||||||
|
g
|
||||||
|
h
|
||||||
|
i
|
||||||
|
j
|
||||||
|
k
|
||||||
|
l
|
||||||
|
m
|
||||||
|
n
|
||||||
|
o
|
||||||
|
p
|
||||||
|
q
|
||||||
|
r
|
||||||
|
s
|
||||||
|
t
|
||||||
|
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
1
x
|
||||||
|
2
x
|
||||||
|
3
x
|
||||||
|
4
x
|
||||||
|
5
x
|
||||||
|
6
x
|
||||||
|
7
x
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
x
|
||||||
|
x2
|
||||||
|
x 3
|
||||||
|
x 4
|
||||||
|
x 5
|
||||||
|
x 6
|
||||||
|
x 7
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
|
b
a
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
a b
|
||||||
|
|
||||||
|
a
|
||||||
|
|
||||||
|
ab
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
aDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD0D1D2D3D4D5D6D7D8D9D0DaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDt
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
7
|
||||||
|
8
|
||||||
|
9
|
||||||
|
0
|
||||||
|
a
|
||||||
|
b
|
||||||
|
c
|
||||||
|
d
|
||||||
|
e
|
||||||
|
f
|
||||||
|
g
|
||||||
|
h
|
||||||
|
i
|
||||||
|
j
|
||||||
|
k
|
||||||
|
l
|
||||||
|
m
|
||||||
|
n
|
||||||
|
o
|
||||||
|
p
|
||||||
|
q
|
||||||
|
r
|
||||||
|
s
|
||||||
|
t
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
0 space:
|
||||||
|
1 space:
|
||||||
|
2 space:
|
||||||
|
3 space:
|
||||||
|
70 space:
|
||||||
|
71 space:
|
||||||
|
72 space:
|
||||||
|
73 space:
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
0 space:
|
||||||
|
1 space:
|
||||||
|
2 space:
|
||||||
|
3 space:
|
||||||
|
70 space:
|
||||||
|
71 space:
|
||||||
|
72 space:
|
||||||
|
|
||||||
|
73 space:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
abcdefghijklmnopqrstuvwxyz!
|
||||||
|
abc@
|
||||||
|
#
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop$
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq%
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr^
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrs&
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
abcdefghijklmnopqrst!vwxyz
|
||||||
|
@bc
|
||||||
|
#
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij$lmnop
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij%lmnopq
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
|
||||||
|
^
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
|
||||||
|
&s
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
aEabEabcEabcdEabcdeEabcdefEabcdefgEabcdefghEabcdefghiEabcdefghijEabcdefghijkEabcdefghijklEabcdefghijklmEabcdefghijklmnEabcdefghijklmnoEabcdefghijklmnopEabcdefghijklmnopqEabcdefghijklmnopqrEabcdefghijklmnopqrsEabcdefghijklmnopqrstEabcdefghijklmnopqrstuEabcdefghijklmnopqrstuvEabcdefghijklmnopqrstuvwEabcdefghijklmnopqrstuvwxEabcdefghijklmnopqrstuvwxyEabcdefghijklmnopqrstuvwxyzEabcdefghijklmnopqrstuvwxyzAEabcdefghijklmnopqrstuvwxyzABEabcdefghijklmnopqrstuvwxyzABCEabcdefghijklmnopqrstuvwxyzABCDEabcdefghijklmnopqrstuvwxyzABCDEEabcdefghijklmnopqrstuvwxyzABCDEFEabcdefghijklmnopqrstuvwxyzABCDEFGEabcdefghijklmnopqrstuvwxyzABCDEFGHEabcdefghijklmnopqrstuvwxyzABCDEFGHIEabcdefghijklmnopqrstuvwxyzABCDEFGHIJEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQREabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890EabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890aEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdeEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghiEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijkEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnoEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrsEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrst
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890a
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890ab
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abc
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcd
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcde
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdef
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijk
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijkl
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmn
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
|
||||||
|
r
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
|
||||||
|
rs
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
|
||||||
|
rst
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
a
|
||||||
|
b
|
||||||
|
c
|
||||||
|
dMeMfMg
|
||||||
|
h
|
||||||
|
i
|
||||||
|
j....................................................................kMlMmMn
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
a g n
|
||||||
|
h f m
|
||||||
|
ie l
|
||||||
|
j....................................................................k
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
And the third.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
This should be the last line.
|
||||||
|
This one should be lost.
|
||||||
|
This one's a goner, too.
MMMMMMMMMMMMMMMMMMMMMMMMThis is second line.
MThis should be the first line.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
This should be the first line.
|
||||||
|
This is second line.
|
||||||
|
And the third.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
This should be the last line.
|
||||||
|
This one should be lost.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrst
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
7
|
||||||
|
8
|
||||||
|
9
|
||||||
|
0
|
||||||
|
a
|
||||||
|
b
|
||||||
|
c
|
||||||
|
d
|
||||||
|
e
|
||||||
|
f
|
||||||
|
g
|
||||||
|
h
|
||||||
|
i
|
||||||
|
j
|
||||||
|
k
|
||||||
|
l
|
||||||
|
m
|
||||||
|
n
|
||||||
|
o
|
||||||
|
p
|
||||||
|
q
|
||||||
|
r
|
||||||
|
s
|
||||||
|
t
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrst
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
8
|
||||||
|
9
|
||||||
|
0
|
||||||
|
a
|
||||||
|
b
|
||||||
|
c
|
||||||
|
d
|
||||||
|
e
|
||||||
|
f
|
||||||
|
g
|
||||||
|
h
|
||||||
|
i
|
||||||
|
j
|
||||||
|
k
|
||||||
|
l
|
||||||
|
m
|
||||||
|
n
|
||||||
|
o
|
||||||
|
p
|
||||||
|
q
|
||||||
|
r
|
||||||
|
s
|
||||||
|
t
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
abcdDefgh
|
||||||
|
abcdDefgh
|
||||||
|
abcd!Defgh
|
||||||
|
abcd!*Defgh
|
||||||
|
abcd[Defgh
|
||||||
|
abcd[!Defgh
|
||||||
|
abcd[2Defgh
|
||||||
|
abcd[*2;Defgh
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
abcdDefgh
|
||||||
|
abcdDefgh
|
||||||
|
abcdDefgh
|
||||||
|
abcdDefgh
|
||||||
|
abcdDefgh
|
||||||
|
abcdDefgh
|
||||||
|
abcdDefgh
|
||||||
|
abcdDefgh
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
abcdDefgh
|
||||||
|
abcdDefgh
|
||||||
|
abcd!Defgh
|
||||||
|
abcd!*Defgh
|
||||||
|
abcd[Defgh
|
||||||
|
abcd[!Defgh
|
||||||
|
abcd[2Defgh
|
||||||
|
abcd[*2;Defgh
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
abcdDefgh
|
||||||
|
abcdDefgh
|
||||||
|
abcdDefgh
|
||||||
|
abcdDefgh
|
||||||
|
abcdDefgh
|
||||||
|
abcdDefgh
|
||||||
|
abcdDefgh
|
||||||
|
abcdDefgh
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
Hello[SGoodbye
|
||||||
|
|
||||||
|
Up[3SDown
|
||||||
|
x
|
||||||
|
[2S
|
||||||
|
-----------------------------------------------------------------------------[Sx
|
||||||
|
------------------------------------------------------------------------------[Sx
|
||||||
|
-------------------------------------------------------------------------------[Sx
|
||||||
|
--------------------------------------------------------------------------------[Sx
|
||||||
|
---------------------------------------------------------------------------------[Sx
|
||||||
|
.............................................................................[Sx
|
||||||
|
..............................................................................[Sx
|
||||||
|
...............................................................................[Sx
|
||||||
|
................................................................................[Sx
|
||||||
|
.................................................................................[Sx
|
||||||
|
[30S
|
||||||
|
The End.
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The End.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
A
|
||||||
|
B
|
||||||
|
C
|
||||||
|
D
|
||||||
|
E
|
||||||
|
F
|
||||||
|
G
|
||||||
|
H
|
||||||
|
I
|
||||||
|
J
|
||||||
|
K
|
||||||
|
L
|
||||||
|
M
|
||||||
|
N
|
||||||
|
O
|
||||||
|
P
|
||||||
|
Q
|
||||||
|
R
|
||||||
|
S
|
||||||
|
T
|
||||||
|
U
|
||||||
|
V
|
||||||
|
W
|
||||||
|
X[3S
|
||||||
|
a
|
||||||
|
b
|
||||||
|
c
|
||||||
|
d
|
||||||
|
e[3T
|
||||||
|
f
|
||||||
|
g
|
||||||
|
h
|
||||||
|
------------------------------------------------------------------------------[T1
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------[T2
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------[T3
|
||||||
|
|
||||||
|
|
||||||
|
---------------------------------------------------------------------------------[T4
|
||||||
|
|
||||||
|
|
||||||
|
..............................................................................[T5
|
||||||
|
|
||||||
|
|
||||||
|
...............................................................................[T6
|
||||||
|
|
||||||
|
|
||||||
|
................................................................................[T7
|
||||||
|
|
||||||
|
|
||||||
|
.................................................................................[T8
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
|
||||||
|
a
|
||||||
|
b
|
||||||
|
f
|
||||||
|
g
|
||||||
|
h 1
|
||||||
|
|
||||||
|
2
|
||||||
|
|
||||||
|
|
||||||
|
3
|
||||||
|
|
||||||
|
|
||||||
|
-4------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
5
|
||||||
|
|
||||||
|
6
|
||||||
|
|
||||||
|
7
|
||||||
|
|
||||||
|
|
||||||
|
8...............................................................................
|
||||||
|
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
abcdefg[Chijkl
|
||||||
|
abcdefg[10Chijkl
|
||||||
|
abcdefg[10;3Chijkl
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno[C@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop[C@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq[C@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr[C@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm[3C@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm[4C@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm[5C@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm[6C@
|
||||||
|
[79Cx
|
||||||
|
[80Cx
|
||||||
|
abcd[10C
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
abcdefg hijkl
|
||||||
|
abcdefg hijkl
|
||||||
|
abcdefg hijkl
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno @
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
|
||||||
|
r @
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm @
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm @
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm @
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm @
|
||||||
|
x
|
||||||
|
x
|
||||||
|
abcd
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
abcdefg[D!@
|
||||||
|
abcdefg[10D!@
|
||||||
|
abcdefg[2;3D!@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno[D@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop[D@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq[D@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr[D@
|
||||||
|
[Dx
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
abcdef!@
|
||||||
|
!@cdefg
|
||||||
|
abcde!@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmn@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@q
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
|
||||||
|
@
|
||||||
|
x
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
a
|
||||||
|
b
|
||||||
|
c
|
||||||
|
d[Ae[Af[Ag
|
||||||
|
h
|
||||||
|
i
|
||||||
|
j....................................................................k[Al[Am[An
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[0A0[1A1[2A2[3;5A3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
a g n
|
||||||
|
h f m
|
||||||
|
ie l
|
||||||
|
j....................................................................k
|
||||||
|
|
||||||
|
3
|
||||||
|
|
||||||
|
|
||||||
|
2
|
||||||
|
|
||||||
|
1
|
||||||
|
0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
This is the first line.
|
||||||
|
This is the second line.
|
||||||
|
And the third.
|
||||||
|
This line should be deleted.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Penultimate line.
|
||||||
|
This should be the last line.
[36AI have gone up all the way...
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
I have gone up all the way...
|
||||||
|
This line should be deleted.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Penultimate line.
|
||||||
|
This should be the last line.
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
a
|
||||||
|
b
|
||||||
|
c
|
||||||
|
d
|
||||||
|
e
|
||||||
|
f
|
||||||
|
g
|
||||||
|
h
|
||||||
|
i
|
||||||
|
j
|
||||||
|
k
|
||||||
|
l
|
||||||
|
m
|
||||||
|
n
|
||||||
|
o
|
||||||
|
p
|
||||||
|
q
|
||||||
|
r
|
||||||
|
s
|
||||||
|
t
|
||||||
|
u
|
||||||
|
v
|
||||||
|
w
|
||||||
|
x[23A0[B1[0B2[1B3[2B4[3;5B5[100BBottom line.
[8A[78CA[BB[BC[BD[BE
[6B
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
b 1
|
||||||
|
c 2
|
||||||
|
d 3
|
||||||
|
e
|
||||||
|
f 4
|
||||||
|
g
|
||||||
|
h
|
||||||
|
i 5
|
||||||
|
j
|
||||||
|
k
|
||||||
|
l
|
||||||
|
m
|
||||||
|
n
|
||||||
|
o
|
||||||
|
p
|
||||||
|
q A
|
||||||
|
r B
|
||||||
|
s C
|
||||||
|
t D
|
||||||
|
u E
|
||||||
|
v
|
||||||
|
w
|
||||||
|
x
|
||||||
|
Bottom line.
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
[Ha[2;3Hb[;4Hc[10;10Hd[5He[40;16Hf[20;100Hg[100;200H
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
b
|
||||||
|
|
||||||
|
|
||||||
|
e
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
d
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
g
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
f
|
||||||
|
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
abc[Edef[5Eghi
|
||||||
|
-------------------------------------------------------------------------abcdefg[Ehij[100Elast line
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
def
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ghi
|
||||||
|
-------------------------------------------------------------------------abcdefg
|
||||||
|
hij
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
last line
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
erased[Freplacement
|
||||||
|
|
||||||
|
|
||||||
|
line four[2Fline two
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
replacement
|
||||||
|
line two
|
||||||
|
|
||||||
|
line four
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
abcdefg[ahijkl
|
||||||
|
abcdefg[10ahijkl
|
||||||
|
abcdefg[10;3ahijkl
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno[a@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop[a@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq[a@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr[a@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm[3a@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm[4a@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm[5a@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm[6a@
|
||||||
|
[79ax
|
||||||
|
[80ax
|
||||||
|
abcd[10a
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
abcdefg hijkl
|
||||||
|
abcdefg hijkl
|
||||||
|
abcdefg hijkl
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno @
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
|
||||||
|
r @
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm @
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm @
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm @
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm @
|
||||||
|
x
|
||||||
|
x
|
||||||
|
abcd
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
abcdefg[j!@
|
||||||
|
abcdefg[10j!@
|
||||||
|
abcdefg[2;3j!@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno[j@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop[j@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq[j@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr[j@
|
||||||
|
[jx
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
abcdefg!@
|
||||||
|
abcdefg!@
|
||||||
|
abcdefg!@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
|
||||||
|
@
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
|
||||||
|
r@
|
||||||
|
x
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
a
|
||||||
|
b
|
||||||
|
c
|
||||||
|
d[ke[kf[kg
|
||||||
|
h
|
||||||
|
i
|
||||||
|
j....................................................................k[kl[km[kn
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[0k0[1k1[2k2[3;5k3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
b
|
||||||
|
c
|
||||||
|
defg
|
||||||
|
h
|
||||||
|
i
|
||||||
|
j....................................................................klmn
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
0123
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
This is the first line.
|
||||||
|
This is the second line.
|
||||||
|
And the third.
|
||||||
|
This line should be deleted.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Penultimate line.
|
||||||
|
This should be the last line.
[36kI have gone up all the way...
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
I have gone up all the way...
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
a
|
||||||
|
b
|
||||||
|
c
|
||||||
|
d
|
||||||
|
e
|
||||||
|
f
|
||||||
|
g
|
||||||
|
h
|
||||||
|
i
|
||||||
|
j
|
||||||
|
k
|
||||||
|
l
|
||||||
|
m
|
||||||
|
n
|
||||||
|
o
|
||||||
|
p
|
||||||
|
q
|
||||||
|
r
|
||||||
|
s
|
||||||
|
t
|
||||||
|
u
|
||||||
|
v
|
||||||
|
w
|
||||||
|
x[23A0[e1[0e2[1e3[2e4[3;5e5[100eBottom line.
[8A[78CA[eB[eC[eD[eE
[6e
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
b 1
|
||||||
|
c 2
|
||||||
|
d 3
|
||||||
|
e
|
||||||
|
f 4
|
||||||
|
g
|
||||||
|
h
|
||||||
|
i 5
|
||||||
|
j
|
||||||
|
k
|
||||||
|
l
|
||||||
|
m
|
||||||
|
n
|
||||||
|
o
|
||||||
|
p
|
||||||
|
q A
|
||||||
|
r B
|
||||||
|
s C
|
||||||
|
t D
|
||||||
|
u E
|
||||||
|
v
|
||||||
|
w
|
||||||
|
x
|
||||||
|
Bottom line.
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user