]> git.proxmox.com Git - mirror_novnc.git/log
mirror_novnc.git
5 years agoMerge pull request #1179 from ssebs/super-key-feature
Samuel Mannehed [Wed, 9 Jan 2019 09:41:32 +0000 (10:41 +0100)]
Merge pull request #1179 from ssebs/super-key-feature

Super key feature

5 years agoAdd Windows Key Feature
Sebastian Safari [Fri, 21 Dec 2018 17:33:26 +0000 (09:33 -0800)]
Add Windows Key Feature

5 years agoMerge branch 'user_getters_and_setters_in_websock' of https://github.com/juanjoDiaz...
Pierre Ossman [Tue, 8 Jan 2019 11:26:17 +0000 (12:26 +0100)]
Merge branch 'user_getters_and_setters_in_websock' of https://github.com/juanjoDiaz/noVNC

5 years agoUse CustomEvent for playback events
Pierre Ossman [Tue, 8 Jan 2019 11:25:42 +0000 (12:25 +0100)]
Use CustomEvent for playback events

Stop abusing Event as that doesn't work everwhere.

5 years agoAvoid using String.prototype.startsWith()
Pierre Ossman [Tue, 8 Jan 2019 11:25:01 +0000 (12:25 +0100)]
Avoid using String.prototype.startsWith()

IE doesn't support it.

5 years agoPre-convert recordings for playback
Pierre Ossman [Tue, 8 Jan 2019 10:05:05 +0000 (11:05 +0100)]
Pre-convert recordings for playback

Convert the recordings ahead of time instead of during the playback.
That way we aren't messing up the profiling with time spent converting
data, rather than processing it.

5 years agoExtract rQshift to common function
Juanjo Diaz [Sat, 8 Dec 2018 15:32:00 +0000 (17:32 +0200)]
Extract rQshift to common function

5 years agoAdd getters/setter to websock
Juanjo Diaz [Sat, 8 Dec 2018 15:31:20 +0000 (17:31 +0200)]
Add getters/setter to websock

5 years agoMerge pull request #1165 from juanjoDiaz/throw_errors_instead_of_strings
Samuel Mannehed [Mon, 26 Nov 2018 18:09:44 +0000 (19:09 +0100)]
Merge pull request #1165 from juanjoDiaz/throw_errors_instead_of_strings

Throw Error instead of String

5 years agoMerge pull request #1166 from juanjoDiaz/simplify_EventTargetMixin
Samuel Mannehed [Mon, 26 Nov 2018 17:42:10 +0000 (18:42 +0100)]
Merge pull request #1166 from juanjoDiaz/simplify_EventTargetMixin

Simplify EventTargetMixin

5 years agoMerge pull request #1168 from juanjoDiaz/use_new_error
Samuel Mannehed [Mon, 26 Nov 2018 17:36:10 +0000 (18:36 +0100)]
Merge pull request #1168 from juanjoDiaz/use_new_error

Use `new` when constructing errors

5 years agoSimplify EventTargetMixin
Juanjo Diaz [Sat, 24 Nov 2018 18:18:24 +0000 (20:18 +0200)]
Simplify EventTargetMixin

5 years agoUse `new` when constructing errors
Juanjo Diaz [Sat, 24 Nov 2018 19:44:11 +0000 (21:44 +0200)]
Use `new` when constructing errors

5 years agoThrow Error instead of String
Juanjo Diaz [Sat, 24 Nov 2018 17:47:57 +0000 (19:47 +0200)]
Throw Error instead of String

5 years agoDont reset touch mouse button state for view-only
Samuel Mannehed [Thu, 1 Nov 2018 10:22:19 +0000 (11:22 +0100)]
Dont reset touch mouse button state for view-only

Fixes bug introduced in 61f93180c8cbdc6259d0b083b51f169053f66f8c.

5 years agoFix chinese translation of "Connect"
Samuel Mannehed [Thu, 1 Nov 2018 10:04:03 +0000 (11:04 +0100)]
Fix chinese translation of "Connect"

Thanks to Lyon Hu (@chnhyg) for finding the issue.

5 years agoCzech translation
Petr [Fri, 19 Oct 2018 11:01:39 +0000 (13:01 +0200)]
Czech translation

