xcpretty 0.1.12 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.hound.yml +2 -10
  3. data/.rubocop.yml +239 -0
  4. data/.travis.yml +1 -8
  5. data/CHANGELOG.md +35 -0
  6. data/Gemfile +1 -0
  7. data/README.md +23 -76
  8. data/Rakefile +10 -8
  9. data/bin/xcpretty +14 -14
  10. data/features/simple_format.feature +39 -17
  11. data/features/steps/formatting_steps.rb +33 -4
  12. data/features/steps/html_steps.rb +1 -0
  13. data/features/steps/json_steps.rb +2 -1
  14. data/features/steps/junit_steps.rb +4 -3
  15. data/features/steps/report_steps.rb +1 -0
  16. data/features/support/env.rb +4 -3
  17. data/features/test_format.feature +4 -4
  18. data/lib/xcpretty/ansi.rb +14 -13
  19. data/lib/xcpretty/formatters/formatter.rb +24 -8
  20. data/lib/xcpretty/formatters/knock.rb +2 -1
  21. data/lib/xcpretty/formatters/rspec.rb +1 -0
  22. data/lib/xcpretty/formatters/simple.rb +18 -3
  23. data/lib/xcpretty/formatters/tap.rb +3 -2
  24. data/lib/xcpretty/parser.rb +38 -15
  25. data/lib/xcpretty/printer.rb +1 -0
  26. data/lib/xcpretty/reporters/html.rb +7 -5
  27. data/lib/xcpretty/reporters/json_compilation_database.rb +6 -10
  28. data/lib/xcpretty/reporters/junit.rb +6 -3
  29. data/lib/xcpretty/snippet.rb +0 -2
  30. data/lib/xcpretty/syntax.rb +38 -31
  31. data/lib/xcpretty/term.rb +14 -0
  32. data/lib/xcpretty/version.rb +2 -1
  33. data/lib/xcpretty.rb +5 -6
  34. data/spec/fixtures/constants.rb +15 -2
  35. data/spec/fixtures/custom_formatter.rb +2 -1
  36. data/spec/spec_helper.rb +2 -1
  37. data/spec/support/matchers/colors.rb +1 -0
  38. data/spec/xcpretty/ansi_spec.rb +1 -0
  39. data/spec/xcpretty/formatters/formatter_spec.rb +27 -16
  40. data/spec/xcpretty/formatters/rspec_spec.rb +1 -0
  41. data/spec/xcpretty/formatters/simple_spec.rb +22 -3
  42. data/spec/xcpretty/parser_spec.rb +39 -10
  43. data/spec/xcpretty/printer_spec.rb +15 -13
  44. data/spec/xcpretty/syntax_spec.rb +24 -48
  45. data/spec/xcpretty/term_spec.rb +26 -0
  46. data/xcpretty.gemspec +15 -11
  47. metadata +42 -14
  48. data/vendor/json_pure/COPYING +0 -57
  49. data/vendor/json_pure/LICENSE +0 -340
  50. data/vendor/json_pure/generator.rb +0 -443
  51. data/vendor/json_pure/parser.rb +0 -364
@@ -106,6 +106,11 @@ module XCPretty
106
106
  @parser.parse(SAMPLE_COMPILE_XIB)
107
107
  end
108
108
 
109
+ it "parses compiling storyboards" do
110
+ @formatter.should receive(:format_compile_storyboard).with("Main.storyboard", "sample/Main.storyboard")
111
+ @parser.parse(SAMPLE_COMPILE_STORYBOARD)
112
+ end
113
+
109
114
  it 'parses CopyPlistFile' do
110
115
  @formatter.should receive(:format_copy_plist_file).with(
111
116
  '/path/to/Some.plist', '/some other/File.plist')
@@ -119,7 +124,7 @@ module XCPretty
119
124
 
120
125
  it "parses CpHeader" do
121
126
  @formatter.should receive(:format_copy_header_file).with(
122
- '/path/to/Header.h','/some other/path/Header.h')
127
+ '/path/to/Header.h', '/some other/path/Header.h')
123
128
  @parser.parse('CpHeader /path/to/Header.h /some other/path/Header.h')
