mirror of https://github.com/amix/vimrc.git
parent
ab92a1d4f5
commit
b3698e4d38
@ -0,0 +1,46 @@ |
||||
" Author: Jon Parise <jon@indelible.org> |
||||
|
||||
call ale#Set('thrift_thriftcheck_executable', 'thriftcheck') |
||||
call ale#Set('thrift_thriftcheck_options', '') |
||||
|
||||
function! ale_linters#thrift#thriftcheck#GetCommand(buffer) abort |
||||
return '%e' |
||||
\ . ale#Pad(ale#Var(a:buffer, 'thrift_thriftcheck_options')) |
||||
\ . ' --stdin-filename %s' |
||||
\ . ' %t' |
||||
endfunction |
||||
|
||||
function! ale_linters#thrift#thriftcheck#Handle(buffer, lines) abort |
||||
" Matches lines like the following: |
||||
" |
||||
" file.thrift:1:1:error: "py" namespace must match "^idl\\." (namespace.pattern) |
||||
" file.thrift:3:5:warning: 64-bit integer constant -2147483649 may not work in all languages (int.64bit) |
||||
let l:pattern = '\v^[a-zA-Z]?:?[^:]+:(\d+):(\d+):(\l+): (.*) \((.*)\)$' |
||||
|
||||
let l:output = [] |
||||
|
||||
for l:match in ale#util#GetMatches(a:lines, l:pattern) |
||||
if l:match[3] is# 'warning' |
||||
let l:type = 'W' |
||||
else |
||||
let l:type = 'E' |
||||
endif |
||||
|
||||
call add(l:output, { |
||||
\ 'lnum': l:match[1] + 0, |
||||
\ 'col': l:match[2] + 0, |
||||
\ 'type': l:type, |
||||
\ 'text': l:match[4], |
||||
\ 'code': l:match[5], |
||||
\}) |
||||
endfor |
||||
|
||||
return l:output |
||||
endfunction |
||||
|
||||
call ale#linter#Define('thrift', { |
||||
\ 'name': 'thriftcheck', |
||||
\ 'executable': {b -> ale#Var(b, 'thrift_thriftcheck_executable')}, |
||||
\ 'command': function('ale_linters#thrift#thriftcheck#GetCommand'), |
||||
\ 'callback': 'ale_linters#thrift#thriftcheck#Handle', |
||||
\}) |
@ -0,0 +1,13 @@ |
||||
tags |
||||
!doc/tags |
||||
Makefile |
||||
TODO.TXT |
||||
TODO_archived.viki |
||||
*.vba |
||||
*.vmb |
||||
*.zip |
||||
.last_* |
||||
test |
||||
test_* |
||||
tmp |
||||
var |
@ -0,0 +1,909 @@ |
||||
0.1 |
||||
Initial release |
||||
|
||||
0.2 |
||||
- More list convenience functions |
||||
- tlib#EditList() |
||||
- tlib#InputList(): properly handle duplicate items; it type contains |
||||
'i', the list index + 1 is returned, not the element |
||||
|
||||
0.3 |
||||
- tlib#InputList(): Show feedback in statusline instead of the echo area |
||||
- tlib#GetVar(), tlib#GetValue() |
||||
|
||||
0.4 |
||||
- tlib#InputList(): Up/Down keys wrap around list |
||||
- tlib#InputList(): FIX: Problem when reducing the filter & using AND |
||||
- tlib#InputList(): Made <a-numeric> work (can be configured via |
||||
- tlib#InputList(): special display_format: "filename" |
||||
- tlib#Object: experimental support for some kind of OOP |
||||
- tlib#World: Extracted some functions from tlib.vim to tlib/World.vim |
||||
- tlib#FileJoin(), tlib#FileSplit(), tlib#RelativeFilename() |
||||
- tlib#Let() |
||||
- tlib#EnsureDirectoryExists(dir) |
||||
- tlib#DirName(dir) |
||||
- tlib#DecodeURL(url), tlib#EncodeChar(char), tlib#EncodeURL(url) |
||||
- FIX: Problem when using shift-up/down with filtered lists |
||||
|
||||
0.5 |
||||
- tlib#InputList(): FIX: Selecting items in filtered view |
||||
- tlib#InputList(): <c-bs>: Remove last AND pattern from filter |
||||
|
||||
0.6 |
||||
- tlib#InputList(): Disabled <c-space> map |
||||
- tlib#InputList(): try to be smart about user itentions only if a |
||||
list's length is < g:tlib_sortprefs_threshold (default: 200) |
||||
- tlib#Object: Super() method |
||||
- tlib#MyRuntimeDir() |
||||
- tlib#GetCacheName(), tlib#CacheSave(), tlib#CacheGet() |
||||
- tlib#Args(), tlib#GetArg() |
||||
- FIX: tlib#InputList(): Display problem with first item |
||||
|
||||
0.7 |
||||
- tlib#InputList(): <c-z> ... Suspend/Resume input |
||||
- tlib#InputList(): <c-q> ... Input text on the command line (useful on |
||||
slow systems when working with very large lists) |
||||
- tlib#InputList(): AND-pattern starting with '!' will work as 'exclude |
||||
matches' |
||||
- tlib#InputList(): FIX <c-bs> pop OR-patterns properly |
||||
- tlib#InputList(): display_format == filename: don't add '/' to |
||||
directory names (avoid filesystem access) |
||||
|
||||
0.8 |
||||
- FIX: Return empty cache name for buffers that have no files attached to it |
||||
- Some re-arranging |
||||
|
||||
0.9 |
||||
- Re-arrangements & modularization (this means many function names have |
||||
changed, on the other hand only those functions are loaded that are |
||||
actually needed) |
||||
- tlib#input#List(): Added maps with m-modifiers for <c-q>, <c-z>, <c-a> |
||||
- tlib#input#List(): Make sure &fdm is manual |
||||
- tlib#input#List(): When exiting the list view, consume the next 5 |
||||
characters in the queue (if any) |
||||
- tlib#input#EditList(): Now has cut, copy, paste functionality. |
||||
- Added documentation and examples |
||||
|
||||
0.10 |
||||
- tlib#input#List(): (v)split type of commands leave the original window |
||||
untouched (you may use <c-w> to replace its contents) |
||||
- tlib#file#With(): Check whether an existing buffer is loaded. |
||||
- Scratch related functions went to tlib/scratch.vim so that they are |
||||
accessible from other scripts. |
||||
- Configure the list window height via g:tlib_inputlist_pct (1..100%) |
||||
|
||||
0.11 |
||||
NEW: |
||||
- The :TLet command replaces :TLLet (which was removed) |
||||
- :TScratch[!] command (with ! don't split but use the whole window) |
||||
- tlib#rx#Escape(text, ?magic='m') |
||||
- tlib#buffer#GetList(?show_hidden=0) |
||||
- tlib#dir#CD(), tlib#dir#Push(), tlib#dir#Pop() |
||||
- tlib#input#ListW: A slightly remodeled version of tlib#input#List |
||||
that takes a World as second argument. |
||||
- Added some documentation doc/tlib.txt (most of it is automatically |
||||
compiled from the source files) |
||||
CHANGES: |
||||
- tlib#input#List(): The default keys for AND, NOT have changed to |
||||
be more Google-like (space, minus); the keys can be configured via |
||||
global variables. |
||||
IMPROVEMENTS: |
||||
- In file listings, indicate if a file is loaded, listed, modified |
||||
etc. |
||||
- tlib#input#List(): Highlight the filter pattern |
||||
- tlib#input#List(): <c-up/down> scrolls g:tlib_scroll_lines |
||||
(default=10) lines |
||||
FIXES: |
||||
- tlib#input#List(): Centering line, clear match, clear & restore |
||||
the search register |
||||
- tlib#input#List(): Ensure the window layout doesn't change (if the |
||||
number of windows hasn't changed) |
||||
- tlib#arg#Ex(): Don't escape backslashes by default |
||||
|
||||
0.12 |
||||
NEW: |
||||
- tlib/tab.vim |
||||
CHANGES: |
||||
- Renamed tlib#win#SetWin() to tlib#win#Set() |
||||
IMPROVEMENTS: |
||||
- tlib#input#List(): <left>, <right> keys work in some lists |
||||
- tlib#input#List(): If an index_table is provided this will be used |
||||
instead of the item's list index. |
||||
FIXES: |
||||
- tlib#input#List(): Problem with scrolling, when the list was |
||||
shorter than the window (eg when using a vertical window). |
||||
- tlib#cache#Filename(): Don't rewrite name as relative filename if |
||||
explicitly given as argument. Avoid double (back)slashes. |
||||
- TLet: simplified |
||||
|
||||
0.13 |
||||
CHANGES: |
||||
- Scratch: Set &fdc=0. |
||||
- The cache directory can be configured via g:tlib_cache |
||||
- Renamed tlib#buffer#SetBuffer() to tlib#buffer#Set(). |
||||
FIXES: |
||||
- tlib#input#List(): Select the active item per mouse. |
||||
- TLet: simplified |
||||
|
||||
0.14 |
||||
NEW: |
||||
- tlib#buffer#InsertText() |
||||
CHANGES: |
||||
- tlib#win#[SG]etLayout(): Use a dictionnary, set &cmdheight. |
||||
FIXES: |
||||
- Wrong order with pre-defined filters. |
||||
|
||||
0.15 |
||||
NEW: |
||||
- tlib#string#TrimLeft(), tlib#string#TrimRight(), tlib#string#Strip() |
||||
- Progress bar |
||||
|
||||
0.16 |
||||
NEW: |
||||
- tlib#string#Printf1() |
||||
|
||||
0.17 |
||||
NEW: |
||||
- TBrowseOutput |
||||
- Some minor changes |
||||
|
||||
0.18 |
||||
NEW: |
||||
- tlib/time.vim |
||||
- g:tlib_inputlist_livesearch_threshold |
||||
CHANGES: |
||||
- tlib#input#ListD(), World: Don't redisplay the list while typing |
||||
new letters; calculate filter regexps only once before filtering the |
||||
list. |
||||
- World.vim: Minor changes to how filenames are handled. |
||||
|
||||
0.19 |
||||
NEW: |
||||
- tag.vim |
||||
FIX: |
||||
- dir.vim: Use plain dir name in tlib#dir#Ensure() |
||||
- tlib#input#List(): An initial filter argument creates [[filter]] |
||||
and not as before [[''], [filter]]. |
||||
- tlib#input#List(): When type was "si" and the item was picked by |
||||
filter, the wrong index was returned. |
||||
- tlib#input#List(): Don't check if chars are typed when displaying |
||||
the list for the first time. |
||||
|
||||
0.20 |
||||
- The arguments of tlib#tag#Collect() have changed. |
||||
- tlib#input#List(): The view can be "suspended" on initial display. |
||||
- tlib#input#List(): Follow/trace cursor functionality |
||||
|
||||
0.21 |
||||
- tlib#buffer#InsertText(): Respect tabs and (experimental) formatoptions+=or |
||||
- tlib/syntax.vim: Syntax-related functions |
||||
|
||||
0.22 |
||||
- FIX: very magic mode for tlib#rx#Escape() (thanks A Politz) |
||||
- FIX: tlib#arg#Ex: escape "!" |
||||
|
||||
0.23 |
||||
- Respect the setting of g:tlib_inputlist_filename_indicators |
||||
- tlib#input#List(): Reset syntax on resume; option to make list window "sticky" |
||||
- tlib#agent#ToggleStickyList() |
||||
- Simplified tlib#url#Decode() |
||||
- tlib#arg#Ex(): use fnameescape() if available |
||||
|
||||
0.24 |
||||
- s:prototype.SetInitialFilter: accept list as argument |
||||
- Maintain buffer MRU if required |
||||
|
||||
0.25 |
||||
- NEW: tlib#notify#TrimMessage(): trim message to prevent "Press ENTER" |
||||
messages (contributed by Erik Falor) |
||||
- NEW: tlib#notify#Echo() |
||||
- FIX: World.CloseScratch(): Set window |
||||
- FIX: tlib#input#ListW(): Set initial_display = 1 on reset |
||||
|
||||
0.26 |
||||
- NEW: tlib#normal#WithRegister() |
||||
- FIX: Try not to change numbered registers |
||||
|
||||
0.27 |
||||
- FIX: Cosmetic bug, wrong packaging (thanks Nathan Neff) |
||||
- Meaning of World#filter_format changed; new World#filter_options |
||||
- Filtering didn't work as advertised |
||||
- tlib#string#Count() |
||||
|
||||
0.28 |
||||
- tlib#input#List(): |
||||
-- Improved handling of sticky lists; <cr> and <Leftmouse> resume a |
||||
suspended list and immediately selects the item under the cursor |
||||
-- Experimental "seq" matching style: the conjunctions are sequentially |
||||
ordered, they are combined with "OR" (disjunctions), the regexp is |
||||
'magic', and "." is expanded to '.\{-}' |
||||
-- Experimental "cnfd" matching style: Same as cnf but with an "elastic" |
||||
dot "." that matches '\.\{-}' |
||||
-- Filtering acts as if &ic=1 && $sc=1 |
||||
-- Weighting is done by the filter |
||||
- tlib#agent#Input(): Consume <esc> when aborting input() |
||||
- INCOMPATIBLE CHANGE: Changed eligible values of g:tlib_inputlist_match |
||||
to "cnf", "cnfd", "seq" and "fuzzy" |
||||
- NEW: tlib#buffer#KeepCursorPosition() |
||||
- tlib#buffer#InsertText(): Take care of the extra line when appending |
||||
text to an empty buffer. |
||||
|
||||
0.29 |
||||
- tlib#string#Strip(): Strip also control characters (newlines etc.) |
||||
- tlib#rx#Suffixes(): 'suffixes' as Regexp |
||||
- World#RestoreOrigin(): Don't assume &splitbelow |
||||
|
||||
0.30 |
||||
- World#RestoreOrigin(): Don't assume &splitright |
||||
|
||||
0.31 |
||||
- :TRequire command |
||||
-tlib#input#List: For i-type list views, make sure agents are called |
||||
with the base indices. |
||||
|
||||
0.32 |
||||
- tlib#agent#Exit: explicitly return empty value (as a consequence, |
||||
pressing <esc> when browsing an index-list, returns 0 and not "") |
||||
- tlib#signs |
||||
- tlib#input#List: set local statusline |
||||
|
||||
0.33 |
||||
- Don't reset statusline |
||||
- Don't use fnamemodify() to split filenames (for performance reasons) |
||||
- scratch: Set ft after setting up scratch options |
||||
- tlib#map#PumAccept(key) |
||||
|
||||
0.34 |
||||
- tlib#buffer#HighlightLine(line): call tlib#autocmdgroup#Init() |
||||
(reported by Sergey Khorev) |
||||
|
||||
0.35 |
||||
- tlib#input#EditList(): return the list if the user presses esc |
||||
|
||||
0.36 |
||||
- Display a message when the filter is for whatever reason invalid |
||||
- Removed tlib#paragraph#Delete() |
||||
- New: tlib#paragraph#Define(), tlib#textobjects#StandardParagraph() |
||||
- Try to speed up list display (a rewrite of World.DisplayList() etc. is |
||||
required) |
||||
|
||||
0.37 |
||||
- g:tlib_inputlist_livesearch_threshold defaults to 1000 |
||||
- tlib#World: optional scratch_pos field |
||||
- tlib#input#List: By default <m-NUMBER> selects by number but NUMBER is |
||||
interpreted as string |
||||
- tlib#date |
||||
- TTimeCommand |
||||
|
||||
0.38 |
||||
- tlib#World#Resize: set winfix{height|width} |
||||
|
||||
0.39 |
||||
- g:tlib#cache#dont_purge |
||||
- tlib#vim#RestoreWindow() |
||||
- tlib#ballon#...() |
||||
|
||||
0.40 |
||||
- tlib#agent#ViewFile: Use split/sbuffer if nohidden && modified |
||||
- tlib#buffer#GetList(): order by "basename" |
||||
|
||||
version: "0.41" |
||||
- World.UseScratch(): keepalt |
||||
- Really include balloon.vim |
||||
MD5 checksum: 3fcbc4f7556f5378d39622e62ab8f379 |
||||
|
||||
version: "0.42" |
||||
- tlib#input#List: <s-space> inserts a *-like wildcard (represented as "__") |
||||
- Check if a cache file cannot be created because a directory of the same name exists (display a message if so) |
||||
- tlib#cache#Filename: Removed check if a directory of the same name exists (due to inconsistent use) |
||||
- Minor improvements related to buffer handling (scratch_split) |
||||
- .gitignore |
||||
- docs (thanks to blueyed) |
||||
- There is no "edit" answer possibility. |
||||
- Fix first purge: do nothing if no timestamp file. |
||||
- g:tlib_pick_single_item |
||||
- Removed pick_single_item. Changed the default behavour when a list has only 1 item. See doc for g:tlib_pick_last_item. |
||||
- Updated help for tlib#input#List(); help_extra attribute |
||||
- EXPERIMENTAL: cache_var, restore_from_cache, on_leave properties; #Initialize(), #Leave() |
||||
- added tlib#cmd#BrowseOutputWithCallback function and :TBrowseScriptnames command |
||||
- tlib#cmd#BrowseOutputWithCallback function and :TBrowseScriptnames command documentation |
||||
- s:prototype.Initialize(): unlet self.cache_var after restoring values |
||||
- tlib#input#List: filter-specific help |
||||
- Removed the seq filter (use cnfd or fuzzy instead) |
||||
- tlib#input#List: temp_prompt (for help message) |
||||
MD5 checksum: aa8b5a4602235cc1a5bc9ee45d801b81 |
||||
|
||||
version: "0.42" |
||||
- g:tlib#cache#silent: don't display messages when purging the cache (fixes #9) |
||||
- Changed message when deleting directories in the cache. |
||||
- g:tlib#input#use_popup: Don't rely on has('menu') but also check for gtk & win gui (fixes #10) |
||||
- debug |
||||
- tlib#input#ListW(): Didn't return a list when type == "m" |
||||
- docs (solves #11) |
||||
MD5 checksum: aa8b5a4602235cc1a5bc9ee45d801b81 |
||||
|
||||
version: "0.45" |
||||
- fuzzy mode: prototype.highlight defaults to g:tlib_inputlist_higroup |
||||
- tlib#scratch: Use noautocmd |
||||
- tlib#input#ListW(): Use world.RestoreOrigin() instead of tlib#win#SetLayout(world.winview) |
||||
- tlib#input#ListW(): Revert to tlib#win#SetLayout(world.winview) |
||||
- tlib#cmd#OutputAsList(): Also save output in g:tlib#cmd#last_output |
||||
- tlib#agent#Suspend(): Resume on BufEnter |
||||
- tlib#input#Resume(): Make sure we are in the right buffer |
||||
- tlib#agent#Suspend(): Use only BufEnter event to trigger a Resume |
||||
- tlib#input#ListW(): When redisplaying a list, make sure prefix > 0 |
||||
- tlib#vcs: Access vcs (initially only git is supported) |
||||
- tlib#vcs: improved |
||||
- tlib#persistent: Persistent data file names |
||||
- tlib#file#With(): Trigger BufRead autocommands |
||||
- Duplicate help tags (fixes #13) |
||||
- Make sure scrolloff is 0 while viewing the list (fixes https://github.com/tomtom/vikitasks_vim/issues/2) |
||||
MD5 checksum: 0af19ebc0e424727a598a988fdc90f4e |
||||
|
||||
- Support for tinykeymap (move paragraph) |
||||
- Moved para_move to autoload/tinykeymap/map |
||||
- tlib#vcs: some "diff" commands were defined as "ls"; updated hg def; %s is optional |
||||
MD5 checksum: f2f2fe0893e75bb9423c1ddcd01f38f6 |
||||
version: "0.46" |
||||
|
||||
- tlib#input#List: optimizations |
||||
- Prepare for multi-mode maps |
||||
- tlib#input#List: cnfx is new default filter |
||||
- Filters: minor changes to how the pattern is displayed |
||||
- g:tlib#input#format_filename: alternative method for formatting filenames |
||||
- tlib#input#List: allow multiple keymaps / modes |
||||
- Handle rezise events |
||||
- Don't initialize the same window twice |
||||
- Minor optimizations to how help is displayed |
||||
- Handle VimResize event per buffer |
||||
- Improve display of filenames & highlighting |
||||
- Filename highlighter: set Highlight_filename() |
||||
- RunStateHandlers(): set world variable |
||||
- Optimize help display |
||||
MD5 checksum: e3652927722bdc51935eb1a04238546b |
||||
version: "1.00" |
||||
|
||||
- Set g:tlib_inputlist_and to ' ' again |
||||
- g:tlib#input#filename_max_width: maximum display width of filenames |
||||
- tlib#input#List: <s-esc>, <f10>: run command by name |
||||
MD5 checksum: a42f90275cdbe9f7d92cac61b884a2d1 |
||||
version: "1.01" |
||||
|
||||
- #UseInputListScratch(): Make sure the TLib autogroup was created (fixes #14) |
||||
MD5 checksum: 5a6da7fc99c7fc7584e8fc2f7bf86fe4 |
||||
version: "1.02" |
||||
|
||||
- tlib#cache#Value(cfile, generator, ftime, ...): cache value & check timestamp |
||||
- Replaced g:tlib#cache#silent with g:tlib#cache#verbosity |
||||
- FormatFilenames: improved handling of utf8 characters |
||||
- tlib#persistent#Value() |
||||
- tlib#input#List: Allow filename indiactors defined by the caller |
||||
- Custom filename_indicators are displayed after (and clearly separted from) the standard indicators |
||||
- Check the return value of an unknown_key agent |
||||
- Format filename = "l": Allow ".." as start of a directory name |
||||
- Format filename = "l": If the filename is just a filename's tail, display it on both sides |
||||
- Set g:tlib_filename_sep to "\" on Windows (again) |
||||
- g:tlib#cache#max_filename: If the cache filename is longer than N characters, use |pathshorten()|. |
||||
MD5 checksum: b64ce6764f39f40bfc95f3916bbb0057 |
||||
version: "1.04" |
||||
|
||||
version: "1.05" |
||||
- tlib#hash: Adler32 & CRC32 (using zlib via ruby) algorithms |
||||
- tlib#cache#Filename(): If the cache filename is too long, add the Adler32 checksum to the shortened path |
||||
- tlib#cache#Filename(): Use tlib#hash#Adler32() only if the or() function exists |
||||
- tlib#hash#Adler32(): Raise error, if or() doesn't exist |
||||
- tlib#hash#CRC32(): Alternative implementation of crc32 (doesn't work yet, thus currently disabled) |
||||
- tlib#bitwise: Bitwise operations for older versions of vim |
||||
- tlib#number: Base conversion |
||||
- tlib#input#ListW(): Handle mouse clicks more correctly |
||||
- tlib#bitwise#Num2Bits(): Supports returning floats |
||||
- tlib#hash#CRC32(): Alternative implementation of crc32 (doesn't work yet) |
||||
- tlib#hash#CRC32(): Re-enable ruby version |
||||
- tlib#hash#CRC32B(): Implementation of CRC32B checksum in vimscript (used only if +ruby isn't available) |
||||
- tlib#hash#CRC32B(): vim version: cache the crc table |
||||
- tlib#cache#Filename(): Use tlib#hash#CRC32B(file) instead of not Adler32 for filenames too long |
||||
- tlib#hash#CRC32B(): ruby version: return upper case hex value |
||||
- g:tlib#hash#use_crc32: define which crc32b version should be used |
||||
- Moved spec files from vimtlib to tlib_vim |
||||
- tlib#bitwise#Add() and tlib#bitwise#Sub() |
||||
- tlib#file#Relative(): Wrong results for filenames that don't exist |
||||
- Implementation of hash#Adler32 for earlier vim versions; g:tlib#hash#use_adler32 |
||||
- tlib#cache#Filename(): Use adler32 again |
||||
- addon-info |
||||
- tlib#file#Absolute(): remove redundant "." parts in full filename |
||||
- win32: Fix moving window when using :vertical for tlib#inpu#List() |
||||
- tlib#cache#Filename(): Don't create wrong directory if the cache filename is too long |
||||
- tlib#file#Join(): if strip_slashes, also strip redundant (back)slashes |
||||
- tlib#input#ListW(): Always set post_keys variable |
||||
- tlib#file#With(): escape backslashes |
||||
- tlib#cmd#OutputAsList(): Support for nesting |
||||
- tlib#dir#NativeName(dirname) |
||||
MD5 checksum: 493f9beca44374de386f20d1613155e3 |
||||
|
||||
- Rename g:tlib_debug to g:tlib#debug |
||||
- Renamed g:tlib_sortprefs_threshold to g:tlib#input#sortprefs_threshold |
||||
- Renamed g:tlib#input#livesearch_threshold |
||||
- Renamed g:tlib_inputlist_match to g:tlib#input#filter_mode |
||||
- Renamed g:tlib_inputlist_higroup to g:tlib#input#higroup |
||||
- Renamed g:tlib#debug |
||||
- Moved g:tlib_pick_last_item |
||||
- Renamed g:tlib#input#and, g:tlib#input#or, g:tlib#input#not |
||||
- Moved g:tlib_numeric_chars to autoload/tlib/input.vim |
||||
- Renamed g:tlib#input#keyagents_InputList_s, g:tlib#input#keyagents_InputList_m, g:tlib#input#handlers_EditList |
||||
- Moved g:tlib_inputlist_pct, g:tlib_inputlist_width_filename, g:tlib_inputlist_filename_indicators, g:tlib_inputlist_shortmessage to autoload/tlib/World.vim |
||||
- Renamed tlib#input#pick_last_item (2) |
||||
- prototype.SelectItemsByNames() |
||||
- filtered_items: Restricted view |
||||
- prototype.PrintLines() |
||||
- Restricted view (2) |
||||
- Moved g:tlib_scroll_lines to autoload/tlib/agent.vim |
||||
- prototype.PrintLines() (2) |
||||
- tlib#input: Improved handling of popup menu (allows submenu) |
||||
- tlib#input: Allow mods in keys |
||||
- Moved g:tlib_scratch_pos to autoload/tlib/scratch.vim |
||||
- Moved g:tlib_tags_extra, g:tlib_tag_substitute to autoload/tlib/tag.vim |
||||
- tlib#agent#CompleteAgentNames(): Respect Arglead |
||||
- Move g:tlib_viewline_position to autoload/tlib/buffer.vim |
||||
- Move g:tlib_cache to autoload/tlib/cache.vim |
||||
- Renamed g:tlib_filename_sep to g:tlib#dir#sep |
||||
- prototype.UseScratch(): Set b:tlib_world |
||||
- tlib#input: f9 toggles resticted view |
||||
- tlib#input: next_agent, next_eval |
||||
- tlib#input: Revised use of the popup menu |
||||
- tlib#input: Disable popup menu for gui_gtk |
||||
- tlib#input: Re-enabled the popup menu for gtk gui |
||||
- tlib#input: FIX popup menu on Windows |
||||
- Renamed g:tlib_numeric_chars to g:tlib#input#numeric_chars (disabled per-buffer values) (fixes #35) |
||||
- Improve scratch list |
||||
- New: tlib#grep |
||||
- Merge branch 'master' of https://github.com/bruno-/tlib_vim into pull16 |
||||
- g:tlib_scratch_hidden: Configure how to "hide" the scratch buffer |
||||
- tlib#grep#Do: don't escape "*" in patterns |
||||
- Optimize use of visible scratch buffers |
||||
- World.scratch_hidden parameter |
||||
- scratch: Always use keepalt & keepjumps |
||||
MD5 checksum: 2e40449c47dc606ccef57aa0b1e22e8e |
||||
version: "1.06" |
||||
|
||||
version: "1.07" |
||||
- Help template |
||||
- prototype.Highlight_filename(): Use matchstr() instead of fnamemodify() |
||||
- Display buffer-related filename indicators only if g:tlib_inputlist_filename_indicators is true |
||||
- tlib#file#Join(): strip_slashes defaults to 1 |
||||
MD5 checksum: 6c8fa96fd3747be05df848ee93dd789b |
||||
|
||||
version: "1.08" |
||||
- list#input: Improved support for file indicators (closes #17) |
||||
- tlib#char#Get(): Optionally, also return mod |
||||
- tlib#input#ListW: Use #DisplayFormat(world.list) |
||||
- Renamed cnfx filter to glob & minor filter-related enhancements |
||||
- list#input: Make help available as command; help cannot be called via ? |
||||
- list#input: Improved help message |
||||
- list#input: Support Home & End keys |
||||
- list#input: Added glob filter |
||||
- tlib#agent#ShowInfo: Show full filename |
||||
- tlib#cmd#BrowseOutputWithCallback: Support calling callback with multiple results |
||||
- tlib#cmd#ParseScriptname: Properly parse results from :scriptnames |
||||
- tlib#tab#Set() |
||||
- Prepare for proper handling of scratch_split == -1 |
||||
- tlib#vim#CopyFunction() |
||||
- tlib#cache#Value(): If generator is empty, use the optional argument as start value |
||||
- tlib#persistent#Get() refers to tlib#cache#Get() |
||||
MD5 checksum: 459ec620168d1ae9b18c69eb3f991832 |
||||
|
||||
- tlib#cache#Filename(): Use sha256() for VIM >= 7.4 |
||||
- tlib#cache#Value(): Undo previous hack |
||||
- tlib#list#Uniq(): option to remove empty values |
||||
- tlib#cache#MTime(); tlib#persistent#Save() calls tlib#cache#Save() |
||||
- tlib#input#ListW: Temporarily set noshowmode |
||||
- tlib#list#Uniq(): Fix handling of empty items |
||||
- lis picker: Remove <C-Space> from help |
||||
- tlib#list#Uniq(): Implementation based on syntastic#util#unique(list) by scrooloose |
||||
MD5 checksum: b5fb4107d63930c2c8b1f0f6b3a7ff07 |
||||
version: "1.09" |
||||
|
||||
- tlib#cache#Filename(): Use sha256() for VIM >= 7.4 |
||||
- tlib#cache#Value(): Undo previous hack |
||||
- tlib#list#Uniq(): option to remove empty values |
||||
- tlib#cache#MTime(); tlib#persistent#Save() calls tlib#cache#Save() |
||||
- tlib#input#ListW: Temporarily set noshowmode |
||||
- tlib#list#Uniq(): Fix handling of empty items |
||||
- lis picker: Remove <C-Space> from help |
||||
- tlib#list#Uniq(): Implementation based on syntastic#util#unique(list) by scrooloose |
||||
MD5 checksum: b5fb4107d63930c2c8b1f0f6b3a7ff07 |
||||
version: "1.09" |
||||
|
||||
- tlib#string#Chomp: Optional argument: max number of chars that should be removed |
||||
MD5 checksum: 8c1b94e25045580874e2f892d509291b |
||||
version: "1.10" |
||||
|
||||
- tlib#vcs#FindVCS(filename): Wrong parameters to fnamemodifiy if filename is a directory |
||||
- Some system-related functions (e.g. facilitate use of cygwin tools) |
||||
- tlib#arg#StringAsKeyArgsEqual(), tlib#arg#StringAsKeyArgs(): Support "key=val" type argument lists |
||||
- tlib#vcs#Executable() |
||||
- scripts/create_crc_table.rb |
||||
- tlib#var#Get(): For namespaces other than global, replace "#" with "_" |
||||
MD5 checksum: 4a33f2f23e1fc6600b32e7f8323e001e |
||||
version: "1.11" |
||||
|
||||
- tlib#list#ToDictionary() |
||||
- tlib#dir#CanonicName(): Use tlib#file#Canonic() |
||||
- tlib#file#Canonic() |
||||
MD5 checksum: 7995ab58f31eb6673d20deab8761838e |
||||
version: "1.12" |
||||
|
||||
- SetInitialFilter(): Use deepcopy() |
||||
- tlib#var#List(): use keys(namespace) for newer versions of vim |
||||
- g:tlib#input#user_shortcuts (not functional yet) |
||||
- tlib#input#List: state "picked" |
||||
- UseInputListScratch(): Allow customization via self.index_next_syntax |
||||
- tlib#cmd#Capture() |
||||
- Facilitate customization of key agents via g:tlib_extend_keyagents_InputList_s, g:tlib_extend_keyagents_InputList_m |
||||
MD5 checksum: 7dd8b17a1a5b555df979381dcbd4c9aa |
||||
version: "1.13" |
||||
|
||||
- SetInitialFilter(): Use deepcopy() |
||||
- tlib#var#List(): use keys(namespace) for newer versions of vim |
||||
- g:tlib#input#user_shortcuts (not functional yet) |
||||
- tlib#input#List: state "picked" |
||||
- UseInputListScratch(): Allow customization via self.index_next_syntax |
||||
- tlib#cmd#Capture() |
||||
- Facilitate customization of key agents via g:tlib_extend_keyagents_InputList_s, g:tlib_extend_keyagents_InputList_m |
||||
MD5 checksum: 7dd8b17a1a5b555df979381dcbd4c9aa |
||||
version: "1.13" |
||||
|
||||
version: "1.14" |
||||
- FIX #18: Make sure the scratch isn't readonly |
||||
- FIX: display filter (properly handle backslashes) |
||||
- Remove loaded_* guard from autoload files |
||||
- tlib#notify#Echo(): minor changes |
||||
- tlib#file#Edit() (used by tlib#agent#ViewFile) |
||||
- tlib#buffer#GetList(): Buffer numbers are converted to numbers |
||||
- tlib#sys: Change order of functions (move tlib#sys#IsCygwinBin to the (possibly FIX #19) |
||||
- g:tlib#sys#check_cygpath: Call tlib#sys#IsExecutable('cygpath', 1) (possibly FIX #19) |
||||
MD5 checksum: 2cf6386218736a2d09db43c8e751e5a4 |
||||
|
||||
version: "1.15" |
||||
- tlib#file#Join(): New optional argument: maybe_absolute Drop preceding parts if a part looks like an absolute filename |
||||
- tlib#sys#Open(), tlib#sys#IsSpecial() (moved from viki) |
||||
- tlib#list#Uniq(): Handle hetergenous lists |
||||
- FIX #21: duplicate help tag |
||||
- NEW tlib#dictionary#Rev() |
||||
- tlib#input#List(): Use <Tab> to complete current word |
||||
- NEW tlib#arg#GetOpts(); ENH tlib#arg#StringAsKeyArgsEqual() |
||||
- cache: Allow for in memory cache |
||||
- NEW tlib#eval#Extend() |
||||
- Move qfl/loclist browser from trag to tlib |
||||
- FIX tlib#eval#Extend() |
||||
- Simplify tlib#eval#Extend() |
||||
- World.index_next_syntax may be a dict |
||||
- tlib#qfl#QflList: Use copy() |
||||
- tlib#arg#GetOpts: Handle exit code |
||||
MD5 checksum: 13fd8b0e4ba9cd932c57fc40ac3f641f |
||||
|
||||
version: "1.15" |
||||
- tlib#file#Join(): New optional argument: maybe_absolute Drop preceding parts if a part looks like an absolute filename |
||||
- tlib#sys#Open(), tlib#sys#IsSpecial() (moved from viki) |
||||
- tlib#list#Uniq(): Handle hetergenous lists |
||||
- FIX #21: duplicate help tag |
||||
- NEW tlib#dictionary#Rev() |
||||
- tlib#input#List(): Use <Tab> to complete current word |
||||
- NEW tlib#arg#GetOpts(); ENH tlib#arg#StringAsKeyArgsEqual() |
||||
- cache: Allow for in memory cache |
||||
- NEW tlib#eval#Extend() |
||||
- Move qfl/loclist browser from trag to tlib |
||||
- FIX tlib#eval#Extend() |
||||
- Simplify tlib#eval#Extend() |
||||
- World.index_next_syntax may be a dict |
||||
- tlib#qfl#QflList: Use copy() |
||||
- tlib#arg#GetOpts: Handle exit code |
||||
MD5 checksum: 13fd8b0e4ba9cd932c57fc40ac3f641f |
||||
|
||||
- tlib#arg#GetOpts: Handle short options |
||||
- tlib#arg: support short flags & facilitate completion |
||||
- NEW :TLibTrace |
||||
- tlib#sys#system_browser: FIX XDG string |
||||
- NEW tlib#sys#SystemInDir() (used by tlib#vcs#Ls) |
||||
- tlib#agent#Complete: improve fltrx |
||||
- Remove tlib#arg#Key(), :TKeyArg |
||||
- Move :TRequire, :TTimeCommand to macros/tlib.vim |
||||
- NEW tlib#cmd#TBrowseScriptnames() |
||||
- TScratch: use empty('<bang>') |
||||
- NEW :TLibTrace |
||||
- tlib#qfl: FIX TTagedFilesFilename regexp |
||||
- Remove tlib#arg#Key() |
||||
- tlib#buffer#InsertText(): Don't use TKeyArg |
||||
- tlib#eval#Extend: don't assign value |
||||
- NEW :TLibTrace, tlib#trace (was tlib#debug) |
||||
- NEW tlib#string#SplitCommaList() |
||||
- NEW tlib#time#FormatNow() |
||||
- tlib#arg#GetOpts: selectively disable "long", "short" flags |
||||
- tlib#arg#CComplete(): Support values completion (complete_customlist field) |
||||
- NEW tlib#date#Shift() |
||||
- tlib#qfl#Balloon(): Handle items with no bufnr |
||||
- NEW tlib#file#Glob, tlib#file#Globpath |
||||
- tlib#progressbar#Display(): optional "always" argument |
||||
- tlib#vcs#GitLsPostprocess(): Try to handle encoded filenames from git ls-files |
||||
- tlib#vcs#GitLsPostprocess: Eval only \ddd substrings |
||||
- FIX #22: duplicate tag |
||||
- tlib#buffer: Use 2match instead of 3match (incompatibility with matchparen) |
||||
- FIX #23: duplicate help tag |
||||
- tlib#string#SplitCommaList: optional "sep" argument |
||||
- Rename TLibTrace -> Tlibtrace; NEW Tlibtraceset command |
||||
- Rename s:SetSyntax -> tlib#qfl#SetSyntax |
||||
- mv tlib#rx#Convert to incubator |
||||
MD5 checksum: f3656fb35b7b3033084d6c5e504aca61 |
||||
version: "1.16" |
||||
|
||||
- tlib#input#List: #ReduceFilter: make sure the regexp is valid |
||||
- TTimeCommand -> Ttimecommand |
||||
- tlib#eval#Extend: mode argument for expand() compatibility |
||||
- tlib#input#List: Key handlers can have additional arguments |
||||
- tlib#qfl#AgentWithSelected: Set world |
||||
- prototype.UseInputListScratch: Run tlib_UseInputListScratch hook earlier |
||||
- tlib#qfl#AgentWithSelected: typo |
||||
- tlib#arg#GetOpts: type conversion (comma-separated lists etc.) |
||||
- tlib#arg: validators |
||||
- NEW tlib#date#IsDate() |
||||
- tlib#balloon#Remove: Unset &ballooneval, &balloonexpr |
||||
- NEW tlib#balloon#Expand() |
||||
- NEW tlib#date#Format() |
||||
- FIX tlib#date#Shift(..., "+Xm") for months |
||||
- NEW tlib#trace#Backtrace() |
||||
- NEW tlib#type#Is(), tlib#type#Are(), tlib#type#Has(), tlib#type#Have() |
||||
- NEW :Tlibassert |
||||
MD5 checksum: 3c4125a28ff1860accd254846651c251 |
||||
version: "1.17" |
||||
|
||||
- tlib#input#List: #ReduceFilter: make sure the regexp is valid |
||||
- TTimeCommand -> Ttimecommand |
||||
- tlib#eval#Extend: mode argument for expand() compatibility |
||||
- tlib#input#List: Key handlers can have additional arguments |
||||
- tlib#qfl#AgentWithSelected: Set world |
||||
- prototype.UseInputListScratch: Run tlib_UseInputListScratch hook earlier |
||||
- tlib#qfl#AgentWithSelected: typo |
||||
- tlib#arg#GetOpts: type conversion (comma-separated lists etc.) |
||||
- tlib#arg: validators |
||||
- NEW tlib#date#IsDate() |
||||
- tlib#balloon#Remove: Unset &ballooneval, &balloonexpr |
||||
- NEW tlib#balloon#Expand() |
||||
- NEW tlib#date#Format() |
||||
- FIX tlib#date#Shift(..., "+Xm") for months |
||||
- NEW tlib#trace#Backtrace() |
||||
- NEW tlib#type#Is(), tlib#type#Are(), tlib#type#Has(), tlib#type#Have() |
||||
- NEW :Tlibassert |
||||
MD5 checksum: 3c4125a28ff1860accd254846651c251 |
||||
version: "1.17" |
||||
|
||||
- tlib#input#List: #ReduceFilter: make sure the regexp is valid |
||||
- TTimeCommand -> Ttimecommand |
||||
- tlib#eval#Extend: mode argument for expand() compatibility |
||||
- tlib#input#List: Key handlers can have additional arguments |
||||
- tlib#qfl#AgentWithSelected: Set world |
||||
- prototype.UseInputListScratch: Run tlib_UseInputListScratch hook earlier |
||||
- tlib#qfl#AgentWithSelected: typo |
||||
- tlib#arg#GetOpts: type conversion (comma-separated lists etc.) |
||||
- tlib#arg: validators |
||||
- NEW tlib#date#IsDate() |
||||
- tlib#balloon#Remove: Unset &ballooneval, &balloonexpr |
||||
- NEW tlib#balloon#Expand() |
||||
- NEW tlib#date#Format() |
||||
- FIX tlib#date#Shift(..., "+Xm") for months |
||||
- NEW tlib#trace#Backtrace() |
||||
- NEW tlib#type#Is(), tlib#type#Are(), tlib#type#Has(), tlib#type#Have() |
||||
- NEW :Tlibassert |
||||
MD5 checksum: 3c4125a28ff1860accd254846651c251 |
||||
version: "1.17" |
||||
|
||||
- tlib#input#List: #ReduceFilter: make sure the regexp is valid |
||||
- TTimeCommand -> Ttimecommand |
||||
- tlib#eval#Extend: mode argument for expand() compatibility |
||||
- tlib#input#List: Key handlers can have additional arguments |
||||
- tlib#qfl#AgentWithSelected: Set world |
||||
- prototype.UseInputListScratch: Run tlib_UseInputListScratch hook earlier |
||||
- tlib#qfl#AgentWithSelected: typo |
||||
- tlib#arg#GetOpts: type conversion (comma-separated lists etc.) |
||||
- tlib#arg: validators |
||||
- NEW tlib#date#IsDate() |
||||
- tlib#balloon#Remove: Unset &ballooneval, &balloonexpr |
||||
- NEW tlib#balloon#Expand() |
||||
- NEW tlib#date#Format() |
||||
- FIX tlib#date#Shift(..., "+Xm") for months |
||||
- NEW tlib#trace#Backtrace() |
||||
- NEW tlib#type#Is(), tlib#type#Are(), tlib#type#Has(), tlib#type#Have() |
||||
- NEW :Tlibassert |
||||
MD5 checksum: 3c4125a28ff1860accd254846651c251 |
||||
version: "1.17" |
||||
|
||||
- tlib#arg: Completion for comma-separated lists |
||||
- Use "silent cd" |
||||
- NEW tlib#type#DefSchema(); FIX tlib#type#Has() |
||||
- tlib#cache#Value(): minor change |
||||
- tlib#date#IsDate() also checks whether the date is valid |
||||
- ! tlib#sys#Open(): escape special chars only once |
||||
- tlib#trace#Print: Allow for strings |
||||
- :Tlibtrace, :Tlibtraceset, :Tlibassert remove `-bar` |
||||
- NEW :Tlibtype (type/schema assertions); tlib#type#Is() also accepts schemas as "types" |
||||
- tlib#dir#CD(): Use haslocaldir() |
||||
- tlib#qfl#AgentGotoQFE: Don't use wincmd w |
||||
- NEW tlib#string#Input() |
||||
- FIX g:tlib#sys#system_rx; add OpenOffice exensions to g:tlib#sys#special_suffixes |
||||
- NEW tlib#selection#GetSelection() |
||||
- tlib#date#Shift(): Fix "Xm", ++specs |
||||
- tlib#trace#Set: FIX Properly handly "-label" |
||||
MD5 checksum: c3a1fe7d3cd86becbd3f7b0ba7ae9cd8 |
||||
version: "1.19" |
||||
|
||||
version: "1.20" |
||||
- tlib#arg: Completion for comma-separated lists |
||||
- Use "silent cd" |
||||
- NEW tlib#type#DefSchema(); FIX tlib#type#Has() |
||||
- tlib#cache#Value(): minor change |
||||
- tlib#date#IsDate() also checks whether the date is valid |
||||
- ! tlib#sys#Open(): escape special chars only once |
||||
- tlib#trace#Print: Allow for strings |
||||
- :Tlibtrace, :Tlibtraceset, :Tlibassert remove `-bar` |
||||
- NEW :Tlibtype (type/schema assertions); tlib#type#Is() also accepts schemas as "types" |
||||
- tlib#dir#CD(): Use haslocaldir() |
||||
- tlib#qfl#AgentGotoQFE: Don't use wincmd w |
||||
- NEW tlib#string#Input() |
||||
- FIX g:tlib#sys#system_rx; add OpenOffice exensions to g:tlib#sys#special_suffixes |
||||
- NEW tlib#selection#GetSelection() |
||||
- tlib#date#Shift(): Fix "Xm", ++specs |
||||
- tlib#trace#Set: FIX Properly handly "-label" |
||||
MD5 checksum: c919e0782931a8c628c6996903f989d3 |
||||
|
||||
- tlib#date#Shift(): Support for business days 'Nb' |
||||
- tlib#list#Uniq: Properly handle empty strings |
||||
- tlib#trace: Use g:tlib#trace#printer and tlib#trace#Printer_{printer} |
||||
- tlib#dictionary#Rev: Optional argument `opts = {}`; properly handle empty values etc. |
||||
- NEW g:tlib#trace#hl |
||||
- NEW spec/dictionary.vim |
||||
- tlib#agent#CompleteAgentNames: case insensitive |
||||
- tlib#arg#CComplete: --[no-]debug option |
||||
- tlib#date#Format: use localtime() if no arg is provided |
||||
- NEW tlib#file#IsAbsolute |
||||
- NEW tlib#notify#PrintError() |
||||
- tlib#trace#Print: FIX s/exec/call/ |
||||
- tlib#type#Is() match full type name |
||||
- NEW tlib#string#MatchAll() |
||||
- Tlibtraceset, tlib#trace#Set(): If no `+` or `-` is prepended, assume `+`. |
||||
- tlib#list#Input: fix highlighting for filenames |
||||
- tlib#input#ListW: use world.CloseScratch(1) |
||||
- tlib#agent#ViewFile: Ignore errors in :exec back |
||||
- NEW tlib#agent#EditFileInWindow() |
||||
- :Tlibtraceset uses tlib#arg#GetOpts(), i.e. you can set the log file more easily |
||||
MD5 checksum: 20a48e225f32b9f58808096a5377af04 |
||||
version: "1.22" |
||||
|
||||
- tlib#date#Shift(): Support for business days 'Nb' |
||||
- tlib#list#Uniq: Properly handle empty strings |
||||
- tlib#trace: Use g:tlib#trace#printer and tlib#trace#Printer_{printer} |
||||
- tlib#dictionary#Rev: Optional argument `opts = {}`; properly handle empty values etc. |
||||
- NEW g:tlib#trace#hl |
||||
- NEW spec/dictionary.vim |
||||
- tlib#agent#CompleteAgentNames: case insensitive |
||||
- tlib#arg#CComplete: --[no-]debug option |
||||
- tlib#date#Format: use localtime() if no arg is provided |
||||
- NEW tlib#file#IsAbsolute |
||||
- NEW tlib#notify#PrintError() |
||||
- tlib#trace#Print: FIX s/exec/call/ |
||||
- tlib#type#Is() match full type name |
||||
- NEW tlib#string#MatchAll() |
||||
- Tlibtraceset, tlib#trace#Set(): If no `+` or `-` is prepended, assume `+`. |
||||
- tlib#list#Input: fix highlighting for filenames |
||||
- tlib#input#ListW: use world.CloseScratch(1) |
||||
- tlib#agent#ViewFile: Ignore errors in :exec back |
||||
- NEW tlib#agent#EditFileInWindow() |
||||
- :Tlibtraceset uses tlib#arg#GetOpts(), i.e. you can set the log file more easily |
||||
MD5 checksum: 20a48e225f32b9f58808096a5377af04 |
||||
version: "1.22" |
||||
|
||||
- bump version 1.23 + misc changes |
||||
- FIX #24: avoid vim8 features |
||||
- tlib#win#GetID(): Alternative implementation sets a window variable to identify the window |
||||
- tlib#arg#GetOpts(): If args is a dict, return it |
||||
- tlib#file#FilterFiles(): FIX typo |
||||
- tlib#trace#Set: Experimental support for log levels |
||||
- tlib#input#ListW: make sure to close scratch when <= 1 items are in the list |
||||
- FIX #25: set win_nr again; fix some lint warnings |
||||
- tlib#progressbar#Init(): returns a statusline definition that can be used for restor |
||||
MD5 checksum: c4d6e018cbbd3b286a9b1648b748c1f3 |
||||
version: "1.23" |
||||
|
||||
- bump version 1.23 + misc changes |
||||
- FIX #24: avoid vim8 features |
||||
- tlib#win#GetID(): Alternative implementation sets a window variable to identify the window |
||||
- tlib#arg#GetOpts(): If args is a dict, return it |
||||
- tlib#file#FilterFiles(): FIX typo |
||||
- tlib#trace#Set: Experimental support for log levels |
||||
- tlib#input#ListW: make sure to close scratch when <= 1 items are in the list |
||||
- FIX #25: set win_nr again; fix some lint warnings |
||||
- tlib#progressbar#Init(): returns a statusline definition that can be used for restor |
||||
MD5 checksum: c4d6e018cbbd3b286a9b1648b748c1f3 |
||||
version: "1.23" |
||||
|
||||
- bump version 1.23 + misc changes |
||||
- FIX #24: avoid vim8 features |
||||
- tlib#win#GetID(): Alternative implementation sets a window variable to identify the window |
||||
- tlib#arg#GetOpts(): If args is a dict, return it |
||||
- tlib#file#FilterFiles(): FIX typo |
||||
- tlib#trace#Set: Experimental support for log levels |
||||
- tlib#input#ListW: make sure to close scratch when <= 1 items are in the list |
||||
- FIX #25: set win_nr again; fix some lint warnings |
||||
- tlib#progressbar#Init(): returns a statusline definition that can be used for restor |
||||
MD5 checksum: c4d6e018cbbd3b286a9b1648b748c1f3 |
||||
version: "1.23" |
||||
|
||||
- bump version 1.23 + misc changes |
||||
- FIX #24: avoid vim8 features |
||||
- tlib#win#GetID(): Alternative implementation sets a window variable to identify the window |
||||
- tlib#arg#GetOpts(): If args is a dict, return it |
||||
- tlib#file#FilterFiles(): FIX typo |
||||
- tlib#trace#Set: Experimental support for log levels |
||||
- tlib#input#ListW: make sure to close scratch when <= 1 items are in the list |
||||
- FIX #25: set win_nr again; fix some lint warnings |
||||
- tlib#progressbar#Init(): returns a statusline definition that can be used for restor |
||||
MD5 checksum: c4d6e018cbbd3b286a9b1648b748c1f3 |
||||
version: "1.23" |
||||
|
||||
- bump version 1.23 + misc changes |
||||
- FIX #24: avoid vim8 features |
||||
- tlib#win#GetID(): Alternative implementation sets a window variable to identify the window |
||||
- tlib#arg#GetOpts(): If args is a dict, return it |
||||
- tlib#file#FilterFiles(): FIX typo |
||||
- tlib#trace#Set: Experimental support for log levels |
||||
- tlib#input#ListW: make sure to close scratch when <= 1 items are in the list |
||||
- FIX #25: set win_nr again; fix some lint warnings |
||||
- tlib#progressbar#Init(): returns a statusline definition that can be used for restor |
||||
MD5 checksum: c4d6e018cbbd3b286a9b1648b748c1f3 |
||||
version: "1.23" |
||||
|
||||
- bump version 1.23 + misc changes |
||||
- FIX #24: avoid vim8 features |
||||
- tlib#win#GetID(): Alternative implementation sets a window variable to identify the window |
||||
- tlib#arg#GetOpts(): If args is a dict, return it |
||||
- tlib#file#FilterFiles(): FIX typo |
||||
- tlib#trace#Set: Experimental support for log levels |
||||
- tlib#input#ListW: make sure to close scratch when <= 1 items are in the list |
||||
- FIX #25: set win_nr again; fix some lint warnings |
||||
- tlib#progressbar#Init(): returns a statusline definition that can be used for restor |
||||
MD5 checksum: c4d6e018cbbd3b286a9b1648b748c1f3 |
||||
version: "1.23" |
||||
|
||||
- bump version 1.23 + misc changes |
||||
- FIX #24: avoid vim8 features |
||||
- tlib#win#GetID(): Alternative implementation sets a window variable to identify the window |
||||
- tlib#arg#GetOpts(): If args is a dict, return it |
||||
- tlib#file#FilterFiles(): FIX typo |
||||
- tlib#trace#Set: Experimental support for log levels |
||||
- tlib#input#ListW: make sure to close scratch when <= 1 items are in the list |
||||
- FIX #25: set win_nr again; fix some lint warnings |
||||
- tlib#progressbar#Init(): returns a statusline definition that can be used for restor |
||||
MD5 checksum: c4d6e018cbbd3b286a9b1648b748c1f3 |
||||
version: "1.23" |
||||
|
||||
- bump version 1.23 + misc changes |
||||
- FIX #24: avoid vim8 features |
||||
- tlib#win#GetID(): Alternative implementation sets a window variable to identify the window |
||||
- tlib#arg#GetOpts(): If args is a dict, return it |
||||
- tlib#file#FilterFiles(): FIX typo |
||||
- tlib#trace#Set: Experimental support for log levels |
||||
- tlib#input#ListW: make sure to close scratch when <= 1 items are in the list |
||||
- FIX #25: set win_nr again; fix some lint warnings |
||||
- tlib#progressbar#Init(): returns a statusline definition that can be used for restor |
||||
MD5 checksum: c4d6e018cbbd3b286a9b1648b748c1f3 |
||||
version: "1.23" |
||||
|
||||
- bump version 1.23 + misc changes |
||||
- FIX #24: avoid vim8 features |
||||
- tlib#win#GetID(): Alternative implementation sets a window variable to identify the window |
||||
- tlib#arg#GetOpts(): If args is a dict, return it |
||||
- tlib#file#FilterFiles(): FIX typo |
||||
- tlib#trace#Set: Experimental support for log levels |
||||
- tlib#input#ListW: make sure to close scratch when <= 1 items are in the list |
||||
- FIX #25: set win_nr again; fix some lint warnings |
||||
- tlib#progressbar#Init(): returns a statusline definition that can be used for restor |
||||
MD5 checksum: c4d6e018cbbd3b286a9b1648b748c1f3 |
||||
version: "1.23" |
||||
|
@ -0,0 +1,674 @@ |
||||
GNU GENERAL PUBLIC LICENSE |
||||
Version 3, 29 June 2007 |
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> |
||||
Everyone is permitted to copy and distribute verbatim copies |
||||
of this license document, but changing it is not allowed. |
||||
|
||||
Preamble |
||||
|
||||
The GNU General Public License is a free, copyleft license for |
||||
software and other kinds of works. |
||||
|
||||
The licenses for most software and other practical works are designed |
||||
to take away your freedom to share and change the works. By contrast, |
||||
the GNU General Public License is intended to guarantee your freedom to |
||||
share and change all versions of a program--to make sure it remains free |
||||
software for all its users. We, the Free Software Foundation, use the |
||||
GNU General Public License for most of our software; it applies also to |
||||
any other work released this way by its authors. You can apply it to |
||||
your programs, too. |
||||
|
||||
When we speak of free software, we are referring to freedom, not |
||||
price. Our General Public Licenses are designed to make sure that you |
||||
have the freedom to distribute copies of free software (and charge for |
||||
them if you wish), that you receive source code or can get it if you |
||||
want it, that you can change the software or use pieces of it in new |
||||
free programs, and that you know you can do these things. |
||||
|
||||
To protect your rights, we need to prevent others from denying you |
||||
these rights or asking you to surrender the rights. Therefore, you have |
||||
certain responsibilities if you distribute copies of the software, or if |
||||
you modify it: responsibilities to respect the freedom of others. |
||||
|
||||
For example, if you distribute copies of such a program, whether |
||||
gratis or for a fee, you must pass on to the recipients the same |
||||
freedoms that you received. You must make sure that they, too, receive |
||||
or can get the source code. And you must show them these terms so they |
||||
know their rights. |
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps: |
||||
(1) assert copyright on the software, and (2) offer you this License |
||||
giving you legal permission to copy, distribute and/or modify it. |
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains |
||||
that there is no warranty for this free software. For both users' and |
||||
authors' sake, the GPL requires that modified versions be marked as |
||||
changed, so that their problems will not be attributed erroneously to |
||||
authors of previous versions. |
||||
|
||||
Some devices are designed to deny users access to install or run |
||||
modified versions of the software inside them, although the manufacturer |
||||
can do so. This is fundamentally incompatible with the aim of |
||||
protecting users' freedom to change the software. The systematic |
||||
pattern of such abuse occurs in the area of products for individuals to |
||||
use, which is precisely where it is most unacceptable. Therefore, we |
||||
have designed this version of the GPL to prohibit the practice for those |
||||
products. If such problems arise substantially in other domains, we |
||||
stand ready to extend this provision to those domains in future versions |
||||
of the GPL, as needed to protect the freedom of users. |
||||
|
||||
Finally, every program is threatened constantly by software patents. |
||||
States should not allow patents to restrict development and use of |
||||
software on general-purpose computers, but in those that do, we wish to |
||||
avoid the special danger that patents applied to a free program could |
||||
make it effectively proprietary. To prevent this, the GPL assures that |
||||
patents cannot be used to render the program non-free. |
||||
|
||||
The precise terms and conditions for copying, distribution and |
||||
modification follow. |
||||
|
||||
TERMS AND CONDITIONS |
||||
|
||||
0. Definitions. |
||||
|
||||
"This License" refers to version 3 of the GNU General Public License. |
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of |
||||
works, such as semiconductor masks. |
||||
|
||||
"The Program" refers to any copyrightable work licensed under this |
||||
License. Each licensee is addressed as "you". "Licensees" and |
||||
"recipients" may be individuals or organizations. |
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work |
||||
in a fashion requiring copyright permission, other than the making of an |
||||
exact copy. The resulting work is called a "modified version" of the |
||||
earlier work or a work "based on" the earlier work. |
||||
|
||||
A "covered work" means either the unmodified Program or a work based |
||||
on the Program. |
||||
|
||||
To "propagate" a work means to do anything with it that, without |
||||
permission, would make you directly or secondarily liable for |
||||
infringement under applicable copyright law, except executing it on a |
||||
computer or modifying a private copy. Propagation includes copying, |
||||
distribution (with or without modification), making available to the |
||||
public, and in some countries other activities as well. |
||||
|
||||
To "convey" a work means any kind of propagation that enables other |
||||
parties to make or receive copies. Mere interaction with a user through |
||||
a computer network, with no transfer of a copy, is not conveying. |
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices" |
||||
to the extent that it includes a convenient and prominently visible |
||||
feature that (1) displays an appropriate copyright notice, and (2) |
||||
tells the user that there is no warranty for the work (except to the |
||||
extent that warranties are provided), that licensees may convey the |
||||
work under this License, and how to view a copy of this License. If |
||||
the interface presents a list of user commands or options, such as a |
||||
menu, a prominent item in the list meets this criterion. |
||||
|
||||
1. Source Code. |
||||
|
||||
The "source code" for a work means the preferred form of the work |
||||
for making modifications to it. "Object code" means any non-source |
||||
form of a work. |
||||
|
||||
A "Standard Interface" means an interface that either is an official |
||||
standard defined by a recognized standards body, or, in the case of |
||||
interfaces specified for a particular programming language, one that |
||||
is widely used among developers working in that language. |
||||
|
||||
The "System Libraries" of an executable work include anything, other |
||||
than the work as a whole, that (a) is included in the normal form of |
||||
packaging a Major Component, but which is not part of that Major |
||||
Component, and (b) serves only to enable use of the work with that |
||||
Major Component, or to implement a Standard Interface for which an |
||||
implementation is available to the public in source code form. A |
||||
"Major Component", in this context, means a major essential component |
||||
(kernel, window system, and so on) of the specific operating system |
||||
(if any) on which the executable work runs, or a compiler used to |
||||
produce the work, or an object code interpreter used to run it. |
||||
|
||||
The "Corresponding Source" for a work in object code form means all |
||||
the source code needed to generate, install, and (for an executable |
||||
work) run the object code and to modify the work, including scripts to |
||||
control those activities. However, it does not include the work's |
||||
System Libraries, or general-purpose tools or generally available free |
||||
programs which are used unmodified in performing those activities but |
||||
which are not part of the work. For example, Corresponding Source |
||||
includes interface definition files associated with source files for |
||||
the work, and the source code for shared libraries and dynamically |
||||
linked subprograms that the work is specifically designed to require, |
||||
such as by intimate data communication or control flow between those |
||||
subprograms and other parts of the work. |
||||
|
||||
The Corresponding Source need not include anything that users |
||||
can regenerate automatically from other parts of the Corresponding |
||||
Source. |
||||
|
||||
The Corresponding Source for a work in source code form is that |
||||
same work. |
||||
|
||||
2. Basic Permissions. |
||||
|
||||
All rights granted under this License are granted for the term of |
||||
copyright on the Program, and are irrevocable provided the stated |
||||
conditions are met. This License explicitly affirms your unlimited |
||||
permission to run the unmodified Program. The output from running a |
||||
covered work is covered by this License only if the output, given its |
||||
content, constitutes a covered work. This License acknowledges your |
||||
rights of fair use or other equivalent, as provided by copyright law. |
||||
|
||||
You may make, run and propagate covered works that you do not |
||||
convey, without conditions so long as your license otherwise remains |
||||
in force. You may convey covered works to others for the sole purpose |
||||
of having them make modifications exclusively for you, or provide you |
||||
with facilities for running those works, provided that you comply with |
||||
the terms of this License in conveying all material for which you do |
||||
not control copyright. Those thus making or running the covered works |
||||
for you must do so exclusively on your behalf, under your direction |
||||
and control, on terms that prohibit them from making any copies of |
||||
your copyrighted material outside their relationship with you. |
||||
|
||||
Conveying under any other circumstances is permitted solely under |
||||
the conditions stated below. Sublicensing is not allowed; section 10 |
||||
makes it unnecessary. |
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law. |
||||
|
||||
No covered work shall be deemed part of an effective technological |
||||
measure under any applicable law fulfilling obligations under article |
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or |
||||
similar laws prohibiting or restricting circumvention of such |
||||
measures. |
||||
|
||||
When you convey a covered work, you waive any legal power to forbid |
||||
circumvention of technological measures to the extent such circumvention |
||||
is effected by exercising rights under this License with respect to |
||||
the covered work, and you disclaim any intention to limit operation or |
||||
modification of the work as a means of enforcing, against the work's |
||||
users, your or third parties' legal rights to forbid circumvention of |
||||
technological measures. |
||||
|
||||
4. Conveying Verbatim Copies. |
||||
|
||||
You may convey verbatim copies of the Program's source code as you |
||||
receive it, in any medium, provided that you conspicuously and |
||||
appropriately publish on each copy an appropriate copyright notice; |
||||
keep intact all notices stating that this License and any |
||||
non-permissive terms added in accord with section 7 apply to the code; |
||||
keep intact all notices of the absence of any warranty; and give all |
||||
recipients a copy of this License along with the Program. |
||||
|
||||
You may charge any price or no price for each copy that you convey, |
||||
and you may offer support or warranty protection for a fee. |
||||
|
||||
5. Conveying Modified Source Versions. |
||||
|
||||
You may convey a work based on the Program, or the modifications to |
||||
produce it from the Program, in the form of source code under the |
||||
terms of section 4, provided that you also meet all of these conditions: |
||||
|
||||
a) The work must carry prominent notices stating that you modified |
||||
it, and giving a relevant date. |
||||
|
||||
b) The work must carry prominent notices stating that it is |
||||
released under this License and any conditions added under section |
||||
7. This requirement modifies the requirement in section 4 to |
||||
"keep intact all notices". |
||||
|
||||
c) You must license the entire work, as a whole, under this |
||||
License to anyone who comes into possession of a copy. This |
||||
License will therefore apply, along with any applicable section 7 |
||||
additional terms, to the whole of the work, and all its parts, |
||||
regardless of how they are packaged. This License gives no |
||||
permission to license the work in any other way, but it does not |
||||
invalidate such permission if you have separately received it. |
||||
|
||||
d) If the work has interactive user interfaces, each must display |
||||
Appropriate Legal Notices; however, if the Program has interactive |
||||
interfaces that do not display Appropriate Legal Notices, your |
||||
work need not make them do so. |
||||
|
||||
A compilation of a covered work with other separate and independent |
||||
works, which are not by their nature extensions of the covered work, |
||||
and which are not combined with it such as to form a larger program, |
||||
in or on a volume of a storage or distribution medium, is called an |
||||
"aggregate" if the compilation and its resulting copyright are not |
||||
used to limit the access or legal rights of the compilation's users |
||||
beyond what the individual works permit. Inclusion of a covered work |
||||
in an aggregate does not cause this License to apply to the other |
||||
parts of the aggregate. |
||||
|
||||
6. Conveying Non-Source Forms. |
||||
|
||||
You may convey a covered work in object code form under the terms |
||||
of sections 4 and 5, provided that you also convey the |
||||
machine-readable Corresponding Source under the terms of this License, |
||||
in one of these ways: |
||||
|
||||
a) Convey the object code in, or embodied in, a physical product |
||||
(including a physical distribution medium), accompanied by the |
||||
Corresponding Source fixed on a durable physical medium |
||||
customarily used for software interchange. |
||||
|
||||
b) Convey the object code in, or embodied in, a physical product |
||||
(including a physical distribution medium), accompanied by a |
||||
written offer, valid for at least three years and valid for as |
||||
long as you offer spare parts or customer support for that product |
||||
model, to give anyone who possesses the object code either (1) a |
||||
copy of the Corresponding Source for all the software in the |
||||
product that is covered by this License, on a durable physical |
||||
medium customarily used for software interchange, for a price no |
||||
more than your reasonable cost of physically performing this |
||||
conveying of source, or (2) access to copy the |
||||
Corresponding Source from a network server at no charge. |
||||
|
||||
c) Convey individual copies of the object code with a copy of the |
||||
written offer to provide the Corresponding Source. This |
||||
alternative is allowed only occasionally and noncommercially, and |
||||
only if you received the object code with such an offer, in accord |
||||
with subsection 6b. |
||||
|
||||
d) Convey the object code by offering access from a designated |
||||
place (gratis or for a charge), and offer equivalent access to the |
||||
Corresponding Source in the same way through the same place at no |
||||
further charge. You need not require recipients to copy the |
||||
Corresponding Source along with the object code. If the place to |
||||
copy the object code is a network server, the Corresponding Source |
||||
may be on a different server (operated by you or a third party) |
||||
that supports equivalent copying facilities, provided you maintain |
||||
clear directions next to the object code saying where to find the |
||||
Corresponding Source. Regardless of what server hosts the |
||||
Corresponding Source, you remain obligated to ensure that it is |
||||
available for as long as needed to satisfy these requirements. |
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided |
||||
you inform other peers where the object code and Corresponding |
||||
Source of the work are being offered to the general public at no |
||||
charge under subsection 6d. |
||||
|
||||
A separable portion of the object code, whose source code is excluded |
||||
from the Corresponding Source as a System Library, need not be |
||||
included in conveying the object code work. |
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any |
||||
tangible personal property which is normally used for personal, family, |
||||
or household purposes, or (2) anything designed or sold for incorporation |
||||
into a dwelling. In determining whether a product is a consumer product, |
||||
doubtful cases shall be resolved in favor of coverage. For a particular |
||||
product received by a particular user, "normally used" refers to a |
||||
typical or common use of that class of product, regardless of the status |
||||
of the particular user or of the way in which the particular user |
||||
actually uses, or expects or is expected to use, the product. A product |
||||
is a consumer product regardless of whether the product has substantial |
||||
commercial, industrial or non-consumer uses, unless such uses represent |
||||
the only significant mode of use of the product. |
||||
|
||||
"Installation Information" for a User Product means any methods, |
||||
procedures, authorization keys, or other information required to install |
||||
and execute modified versions of a covered work in that User Product from |
||||
a modified version of its Corresponding Source. The information must |
||||
suffice to ensure that the continued functioning of the modified object |
||||
code is in no case prevented or interfered with solely because |
||||
modification has been made. |
||||
|
||||
If you convey an object code work under this section in, or with, or |
||||
specifically for use in, a User Product, and the conveying occurs as |
||||
part of a transaction in which the right of possession and use of the |
||||
User Product is transferred to the recipient in perpetuity or for a |
||||
fixed term (regardless of how the transaction is characterized), the |
||||
Corresponding Source conveyed under this section must be accompanied |
||||
by the Installation Information. But this requirement does not apply |
||||
if neither you nor any third party retains the ability to install |
||||
modified object code on the User Product (for example, the work has |
||||
been installed in ROM). |
||||
|
||||
The requirement to provide Installation Information does not include a |
||||
requirement to continue to provide support service, warranty, or updates |
||||
for a work that has been modified or installed by the recipient, or for |
||||
the User Product in which it has been modified or installed. Access to a |
||||
network may be denied when the modification itself materially and |
||||
adversely affects the operation of the network or violates the rules and |
||||
protocols for communication across the network. |
||||
|
||||
Corresponding Source conveyed, and Installation Information provided, |
||||
in accord with this section must be in a format that is publicly |
||||
documented (and with an implementation available to the public in |
||||
source code form), and must require no special password or key for |
||||
unpacking, reading or copying. |
||||
|
||||
7. Additional Terms. |
||||
|
||||
"Additional permissions" are terms that supplement the terms of this |
||||
License by making exceptions from one or more of its conditions. |
||||
Additional permissions that are applicable to the entire Program shall |
||||
be treated as though they were included in this License, to the extent |
||||
that they are valid under applicable law. If additional permissions |
||||
apply only to part of the Program, that part may be used separately |
||||
under those permissions, but the entire Program remains governed by |
||||
this License without regard to the additional permissions. |
||||
|
||||
When you convey a copy of a covered work, you may at your option |
||||
remove any additional permissions from that copy, or from any part of |
||||
it. (Additional permissions may be written to require their own |
||||
removal in certain cases when you modify the work.) You may place |
||||
additional permissions on material, added by you to a covered work, |
||||
for which you have or can give appropriate copyright permission. |
||||
|
||||
Notwithstanding any other provision of this License, for material you |
||||
add to a covered work, you may (if authorized by the copyright holders of |
||||
that material) supplement the terms of this License with terms: |
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the |
||||
terms of sections 15 and 16 of this License; or |
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or |
||||
author attributions in that material or in the Appropriate Legal |
||||
Notices displayed by works containing it; or |
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or |
||||
requiring that modified versions of such material be marked in |
||||
reasonable ways as different from the original version; or |
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or |
||||
authors of the material; or |
||||
|
||||
e) Declining to grant rights under trademark law for use of some |
||||
trade names, trademarks, or service marks; or |
||||
|
||||
f) Requiring indemnification of licensors and authors of that |
||||
material by anyone who conveys the material (or modified versions of |
||||
it) with contractual assumptions of liability to the recipient, for |
||||
any liability that these contractual assumptions directly impose on |
||||
those licensors and authors. |
||||
|
||||
All other non-permissive additional terms are considered "further |
||||
restrictions" within the meaning of section 10. If the Program as you |
||||
received it, or any part of it, contains a notice stating that it is |
||||
governed by this License along with a term that is a further |
||||
restriction, you may remove that term. If a license document contains |
||||
a further restriction but permits relicensing or conveying under this |
||||
License, you may add to a covered work material governed by the terms |
||||
of that license document, provided that the further restriction does |
||||
not survive such relicensing or conveying. |
||||
|
||||
If you add terms to a covered work in accord with this section, you |
||||
must place, in the relevant source files, a statement of the |
||||
additional terms that apply to those files, or a notice indicating |
||||
where to find the applicable terms. |
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the |
||||
form of a separately written license, or stated as exceptions; |
||||
the above requirements apply either way. |
||||
|
||||
8. Termination. |
||||
|
||||
You may not propagate or modify a covered work except as expressly |
||||
provided under this License. Any attempt otherwise to propagate or |
||||
modify it is void, and will automatically terminate your rights under |
||||
this License (including any patent licenses granted under the third |
||||
paragraph of section 11). |
||||
|
||||
However, if you cease all violation of this License, then your |
||||
license from a particular copyright holder is reinstated (a) |
||||
provisionally, unless and until the copyright holder explicitly and |
||||
finally terminates your license, and (b) permanently, if the copyright |
||||
holder fails to notify you of the violation by some reasonable means |
||||
prior to 60 days after the cessation. |
||||
|
||||
Moreover, your license from a particular copyright holder is |
||||
reinstated permanently if the copyright holder notifies you of the |
||||
violation by some reasonable means, this is the first time you have |
||||
received notice of violation of this License (for any work) from that |
||||
copyright holder, and you cure the violation prior to 30 days after |
||||
your receipt of the notice. |
||||
|
||||
Termination of your rights under this section does not terminate the |
||||
licenses of parties who have received copies or rights from you under |
||||
this License. If your rights have been terminated and not permanently |
||||
reinstated, you do not qualify to receive new licenses for the same |
||||
material under section 10. |
||||
|
||||
9. Acceptance Not Required for Having Copies. |
||||
|
||||
You are not required to accept this License in order to receive or |
||||
run a copy of the Program. Ancillary propagation of a covered work |
||||
occurring solely as a consequence of using peer-to-peer transmission |
||||
to receive a copy likewise does not require acceptance. However, |
||||
nothing other than this License grants you permission to propagate or |
||||
modify any covered work. These actions infringe copyright if you do |
||||
not accept this License. Therefore, by modifying or propagating a |
||||
covered work, you indicate your acceptance of this License to do so. |
||||
|
||||
10. Automatic Licensing of Downstream Recipients. |
||||
|
||||
Each time you convey a covered work, the recipient automatically |
||||
receives a license from the original licensors, to run, modify and |
||||
propagate that work, subject to this License. You are not responsible |
||||
for enforcing compliance by third parties with this License. |
||||
|
||||
An "entity transaction" is a transaction transferring control of an |
||||
organization, or substantially all assets of one, or subdividing an |
||||
organization, or merging organizations. If propagation of a covered |
||||
work results from an entity transaction, each party to that |
||||
transaction who receives a copy of the work also receives whatever |
||||
licenses to the work the party's predecessor in interest had or could |
||||
give under the previous paragraph, plus a right to possession of the |
||||
Corresponding Source of the work from the predecessor in interest, if |
||||
the predecessor has it or can get it with reasonable efforts. |
||||
|
||||
You may not impose any further restrictions on the exercise of the |
||||
rights granted or affirmed under this License. For example, you may |
||||
not impose a license fee, royalty, or other charge for exercise of |
||||
rights granted under this Licen |