5 years agoChange copyright header (#1138)
Solly Ross [Tue, 9 Oct 2018 10:15:35 +0000 (06:15 -0400)]
Change copyright header (#1138)

* Change copyright header

This updates the copyright header to say "The noVNC Authors".  People
who previously had copyright listings are now under the AUTHORS file.

6 years agoAdd tests for Cursor encoding
Pierre Ossman [Tue, 18 Sep 2018 09:35:48 +0000 (11:35 +0200)]
Add tests for Cursor encoding

6 years agoFix cursor encoding handling from earlier merge
Pierre Ossman [Tue, 18 Sep 2018 09:06:13 +0000 (11:06 +0200)]
Fix cursor encoding handling from earlier merge

Old code snuck in when merging the split of decoders to separate
classes. Restore the proper handling of cursors.

6 years agoMerge branch 'style' of https://github.com/CendioOssman/noVNC
Pierre Ossman [Mon, 17 Sep 2018 11:50:59 +0000 (13:50 +0200)]
Merge branch 'style' of https://github.com/CendioOssman/noVNC

6 years agoMerge branch 'decoders' of https://github.com/CendioOssman/noVNC
Pierre Ossman [Mon, 17 Sep 2018 11:47:12 +0000 (13:47 +0200)]
Merge branch 'decoders' of https://github.com/CendioOssman/noVNC

6 years agoMerge pull request #1119 from patrakov/master
Samuel Mannehed [Sun, 16 Sep 2018 09:20:34 +0000 (11:20 +0200)]
Merge pull request #1119 from patrakov/master

Show dot when there otherwise would be no visible cursor

6 years agoShow dot when there is no visible cursor
Alexander E. Patrakov [Sat, 11 Aug 2018 19:17:16 +0000 (03:17 +0800)]
Show dot when there is no visible cursor

Disabled by default.

6 years agoMoved the "pixels + mask -> RGBA" logic to rfb.js
Alexander E. Patrakov [Sat, 11 Aug 2018 17:43:38 +0000 (01:43 +0800)]
Moved the "pixels + mask -> RGBA" logic to rfb.js

As requested by Pierre Ossman - he needs this for supporting other
cursor extensions.

6 years agoEnforce switch colon spacing
Pierre Ossman [Thu, 6 Sep 2018 15:36:48 +0000 (17:36 +0200)]
Enforce switch colon spacing

6 years agoEnforce space after function name
Pierre Ossman [Thu, 6 Sep 2018 15:34:15 +0000 (17:34 +0200)]
Enforce space after function name

6 years agoEnforce space before code block
Pierre Ossman [Thu, 6 Sep 2018 15:29:26 +0000 (17:29 +0200)]
Enforce space before code block

6 years agoEnforce explicit semi-colons
Pierre Ossman [Thu, 6 Sep 2018 15:25:02 +0000 (17:25 +0200)]
Enforce explicit semi-colons

6 years agoEnforce curly braces for control statements
Pierre Ossman [Thu, 6 Sep 2018 15:22:40 +0000 (17:22 +0200)]
Enforce curly braces for control statements

6 years agoEnforce no trailing whitespace
Pierre Ossman [Thu, 6 Sep 2018 15:12:45 +0000 (17:12 +0200)]
Enforce no trailing whitespace

6 years agoEnforce keyword spacing
Pierre Ossman [Thu, 6 Sep 2018 15:08:19 +0000 (17:08 +0200)]
Enforce keyword spacing

6 years agoEnforce object key spacing
Pierre Ossman [Thu, 6 Sep 2018 15:07:11 +0000 (17:07 +0200)]
Enforce object key spacing

6 years agoEnforce function declaration style
Pierre Ossman [Thu, 6 Sep 2018 15:01:43 +0000 (17:01 +0200)]
Enforce function declaration style

6 years agoEnforce function names
Pierre Ossman [Thu, 6 Sep 2018 14:53:40 +0000 (16:53 +0200)]
Enforce function names

6 years agoEnforce function call spacing
Pierre Ossman [Thu, 6 Sep 2018 14:46:38 +0000 (16:46 +0200)]
Enforce function call spacing

6 years agoEnforce comma style
Pierre Ossman [Thu, 6 Sep 2018 14:44:53 +0000 (16:44 +0200)]
Enforce comma style

6 years agoEnforce comma spacing
Pierre Ossman [Thu, 6 Sep 2018 14:43:31 +0000 (16:43 +0200)]
Enforce comma spacing

6 years agoEnforce indentation
Pierre Ossman [Thu, 6 Sep 2018 14:17:43 +0000 (16:17 +0200)]
Enforce indentation

6 years agoDon't lint xtscancodes.js
Pierre Ossman [Thu, 6 Sep 2018 14:36:09 +0000 (16:36 +0200)]
Don't lint xtscancodes.js

It's generated by another project so we cannot control the style
of it.

6 years agoEnforce brace style
Pierre Ossman [Thu, 6 Sep 2018 13:39:26 +0000 (15:39 +0200)]
Enforce brace style

6 years agoMerge pull request #1129 from novnc/vnclitecleanup
Samuel Mannehed [Tue, 28 Aug 2018 08:46:11 +0000 (10:46 +0200)]
Merge pull request #1129 from novnc/vnclitecleanup

Cleanup of vnc_lite.html

6 years agoLimit line length to 80 in vnc_lite
Samuel Mannehed [Tue, 28 Aug 2018 08:34:00 +0000 (10:34 +0200)]
Limit line length to 80 in vnc_lite

6 years agoAdd a screen element for vnc_lite.html
Samuel Mannehed [Tue, 21 Aug 2018 09:29:39 +0000 (11:29 +0200)]
Add a screen element for vnc_lite.html

Makes it clearer where the remote screen will be created.

6 years agoSimplify element names in vnc_lite
Samuel Mannehed [Tue, 21 Aug 2018 09:29:05 +0000 (11:29 +0200)]
Simplify element names in vnc_lite

6 years agoCreate our own button for CtrlAltDel in vnc_lite
Samuel Mannehed [Tue, 21 Aug 2018 09:24:08 +0000 (11:24 +0200)]
Create our own button for CtrlAltDel in vnc_lite

In order to have better control of the layout and to make the code
easier to follow. Using input type button or buttons will imply a lot of
built in styling that differs from browser to browser.

6 years agoUse a simple prompt for passwords in vnc_lite
Samuel Mannehed [Thu, 16 Aug 2018 10:23:54 +0000 (12:23 +0200)]
Use a simple prompt for passwords in vnc_lite

It's not password-masked, but it allows for a lot simpler code.

6 years agoOrder vnc_lite functions
Samuel Mannehed [Thu, 16 Aug 2018 09:52:32 +0000 (11:52 +0200)]
Order vnc_lite functions

6 years agoRename functions in vnc_lite
Samuel Mannehed [Thu, 16 Aug 2018 09:38:35 +0000 (11:38 +0200)]
Rename functions in vnc_lite

Give them obvious names to make the code easier to understand.

6 years agoUse let and const instead of var in vnc_lite
Samuel Mannehed [Thu, 16 Aug 2018 09:34:17 +0000 (11:34 +0200)]
Use let and const instead of var in vnc_lite

The rest of noVNC has been converted already. This allows us to remove
the extra scope that was created for the VNC connection.

6 years agoRemove support for the fragment and WebUtil dep
Samuel Mannehed [Thu, 16 Aug 2018 09:23:11 +0000 (11:23 +0200)]
Remove support for the fragment and WebUtil dep

The only remaining use we had of WebUtil was getConfigVar(). Let's get
rid of that dependency and use our own, query-string-only and richly
commented version of that function. It's easier for people to get an
overview of vnc_lite if it's all in one file.

This commit removes support for the fragment, parameters can only be
passed using the query string from now on.

6 years agoCleanup non-essential options from vnc_lite
Samuel Mannehed [Thu, 16 Aug 2018 09:15:45 +0000 (11:15 +0200)]
Cleanup non-essential options from vnc_lite

This is supposed to be a simple example, it shouldn't have this many
options. This commit removes the following options:
 * logging - the default level 'warn' is good enough
 * title - a weird thing to set from the query string anyway
 * token - not used by most setups
 * encrypt - looking at the URL is good enough
 * repeaterID - not used by most setups
 * shared - uncommon setting
 * resize - not supported by most servers

Note that the removal of 'encrypt' allows us to remove logic for
establishing a default port. The default port for wss is 443 and for ws
it's 80 anyway.

6 years agoAdd code comments to vnc_lite
Samuel Mannehed [Wed, 15 Aug 2018 07:43:24 +0000 (09:43 +0200)]
Add code comments to vnc_lite

6 years agoMove decoders to separate classes
Pierre Ossman [Fri, 20 Jul 2018 14:05:16 +0000 (16:05 +0200)]
Move decoders to separate classes

Makes things a lot clearer by letting each encoding handle its own
details and state.

6 years agoHandle pseudo encodings directly
Pierre Ossman [Fri, 20 Jul 2018 14:00:43 +0000 (16:00 +0200)]
Handle pseudo encodings directly

These have very special behaviour compared to normal data encodings,
so separate out them and handle them separately.

6 years agoRemove statistics tracking
Pierre Ossman [Fri, 20 Jul 2018 14:03:07 +0000 (16:03 +0200)]
Remove statistics tracking

The profiles in the browsers are much better these days and give us
much better data than we can provide ourselves.

6 years agoGive proper int argument to encodingName()
Pierre Ossman [Fri, 20 Jul 2018 14:02:34 +0000 (16:02 +0200)]
Give proper int argument to encodingName()

6 years agoSimplify connected() function
Samuel Mannehed [Wed, 15 Aug 2018 07:19:30 +0000 (09:19 +0200)]
Simplify connected() function

6 years agoRemove unneccessary code and bling from vnc_lite
Samuel Mannehed [Wed, 15 Aug 2018 07:18:43 +0000 (09:18 +0200)]
Remove unneccessary code and bling from vnc_lite

Unused code, variables and unnecessary styles. The host/port check
would only have an effect if someone explicitly set them as empty in
the query string. The different colors of the status bar are not
necessary, nor is the styling of the background.

6 years agoMove css rules for vnc_lite to the html
Samuel Mannehed [Wed, 15 Aug 2018 07:55:52 +0000 (09:55 +0200)]
Move css rules for vnc_lite to the html

Easier to get an overview if it's all in one file.

6 years agoGet rid of icons for vnc_lite
Samuel Mannehed [Wed, 15 Aug 2018 07:15:46 +0000 (09:15 +0200)]
Get rid of icons for vnc_lite

Icons aren't required and we want to get rid of the 'app/' dependency.

6 years agoMerge branch 'hidpi_scale' of https://github.com/CendioOssman/noVNC
Pierre Ossman [Thu, 16 Aug 2018 15:50:09 +0000 (17:50 +0200)]
Merge branch 'hidpi_scale' of https://github.com/CendioOssman/noVNC

6 years agoReplace bad sinon stub in mouse tests
Pierre Ossman [Thu, 16 Aug 2018 15:36:54 +0000 (17:36 +0200)]
Replace bad sinon stub in mouse tests

It screwed up important calls inside the code being tested. Avoid
the stub by creating a temporary element with the desired properties.

6 years agoRemove iOS specific code from vnc_lite
Samuel Mannehed [Tue, 14 Aug 2018 14:40:45 +0000 (16:40 +0200)]
Remove iOS specific code from vnc_lite

vnc_lite.html doesn't have touch support anyway

6 years agoRemove machine control buttons from vnc_lite
Samuel Mannehed [Thu, 9 Aug 2018 12:35:18 +0000 (14:35 +0200)]
Remove machine control buttons from vnc_lite

The vnc_lite example is intended to be minimal and these buttons are
only useful in special cases.

6 years agoRevert "Handle if desktopName isn't set.."
Samuel Mannehed [Thu, 16 Aug 2018 13:49:26 +0000 (15:49 +0200)]
Revert "Handle if desktopName isn't set.."

This reverts commit 22000b93d5aa3d12823e7440533e8eb25739e9c0. The
'desktopname' and the 'connect' events are dispatched by us in RFB and
are thus serial.

6 years agoMerge pull request #1117 from novnc/bug/fix-test-playback
Samuel Mannehed [Thu, 16 Aug 2018 13:38:43 +0000 (15:38 +0200)]
Merge pull request #1117 from novnc/bug/fix-test-playback

Fix test playback

6 years agoSupport password auth recordings for playback
Pierre Ossman [Thu, 16 Aug 2018 13:32:09 +0000 (15:32 +0200)]
Support password auth recordings for playback

When password auth is enabled on the server, the RFB object sends a
'credentialsrequired' event to the UI. This commit adds support for
this event to our recoding playback.

6 years agoHandle if desktopName isn't set when connected
Samuel Mannehed [Thu, 16 Aug 2018 10:07:31 +0000 (12:07 +0200)]
Handle if desktopName isn't set when connected

We can't guarantee that the desktopName event has been fired before the
connect event.

6 years agoMerge pull request #1118 from novnc/disabledragwhilescale
Samuel Mannehed [Thu, 16 Aug 2018 08:31:09 +0000 (10:31 +0200)]
Merge pull request #1118 from novnc/disabledragwhilescale

Turn off view drag when scaling

6 years agoMerge enableDisableViewClip and updateViewClip
Samuel Mannehed [Mon, 30 Jul 2018 08:49:42 +0000 (10:49 +0200)]
Merge enableDisableViewClip and updateViewClip

Makes the code easier to follow and makes sure that viewDrag is
properly disabled when scaling. Fixes #1110.

6 years agoUse macOS 10.13 for Safari tests
Samuel Mannehed [Wed, 15 Aug 2018 06:10:38 +0000 (08:10 +0200)]
Use macOS 10.13 for Safari tests

Safari 11 had a bug (#1125) which should be fixed in Safari 11.1 which comes with macOS 10.13.

6 years agoMove dragThreshold definition to util/
Samuel Mannehed [Fri, 10 Aug 2018 09:17:58 +0000 (11:17 +0200)]
Move dragThreshold definition to util/

In order to avoid multiple declarations that has to be updated in the
case of future updates.

6 years agoRemove firebug comments
Samuel Mannehed [Wed, 8 Aug 2018 11:59:46 +0000 (13:59 +0200)]
Remove firebug comments

Firebug is discontinued and it's features are included in browser
development tools now a days.

6 years agoDetail path to icon Makefile
Samuel Mannehed [Wed, 8 Aug 2018 11:51:02 +0000 (13:51 +0200)]
Detail path to icon Makefile

6 years agoAdd a record flag to launch.sh
Solly Ross [Sun, 29 Jul 2018 23:16:56 +0000 (19:16 -0400)]
Add a record flag to launch.sh

Add the `--record` flag to launch.js, for easy recording when testing.

6 years agoRemove setViewDrag function
Samuel Mannehed [Mon, 30 Jul 2018 08:46:41 +0000 (10:46 +0200)]
Remove setViewDrag function

Unnecessary function only used in the toggle function above.

6 years agoRemove unnecessary code
Samuel Mannehed [Mon, 30 Jul 2018 08:02:44 +0000 (10:02 +0200)]
Remove unnecessary code

The enableDisableViewClip call in the fullscreen code didn't have any
effect and should have been removed when the special case for clipping
in IE and Safari fullscreen was removed in b18ef81.

The setViewDrag call claimed to disable view drag on UI state change.
The UI states are:

 init, connecting, connected, reconnecting, disconnecting, disconnected

The only state where the called function didn't immediately return was
"connected" and that's the only state where enabling view drag is
possible. Thus it could never have been enabled when changing to the
"connected" state.

6 years agoFix perf/playback tool
Solly Ross [Sun, 29 Jul 2018 23:14:56 +0000 (19:14 -0400)]
Fix perf/playback tool

Somewhere along the way, the refactors broke playback.js.  This fixes
the actual functionality, and makes its JS loading match that in
vnc.html.

6 years agoHandle fractional screen sizes
Pierre Ossman [Thu, 26 Jul 2018 12:15:59 +0000 (14:15 +0200)]
Handle fractional screen sizes

With high DPI systems we can end up with a container with a size that
is not an integer number of CSS pixels. Make sure we can handle those
cases by allowing a fractional size for the output canvas. Framebuffer
size and viewport coordinates are still restricted to integer dimensions
though.

Based on initial patch by Alexander E. Patrakov.

6 years agoMerge branch 'master' of https://github.com/patrakov/noVNC
Pierre Ossman [Wed, 25 Jul 2018 18:40:51 +0000 (20:40 +0200)]
Merge branch 'master' of https://github.com/patrakov/noVNC

6 years agoDocumented browser cache issue
Alexander E. Patrakov [Wed, 18 Jul 2018 02:09:13 +0000 (10:09 +0800)]
Documented browser cache issue

6 years agoUse newer macOS test machine for Travis
Pierre Ossman [Mon, 16 Jul 2018 11:46:48 +0000 (13:46 +0200)]
Use newer macOS test machine for Travis

6 years agoStop transpiling karma tests
Pierre Ossman [Fri, 13 Jul 2018 13:06:34 +0000 (15:06 +0200)]
Stop transpiling karma tests

This runs our code in the same manner as it would be used if loaded
directly in the browser. Includes the same kind of fallback for older
browsers.

6 years agoFix proper triggering of module fallback
Pierre Ossman [Fri, 13 Jul 2018 13:02:04 +0000 (15:02 +0200)]
Fix proper triggering of module fallback

We might be in the "interactive" readyState, which means that
DOMContentLoaded has already fired and we'll hang.

6 years agoDon't stub out ES module imports
Pierre Ossman [Fri, 13 Jul 2018 12:21:52 +0000 (14:21 +0200)]
Don't stub out ES module imports

It is not allowed and only happens to work because babel doesn't
strictly follow the specification. It doesn't seem necessary for the
tests to run, so just remove it.

6 years agoBetter currentScript fallback
Pierre Ossman [Fri, 13 Jul 2018 12:20:52 +0000 (14:20 +0200)]
Better currentScript fallback

The previous heuristic didn't work under all circumstances, so try
something more robust.

6 years agoMove sinon to karma framework
Pierre Ossman [Fri, 13 Jul 2018 11:12:04 +0000 (13:12 +0200)]
Move sinon to karma framework

This frees us from manual imports, and makes things less magical
as those aren't ES modules even if the code suggest that the are.

6 years agoUse the classic `function foo() { ... }` for top level functions or functions that...
Juanjo Diaz [Mon, 9 Jul 2018 20:48:22 +0000 (22:48 +0200)]
Use the classic `function foo() { ... }` for top level functions or functions that depend on the scope

6 years agoUse fat arrow functions `const foo = () => { ... };` for callbacks
Juanjo Diaz [Mon, 9 Jul 2018 20:47:29 +0000 (22:47 +0200)]
Use fat arrow functions `const foo = () => { ... };` for callbacks
and any other function that is passed around and it's not a top level function

6 years agoUse ES6 classes
Juanjo Diaz [Thu, 5 Jul 2018 19:31:56 +0000 (21:31 +0200)]
Use ES6 classes
Always use the shorthand notation if the function is a method of an object or class `{ foo() { ... } }` or `class bar { foo() { ... } }`
unless it's a callback in which case you a fat arrow function should be used `{ cb: () => { ... } }`

6 years agoMerge branch 'cursor' of https://github.com/CendioOssman/noVNC
Pierre Ossman [Wed, 11 Jul 2018 11:39:37 +0000 (13:39 +0200)]
Merge branch 'cursor' of https://github.com/CendioOssman/noVNC

6 years agoProvide fallback cursor method
Pierre Ossman [Wed, 28 Feb 2018 15:38:09 +0000 (16:38 +0100)]
Provide fallback cursor method

Some browsers don't support custom cursors, and there are cases
where the browsers refuse to show the cursor. Handle both of these
cases by letting the browser render the cursor via a floating
canvas.

This allows us to support a local cursor at all times.

6 years agoSort vkeys table
Pierre Ossman [Wed, 4 Jul 2018 13:53:41 +0000 (15:53 +0200)]
Sort vkeys table

6 years agoMerge branch 'fix/ie11-numpad5-compatibility' of https://github.com/vlastoun/noVNC
Pierre Ossman [Wed, 4 Jul 2018 13:53:30 +0000 (15:53 +0200)]
Merge branch 'fix/ie11-numpad5-compatibility' of https://github.com/vlastoun/noVNC

6 years agoFixes #1075
Henry Vindin [Sun, 1 Jul 2018 05:32:46 +0000 (15:32 +1000)]
Fixes #1075

Rather than trying to pick a utility, we should be able to just use bash to check if a port is available or not.

We can probably assume bash is available due to the shebang declaring it.

6 years agoAvoid TypedArray.slice() because of IE11
Samuel Mannehed [Fri, 15 Jun 2018 10:00:43 +0000 (12:00 +0200)]
Avoid TypedArray.slice() because of IE11

6 years agoUse string assignment operator instead of concat()
Samuel Mannehed [Fri, 15 Jun 2018 09:59:28 +0000 (11:59 +0200)]
Use string assignment operator instead of concat()

The assignment operator is a lot faster.

6 years agoUse the correct slicing for rQshiftStr
Samuel Mannehed [Fri, 15 Jun 2018 09:56:56 +0000 (11:56 +0200)]
Use the correct slicing for rQshiftStr

This didn't result in any error however since slice() handles such
mistakes gracefully.

6 years agoAdd rQshiftStr unit test for large strings
Samuel Mannehed [Fri, 15 Jun 2018 09:53:51 +0000 (11:53 +0200)]
Add rQshiftStr unit test for large strings