124
129
  end
125
130
 
@@ -198,6 +203,16 @@ module XCPretty
198
203
  @parser.parse(SAMPLE_MEASURING_TEST)
199
204
  end
200
205
 
206
+ it "parses build success indicator" do
207
+ @formatter.should receive(:format_phase_success).with('BUILD')
208
+ @parser.parse(SAMPLE_BUILD_SUCCEEDED)
209
+ end
210
+
211
+ it "parses clean success indicator" do
212
+ @formatter.should receive(:format_phase_success).with('CLEAN')
213
+ @parser.parse(SAMPLE_CLEAN_SUCCEEDED)
214
+ end
215
+
201
216
  it "parses PhaseScriptExecution" do
202
217
  @formatter.should receive(:format_phase_script_execution).with('Check Pods Manifest.lock')
203
218
  @parser.parse(SAMPLE_RUN_SCRIPT)
@@ -226,7 +241,7 @@ module XCPretty
226
241
 
227
242
  it 'parses changing directories' do
228
243
  @formatter.should receive(:format_shell_command).with('cd',
229
- '/some/place/out\ there')
244
+ '/some/place/out\ there')
230
245
  @parser.parse(' cd /some/place/out\ there')
231
246
  end
232
247
 
@@ -238,8 +253,8 @@ module XCPretty
238
253
 
239
254
  it "parses Touch" do
240
255
  @formatter.should receive(:format_touch).with(
241
- '/Users/musalj/Library/Developer/Xcode/DerivedData/Alcatraz-aobuxcinaqyzjugrnxjjhfzgwaou/Build/Products/Debug/AlcatrazTests.octest',
242
- 'AlcatrazTests.octest')
256
+ '/Users/musalj/Library/Developer/Xcode/DerivedData/Alcatraz-aobuxcinaqyzjugrnxjjhfzgwaou/Build/Products/Debug/Alcatraz Tests.octest',
257
+ 'Alcatraz Tests.octest')
243
258
  @parser.parse(SAMPLE_TOUCH)
244
259
  end
245
260
 
@@ -328,7 +343,7 @@ module XCPretty
328
343
  end
329
344
 
330
345
  it "parses cocoapods errors" do
331
- @formatter.should receive(:format_error).with("The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.")
346
+ @formatter.should receive(:format_error).with("error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.")
332
347
  @parser.parse(SAMPLE_PODS_ERROR)
333
348
  end
334
349
 
@@ -351,17 +366,25 @@ module XCPretty
351
366
  "'SomeRandomHeader.h' file not found",
352
367
  '#import "SomeRandomHeader.h"',
353
368
  ' ^'
354
- # For now, it's probably not worth to provide the import stack
355
- # It'd require more state, and not sure if it'd be any useful
356
- #%Q(In file included from /Users/musalj/code/OSS/SampleApp/Pods/SuperCoolPod/SuperAwesomeClass.m:12:
357
- #In file included from /Users/musalj/code/OSS/SampleApp/Pods/../LessCoolPod/LessCoolClass.h:9:
358
- #In file included from /Users/musalj/code/OSS/SampleApp/Pods/../LessCoolPod/EvenLessCoolClass.h:10:)
369
+ # For now, it's probably not worth to provide the import stack
370
+ # It'd require more state, and not sure if it'd be any useful
371
+ # %Q(In file included from /Users/musalj/code/OSS/SampleApp/Pods/SuperCoolPod/SuperAwesomeClass.m:12:
372
+ # In file included from /Users/musalj/code/OSS/SampleApp/Pods/../LessCoolPod/LessCoolClass.h:9:
373
+ # In file included from /Users/musalj/code/OSS/SampleApp/Pods/../LessCoolPod/EvenLessCoolClass.h:10:)
359
374
  )
360
375
  SAMPLE_FATAL_COMPILE_ERROR.each_line do |line|
361
376
  @parser.parse(line)
362
377
  end
363
378
  end
364
379
 
