mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Merge branch 'master' into revert-2014-revert-1976-path-for-fileblob
This commit is contained in:
		| @@ -62,6 +62,7 @@ module Linguist | |||||||
|       generated_parser? || |       generated_parser? || | ||||||
|       generated_net_docfile? || |       generated_net_docfile? || | ||||||
|       generated_postscript? || |       generated_postscript? || | ||||||
|  |       compiled_cython_file? || | ||||||
|       generated_protocol_buffer_go? || |       generated_protocol_buffer_go? || | ||||||
|       generated_protocol_buffer? || |       generated_protocol_buffer? || | ||||||
|       generated_jni_header? || |       generated_jni_header? || | ||||||
| @@ -270,5 +271,17 @@ module Linguist | |||||||
|       # VCR Cassettes have "recorded_with: VCR" in the second last line. |       # VCR Cassettes have "recorded_with: VCR" in the second last line. | ||||||
|       return lines[-2].include?("recorded_with: VCR") |       return lines[-2].include?("recorded_with: VCR") | ||||||
|     end |     end | ||||||
|  |  | ||||||
|  |     # Internal: Is this a compiled C/C++ file from Cython? | ||||||
|  |     # | ||||||
|  |     # Cython-compiled C/C++ files typically contain: | ||||||
|  |     # /* Generated by Cython x.x.x on ... */ | ||||||
|  |     # on the first line. | ||||||
|  |     # | ||||||
|  |     # Return true or false | ||||||
|  |     def compiled_cython_file? | ||||||
|  |       return false unless ['.c', '.cpp'].include? extname | ||||||
|  |       return lines[0].include?("Generated by Cython") | ||||||
|  |     end | ||||||
|   end |   end | ||||||
| end | end | ||||||
|   | |||||||
| @@ -2213,6 +2213,7 @@ PLSQL: | |||||||
|   - .pkb |   - .pkb | ||||||
|   - .pks |   - .pks | ||||||
|   - .plb |   - .plb | ||||||
|  |   - .plsql | ||||||
|   - .sql |   - .sql | ||||||
|  |  | ||||||
| #Postgres  | #Postgres  | ||||||
|   | |||||||
							
								
								
									
										93
									
								
								samples/PLSQL/prime#.plsql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								samples/PLSQL/prime#.plsql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,93 @@ | |||||||
|  | create or replace package prime# | ||||||
|  | is | ||||||
|  |   invalid_argument_error                          exception; | ||||||
|  |  | ||||||
|  |   function nth ( | ||||||
|  |     i_num                                         pls_integer | ||||||
|  |   ) return number; | ||||||
|  | end prime#; | ||||||
|  | / | ||||||
|  |  | ||||||
|  | create or replace package body prime# | ||||||
|  | is | ||||||
|  |   type t_primes is table of number index by pls_integer; | ||||||
|  |   b_primes                                       t_primes; | ||||||
|  |  | ||||||
|  |   function is_prime( | ||||||
|  |     i_candidate                                   number | ||||||
|  |   ) return boolean | ||||||
|  |   is | ||||||
|  |     l_num                           number := 1; | ||||||
|  |     l_prime                         number; | ||||||
|  |     l_result                        number; | ||||||
|  |   begin | ||||||
|  |   	if i_candidate < 2 then | ||||||
|  |   	  return false; | ||||||
|  |   	end if; | ||||||
|  |  | ||||||
|  |     loop | ||||||
|  |       l_prime := nth(l_num); | ||||||
|  |       if l_prime = i_candidate then | ||||||
|  |         return true; | ||||||
|  |       end if; | ||||||
|  |  | ||||||
|  |       l_result := i_candidate / l_prime; | ||||||
|  |     	if l_result = ceil(l_result) then | ||||||
|  |     	  return false; | ||||||
|  |     	end if; | ||||||
|  |  | ||||||
|  |     	l_num := l_num + 1; | ||||||
|  |     	exit when l_result <= l_prime; | ||||||
|  |     end loop; | ||||||
|  |  | ||||||
|  |     return true; | ||||||
|  |   end is_prime; | ||||||
|  |  | ||||||
|  |   function next ( | ||||||
|  |     i_prime                                       pls_integer | ||||||
|  |   ) return number | ||||||
|  |   is | ||||||
|  |     l_next                          number; | ||||||
|  |   begin | ||||||
|  |     l_next := i_prime + case mod(i_prime, 2) when 0 then 1 else 2 end; | ||||||
|  |  | ||||||
|  |     while not is_prime(l_next) loop | ||||||
|  |       l_next := l_next + 2; | ||||||
|  |     end loop; | ||||||
|  |     return l_next; | ||||||
|  |   end next; | ||||||
|  | 	 | ||||||
|  |   function nth ( | ||||||
|  |     i_num                                         pls_integer | ||||||
|  |   ) return number | ||||||
|  |   is | ||||||
|  |     l_index                         number := 2; | ||||||
|  |     l_prime                         number := 3; | ||||||
|  |   begin | ||||||
|  |     if   i_num < 1 | ||||||
|  |       or ceil(i_num) != i_num | ||||||
|  |     then | ||||||
|  |       raise invalid_argument_error; | ||||||
|  |     end if; | ||||||
|  |  | ||||||
|  |     case i_num | ||||||
|  |       when 1 then return 2; | ||||||
|  |       else | ||||||
|  |         if b_primes.exists(i_num) then | ||||||
|  |           return b_primes(i_num); | ||||||
|  |         end if; | ||||||
|  |         while l_index < i_num loop | ||||||
|  |           l_index := l_index + 1; | ||||||
|  |           if b_primes.exists(l_index) then | ||||||
|  |             l_prime := b_primes(l_index); | ||||||
|  |           else | ||||||
|  |             l_prime := next(l_prime); | ||||||
|  |             b_primes(l_index) := l_prime; | ||||||
|  |           end if; | ||||||
|  |         end loop; | ||||||
|  |         return l_prime; | ||||||
|  |     end case; | ||||||
|  |   end nth; | ||||||
|  |  | ||||||
|  | end prime#; | ||||||
|  | / | ||||||
| @@ -239,6 +239,10 @@ class TestBlob < Minitest::Test | |||||||
|     # Godep saved dependencies |     # Godep saved dependencies | ||||||
|     assert sample_blob("Godeps/Godeps.json").generated? |     assert sample_blob("Godeps/Godeps.json").generated? | ||||||
|     assert sample_blob("Godeps/_workspace/src/github.com/kr/s3/sign.go").generated? |     assert sample_blob("Godeps/_workspace/src/github.com/kr/s3/sign.go").generated? | ||||||
|  |  | ||||||
|  |     # Cython-generated C/C++ | ||||||
|  |     assert sample_blob("C/sgd_fast.c").generated? | ||||||
|  |     assert sample_blob("C++/wrapper_inner.cpp").generated? | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   def test_vendored |   def test_vendored | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user