Skip to content

Commit c434f96

Browse files
Merge pull request livecode#6327 from livecodeali/feature-timezone_library
[[ TimeZoneLibrary ]] Add a time zone handling library
2 parents 3efbc2f + f36ac04 commit c434f96

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+40535
-1
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ addons:
113113
# Packages needed for building LiveCode
114114
apt:
115115
packages:
116+
- gawk
116117
- libx11-dev
117118
- libxext-dev
118119
- libxrender-dev

Installer/package.txt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,8 @@ component Extensions
481481
into [[ToolsFolder]]/Extensions place
482482
rfolder macosx:packaged_extensions/com.livecode.library.objectrepository
483483

484+
include TimeZone
485+
484486
component Toolchain.MacOSX
485487
into [[ToolsFolder]]/Toolchain place
486488
executable macosx:lc-compile as lc-compile
@@ -892,3 +894,29 @@ component Toolset
892894
file ide-support:revliburl.livecodescript
893895

894896
////////////////////////////////////////////////////////////////////////////////
897+
898+
component TimeZone
899+
into [[ToolsFolder]]/Extensions place
900+
rfolder macosx:packaged_extensions/com.livecode.library.timezone
901+
into [[ToolsFolder]]/Extensions/com.livecode.library.timezone place
902+
rfolder android:packaged_extensions/com.livecode.library.timezone/code
903+
into [[ToolsFolder]]/Extensions/com.livecode.library.timezone place
904+
rfolder ios:iphonesimulator8.2/packaged_extensions/com.livecode.library.timezone/code
905+
into [[ToolsFolder]]/Extensions/com.livecode.library.timezone place
906+
rfolder ios:iphonesimulator9.2/packaged_extensions/com.livecode.library.timezone/code
907+
into [[ToolsFolder]]/Extensions/com.livecode.library.timezone place
908+
rfolder ios:iphonesimulator10.2/packaged_extensions/com.livecode.library.timezone/code
909+
into [[ToolsFolder]]/Extensions/com.livecode.library.timezone place
910+
rfolder ios:iphonesimulator11.2/packaged_extensions/com.livecode.library.timezone/code
911+
into [[ToolsFolder]]/Extensions/com.livecode.library.timezone place
912+
rfolder ios:iphoneos9.2/packaged_extensions/com.livecode.library.timezone/code
913+
into [[ToolsFolder]]/Extensions/com.livecode.library.timezone place
914+
rfolder ios:iphoneos10.2/packaged_extensions/com.livecode.library.timezone/code
915+
into [[ToolsFolder]]/Extensions/com.livecode.library.timezone place
916+
rfolder ios:iphoneos11.2/packaged_extensions/com.livecode.library.timezone/code
917+
into [[ToolsFolder]]/Extensions/com.livecode.library.timezone place
918+
rfolder windows:packaged_extensions/com.livecode.library.timezone/code
919+
into [[ToolsFolder]]/Extensions/com.livecode.library.timezone place
920+
rfolder linux-x86_64:packaged_extensions/com.livecode.library.timezone/code
921+
into [[ToolsFolder]]/Extensions/com.livecode.library.timezone place
922+
rfolder linux-x86:packaged_extensions/com.livecode.library.timezone/code

docs/development/build-linux.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ The following additional packages should be installed before building:
5555
* build-essential
5656
* automake
5757
* libtool
58+
* gawk
5859
* git
5960
* curl
6061
* flex
@@ -77,7 +78,7 @@ The following additional packages should be installed before building:
7778

7879
Use
7980

80-
sudo apt-get install build-essential automake libtool git curl flex &&
81+
sudo apt-get install build-essential automake libtool gawk git curl flex &&
8182
sudo apt-get install bison libx11-dev libxext-dev libxrender-dev libxft-dev &&
8283
sudo apt-get install libxinerama-dev libxv-dev libxcursor-dev libfreetype6-dev &&
8384
sudo apt-get install libpopt-dev libesd0-dev liblcms2-dev pkg-config libgtk2.0-dev zip

extensions/extensions.gyp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@
150150
'libraries/json/json.lcb',
151151
'libraries/objectrepository/objectrepository.lcb',
152152
'libraries/ini/ini.lcb',
153+
'libraries/timezone/timezone.lcb',
153154

154155
'widgets/androidbutton/androidbutton.lcb',
155156
'widgets/androidfield/androidfield.lcb',
@@ -226,6 +227,7 @@
226227
'dependencies':
227228
[
228229
'libraries/ini/inih/inih.gyp:inih',
230+
'libraries/timezone/tz/tz.gyp:tz',
229231
],
230232
},
231233
],
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Time zone library
2+
A time zone library has been added for converting to and from
3+
universal time in various time zones. It uses the IANA timezone
4+
database to do the conversion.
5+
6+
The library contains three handlers:
7+
* `ToUniversalTime(pSeconds, pTimeZone)` - convert from local time in the specified time zone to universal time
8+
* `FromUniversalTime(pSeconds, pTimeZone)` - convert from universal time to local time in the specified time zone
9+
* `TimeZones()` - list of valid time zones, one per line
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
script "TimeZoneLibrary"
2+
/*
3+
Copyright (C) 2017 LiveCode Ltd.
4+
5+
This file is part of LiveCode.
6+
7+
LiveCode is free software; you can redistribute it and/or modify it under
8+
the terms of the GNU General Public License v3 as published by the Free
9+
Software Foundation.
10+
11+
LiveCode is distributed in the hope that it will be useful, but WITHOUT ANY
12+
WARRANTY; without even the implied warranty of MERCHANTABILITY or
13+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14+
for more details.
15+
16+
You should have received a copy of the GNU General Public License
17+
along with LiveCode. If not see <http://www.gnu.org/licenses/>. */
18+
19+
on TestSetup
20+
TestSkipIfNot "platform", "macos,linux"
21+
TestLoadExtension "com.livecode.library.timezone"
22+
end TestSetup
23+
24+
on TestTimezoneRoundTrip
25+
local tSeconds, tRoundTrip
26+
put the seconds into tSeconds
27+
repeat for each line tZone in TimeZones()
28+
try
29+
put ToUniversalTime(FromUniversalTime(tSeconds, tZone), tZone) into tRoundTrip
30+
TestAssert tZone & "timezone round trip", tRoundTrip is tSeconds
31+
catch tError
32+
TestAssert tZone & "timezone round trip", false
33+
end try
34+
end repeat
35+
end TestTimezoneRoundTrip

0 commit comments

Comments
 (0)