380
+ it 'parses file missing errors' do
381
+ @formatter.should receive(:format_file_missing_error).with(
382
+ 'error: no such file or directory:',
383
+ '/Users/travis/build/supermarin/project/Classes/Class + Category/Two Words/MissingViewController.swift'
384
+ )
385
+ @parser.parse(SAMPLE_FILE_MISSING_ERROR)
386
+ end
387
+
365
388
  it 'parses fatal error: on the beginning of the line for corrupted AST files' do
366
389
  @formatter.should receive(:format_error).with(
367
390
  "fatal error: malformed or corrupted AST file: 'could not find file '/Users/mpv/dev/project/Crashlytics.framework/Headers/Crashlytics.h' referenced by AST file' note: after modifying system headers, please delete the module cache at '/Users/mpv/Library/Developer/Xcode/DerivedData/ModuleCache/M5WJ0FYE7N06'"
@@ -444,6 +467,11 @@ module XCPretty
444
467
  @parser.parse(line)
445
468
  end
446
469
  end
470
+
471
+ it "parses ld warnings" do
472
+ @formatter.should receive(:format_ld_warning).with("ld: embedded dylibs/frameworks only run on iOS 8 or later")
473
+ @parser.parse("ld: warning: embedded dylibs/frameworks only run on iOS 8 or later")
474
+ end
447
475
  end
448
476
 
449
477
  context "summary" do
@@ -511,3 +539,4 @@ module XCPretty
511
539
 
512
540
  end
513
541
  end
542
+
@@ -7,7 +7,7 @@ module XCPretty
7
7
 
8
8
  before(:each) do
9
9
  STDOUT.stub(:print) { |text| text }
10
- @printer = Printer.new(:colorize => true, :unicode => true, :formatter => DummyFormatter)
10
+ @printer = Printer.new(colorize: true, unicode: true, formatter: DummyFormatter)
11
11
  end
12
12
 
13
13
  it "prints to stdout" do
@@ -22,7 +22,7 @@ module XCPretty
22
22
 
23
23
  it "prints with newlines only when needed" do
24
24
  @printer.formatter.stub(:optional_newline).and_return("")
25
-
25
+
26
26
  STDOUT.should receive(:print).with("hey ho let's go")
27
27
  @printer.pretty_print("hey ho let's go")
28
28
  end
@@ -35,19 +35,21 @@ module XCPretty
35
35
  end
36
36
  end
37
37
 
38
- module XCPretty; class DummyFormatter < Formatter
38
+ module XCPretty
39
+ class DummyFormatter < Formatter
39
40
 
40
- def initialize(unicode, colorize)
41
- @use_unicode = unicode
42
- @colorize = colorize
43
- end
41
+ def initialize(unicode, colorize)
42
+ @use_unicode = unicode
43
+ @colorize = colorize
44
+ end
44
45
 
45
- def pretty_format(text)
46
- text
47
- end
46
+ def pretty_format(text)
47
+ text
48
+ end
48
49
 
49
- def optional_newline
50
- "\n"
50
+ def optional_newline
51
+ "\n"
52
+ end
51
53
  end
54
+ end
52
55
 
53
- end; end
@@ -1,62 +1,38 @@
1
1
  require 'xcpretty/syntax'
2
2
 
3
3
  module XCPretty
4
-
5
4
  describe Syntax do
5
+ it 'syntax highlights given code' do
6
+ code = 'self.color = [UIColor redColor];'
7
+ snippet = Snippet.new(code, 'test.m')
8
+ output = Syntax.highlight(snippet)
6
9
 
7
- let(:snippet) { Snippet.new('self.color = [UIColor redColor];', 'test.m') }
8
- let(:code) { snippet.contents }
9
-
10
- it "caches the pygments availability" do
11
- Pygments.should_receive(:system).once.and_return(false)
12
- 4.times { Syntax.highlight(Snippet.new('meh')) }
10
+ stripped_output = output.gsub(/(?:(?:\u001b\[)|\u009b)(?:(?:[0-9]{1,3})?(?:;[0-9]{0,3})*?[A-M|f-m])|\u001b[A-M]/, '')
11
+ stripped_output.should == code
13
12
  end
14
13
 
15
- context "pygments are installed" do
16
-
17
- before(:each) do
18
- Pygments.stub(:available?).and_return(true)
19
- end
20
-
21
- it 'supports highlighting with options' do
22
- Pygments.should_receive(:pygmentize).with(code, 'objc', '-f html')
23
- Syntax.highlight(snippet, '-f html')
24
- end
25
-
26
- it 'highlights objective-c code by filename' do
27
- Pygments.should_receive(:pygmentize).with(code, 'objc', '')
28
- Syntax.highlight(snippet)
29
- end
30
-
31
- it 'highlights objective-c code by default' do
32
- Pygments.should_receive(:pygmentize).with(code, 'objc', '')
33
- Syntax.highlight(Snippet.new(code))
34
- end
35
-
36
- it 'highlights other languages by filename' do
37
- test_language 'swift', '.swift'
38
- test_language 'c++', '.cc', '.cpp', '.hpp', '.c++', '.cxx'
39
- test_language 'objc++', '.mm', '.hh'
40
- test_language 'objc', '.m', '.h'
41
- test_language 'dylan', '.dyl'
42
- test_language 'ruby', '.rb', '.ruby'
43
- end
44
-
45
- def test_language(language, *extensions)
46
- extensions.each do |extension|
47
- Pygments.should_receive(:pygmentize).with(code, language, '')
48
- Syntax.highlight(Snippet.new(code, "file#{extension}"))
49
- end
50
- end
14
+ it 'uses Objective-C lexer for Objective-C' do
15
+ Syntax.find_lexer('test.m', '').should == Rouge::Lexers::ObjectiveC
16
+ Syntax.find_lexer('test.h', '').should == Rouge::Lexers::ObjectiveC
51
17
  end
52
18
 
53
- context "pygments are not installed" do
19
+ it 'uses Swift lexer for Swift' do
20
+ Syntax.find_lexer('test.swift', '').should == Rouge::Lexers::Swift
21
+ end
54
22
 
55
- it "prints plain code" do
56
- Syntax.stub(:system).and_return(false)
57
- Syntax.highlight(snippet).should == 'self.color = [UIColor redColor];'
58
- end
23
+ it 'uses Ruby lexer for Ruby' do
24
+ Syntax.find_lexer('test.rb', '').should == Rouge::Lexers::Ruby
25
+ Syntax.find_lexer('test.ruby', '').should == Rouge::Lexers::Ruby
26
+ end
59
27
 
28
+ it 'uses C++ lexer for C++' do
29
+ Syntax.find_lexer('test.cpp', '').should == Rouge::Lexers::Cpp
30
+ Syntax.find_lexer('test.cc', '').should == Rouge::Lexers::Cpp
31
+ Syntax.find_lexer('test.c++', '').should == Rouge::Lexers::Cpp
32
+ Syntax.find_lexer('test.cxx', '').should == Rouge::Lexers::Cpp
33
+ Syntax.find_lexer('test.hpp', '').should == Rouge::Lexers::Cpp
34
+ Syntax.find_lexer('test.h++', '').should == Rouge::Lexers::Cpp
35
+ Syntax.find_lexer('test.hxx', '').should == Rouge::Lexers::Cpp
60
36
  end
61
37
  end
62
38
  end
@@ -0,0 +1,26 @@
1
+ require 'xcpretty/term'
2
+
3
+ module XCPretty
4
+ describe Term do
5
+ it "marks unicode as unavailable" do
6
+ Encoding.stub(:default_external).and_return(Encoding::ASCII)
7
+ Term.unicode?.should be false
8
+ end
9
+
10
+ it "marks unicode as available" do
11
+ Encoding.stub(:default_external).and_return(Encoding::UTF_8)
12
+ Term.unicode?.should be true
13
+ end
14
+
15
+ it 'marks color as unavailable' do
16
+ STDOUT.stub(:tty?).and_return(false)
17
+ Term.color?.should be false
18
+ end
19
+
20
+ it 'marks color as available' do
21
+ STDOUT.stub(:tty?).and_return(true)
22
+ Term.color?.should be true
23
+ end
24
+ end
25
+ end
26
+
data/xcpretty.gemspec CHANGED
@@ -8,16 +8,16 @@ Gem::Specification.new do |spec|
8
8
  spec.version = XCPretty::VERSION
9
9
  spec.authors = ["Marin Usalj", "Delisa Mason"]
10
10
  spec.email = ["marin2211@gmail.com", "iskanamagus@gmail.com"]
11
- spec.required_ruby_version = '>= 1.8.7'
12
- spec.description =
13
- %q{
14
- Xcodebuild formatter designed to be piped with `xcodebuild`,
15
- and thus keeping 100% compatibility.
11
+ spec.required_ruby_version = '>= 2.0.0'
12
+ spec.description =
13
+ %q{
14
+ Xcodebuild formatter designed to be piped with `xcodebuild`,
15
+ and thus keeping 100% compatibility.
16
16
 
17
- It has modes for CI, running tests (RSpec dot-style),
18
- and it can also mine Bitcoins.
19
- }
20
- spec.summary = %q{xcodebuild formatter done right}
17
+ It has modes for CI, running tests (RSpec dot-style),
18
+ and it can also mine Bitcoins.
19
+ }
20
+ spec.summary = %q(xcodebuild formatter done right)
21
21
  spec.homepage = "https://github.com/supermarin/xcpretty"
22
22
  spec.license = "MIT"
23
23
 
@@ -26,8 +26,12 @@ Gem::Specification.new do |spec|
26
26
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
27
27
  spec.require_paths = ["lib"]
28
28
 
29
+ spec.add_dependency 'rouge', '~> 1.8'
30
+
29
31
  spec.add_development_dependency "bundler", "~> 1.3"
30
32
  spec.add_development_dependency "rake"
31
- spec.add_development_dependency "rspec", "~> 2"
32
- spec.add_development_dependency "cucumber", "~> 1"
33
+ spec.add_development_dependency "rubocop", "~> 0.34.0"
34
+ spec.add_development_dependency "rspec", "~> 2.0"
35
+ spec.add_development_dependency "cucumber", "~> 1.0"
33
36
  end
37
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xcpretty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.12
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marin Usalj
@@ -9,8 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-09-08 00:00:00.000000000 Z
12
+ date: 2015-10-20 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rouge
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.8'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.8'
14
28
  - !ruby/object:Gem::Dependency
15
29
  name: bundler
16
30
  requirement: !ruby/object:Gem::Requirement
@@ -39,37 +53,51 @@ dependencies:
39
53
  - - ">="
40
54
  - !ruby/object:Gem::Version
41
55
  version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rubocop
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: 0.34.0
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: 0.34.0
42
70
  - !ruby/object:Gem::Dependency
43
71
  name: rspec
44
72
  requirement: !ruby/object:Gem::Requirement
45
73
  requirements:
46
74
  - - "~>"
47
75
  - !ruby/object:Gem::Version
48
- version: '2'
76
+ version: '2.0'
49
77
  type: :development
50
78
  prerelease: false
51
79
  version_requirements: !ruby/object:Gem::Requirement
52
80
  requirements:
53
81
  - - "~>"
54
82
  - !ruby/object:Gem::Version
55
- version: '2'
83
+ version: '2.0'
56
84
  - !ruby/object:Gem::Dependency
57
85
  name: cucumber
58
86
  requirement: !ruby/object:Gem::Requirement
59
87
  requirements:
60
88
  - - "~>"
61
89
  - !ruby/object:Gem::Version
62
- version: '1'
90
+ version: '1.0'
63
91
  type: :development
64
92
  prerelease: false
65
93
  version_requirements: !ruby/object:Gem::Requirement
66
94
  requirements:
67
95
  - - "~>"
68
96
  - !ruby/object:Gem::Version
69
- version: '1'
70
- description: "\n Xcodebuild formatter designed to be piped with `xcodebuild`,\n and
71
- thus keeping 100% compatibility.\n\n It has modes for CI, running tests (RSpec
72
- dot-style),\n and it can also mine Bitcoins.\n "
97
+ version: '1.0'
98
+ description: "\n Xcodebuild formatter designed to be piped with `xcodebuild`,\n
99
+ \ and thus keeping 100% compatibility.\n\n It has modes for CI, running tests
100
+ (RSpec dot-style),\n and it can also mine Bitcoins.\n "
73
101
  email:
74
102
  - marin2211@gmail.com
75
103
  - iskanamagus@gmail.com
@@ -81,6 +109,7 @@ files:
81
109
  - ".gitignore"
82
110
  - ".hound.yml"
83
111
  - ".kick"
112
+ - ".rubocop.yml"
84
113
  - ".travis.yml"
85
114
  - CHANGELOG.md
86
115
  - CONTRIBUTING.md
@@ -123,6 +152,7 @@ files:
123
152
  - lib/xcpretty/reporters/junit.rb
124
153
  - lib/xcpretty/snippet.rb
125
154
  - lib/xcpretty/syntax.rb
155
+ - lib/xcpretty/term.rb
126
156
  - lib/xcpretty/version.rb
127
157
  - spec/fixtures/NSStringTests.m
128
158
  - spec/fixtures/constants.rb
@@ -141,10 +171,7 @@ files:
141
171
  - spec/xcpretty/printer_spec.rb
142
172
  - spec/xcpretty/snippet_spec.rb
143
173
  - spec/xcpretty/syntax_spec.rb
144
- - vendor/json_pure/COPYING
145
- - vendor/json_pure/LICENSE
146
- - vendor/json_pure/generator.rb
147
- - vendor/json_pure/parser.rb
174
+ - spec/xcpretty/term_spec.rb
148
175
  - xcpretty.gemspec
149
176
  homepage: https://github.com/supermarin/xcpretty
150
177
  licenses:
@@ -158,7 +185,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
158
185
  requirements:
159
186
  - - ">="
160
187
  - !ruby/object:Gem::Version
161
- version: 1.8.7
188
+ version: 2.0.0
162
189
  required_rubygems_version: !ruby/object:Gem::Requirement
163
190
  requirements:
164
191
  - - ">="
@@ -207,3 +234,4 @@ test_files:
207
234
  - spec/xcpretty/printer_spec.rb
208
235
  - spec/xcpretty/snippet_spec.rb
209
236
  - spec/xcpretty/syntax_spec.rb
237
+ - spec/xcpretty/term_spec.rb
@@ -1,57 +0,0 @@
1
- Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.co.jp>.
2
- You can redistribute it and/or modify it under either the terms of the GPL
3
- (see GPL file), or the conditions below:
4
-
5
- 1. You may make and give away verbatim copies of the source form of the
6
- software without restriction, provided that you duplicate all of the
7
- original copyright notices and associated disclaimers.
8
-
9
- 2. You may modify your copy of the software in any way, provided that
10
- you do at least ONE of the following:
11
-
12
- a) place your modifications in the Public Domain or otherwise
13
- make them Freely Available, such as by posting said
14
- modifications to Usenet or an equivalent medium, or by allowing
15
- the author to include your modifications in the software.
16
-
17
- b) use the modified software only within your corporation or
18
- organization.
19
-
20
- c) rename any non-standard executables so the names do not conflict
21
- with standard executables, which must also be provided.
22
-
23
- d) make other distribution arrangements with the author.
24
-
25
- 3. You may distribute the software in object code or executable
26
- form, provided that you do at least ONE of the following:
27
-
28
- a) distribute the executables and library files of the software,
29
- together with instructions (in the manual page or equivalent)
30
- on where to get the original distribution.
31
-
32
- b) accompany the distribution with the machine-readable source of
33
- the software.
34
-
35
- c) give non-standard executables non-standard names, with
36
- instructions on where to get the original software distribution.
37
-
38
- d) make other distribution arrangements with the author.
39
-
40
- 4. You may modify and include the part of the software into any other
41
- software (possibly commercial). But some files in the distribution
42
- are not written by the author, so that they are not under this terms.
43
-
44
- They are gc.c(partly), utils.c(partly), regex.[ch], st.[ch] and some
45
- files under the ./missing directory. See each file for the copying
46
- condition.
47
-
48
- 5. The scripts and library files supplied as input to or produced as
49
- output from the software do not automatically fall under the
50
- copyright of the software, but belong to whomever generated them,
51
- and may be sold commercially, and may be aggregated with this
52
- software.
53
-
54
- 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
55
- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
56
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
57
- PURPOSE.