summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* Fix `remove` on last node of singly-linked list [backport:1.6] (#19353)gecko2022-01-103-0/+16
|
* added filemode docs (#19346)Smarcy2022-01-091-1/+4
|
* stylecheck usages part two: stdlib cleanup (#19338)flywind2022-01-083-3/+3
| | | | | | | | | | | | | * stylecheck usages part two: stdlib cleanup typeinfo.nim: importCompilerProc => importcompilerproc nre.nim: newLineFlags => newlineFlags system.nim: JSRoot => JsRoot ref #19319 * prefer importCompilerProc
* fix nim-lang#19343 (#19344) [backport]Zachary Marquez2022-01-081-1/+1
| | | | Ensure HttpClient onProgress is called once per second Ensure that reported speed is accurate
* disable fragments (#19341)flywind2022-01-081-1/+1
| | | The original repo has moved to Rust, while the package path stay unchanged. And it causes troubles to https://github.com/nim-lang/Nim/pull/19338
* Fix #19038 - making the Nim compiler work again on Windows XP (#19331)rockcavera2022-01-072-22/+24
| | | | | | | | | | | | | * Update osenv.nim * Update win_setenv.nim * Update lib/pure/includes/osenv.nim * Update lib/pure/includes/osenv.nim * fixing cstring Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* Update net.nim (#19327) [backport]rockcavera2022-01-061-1/+1
|
* style usages part one (openarray => openArray) (#19321)flywind2022-01-0449-76/+76
| | | | | * style usages (openArray) * revert doc changes
* add std/private/win_getsysteminfo; refactor the usage of `GetSystemInfo` ↵flywind2022-01-043-35/+23
| | | | | | | | | | | (#19310) * add std/private/win_getsysteminfo * import at the top level * wrappers follow nep1 too * follow review comment
* correct the comments (#19322)flywind2022-01-041-2/+2
| | | | | | | | | | | | | | | | | | --expandArc ``` var a b a = matrix(5, 5, 1.0) b = matrix(5, 5, 2.0) `=sink`(b, - let blitTmp = b wasMoved(b) blitTmp + a) `=destroy`(b) `=destroy`(a) ```
* docs: Fix typo in tut1.rst (#19324)Nan Xiao2022-01-041-1/+1
|
* devel: style fix (#19318)Ștefan Talpalaru2022-01-042-2/+2
| | | this allows "--styleCheck:usages --styleCheck:error"
* fixed typos (#19316)Smarcy2022-01-031-2/+2
|
* Fix #19314 - fixing broken `DoublyLinkedList` after adding empty ↵rockcavera2022-01-032-6/+18
| | | | | | | `DoublyLinkedList` (#19315) [backport] * Update lists.nim * Update tlists.nim
* enable multiple packages (arraymancer, fidget ...) (#19311)flywind2022-01-031-3/+3
| | | | The cause of arraymancer failure has been tracked here: https://github.com/mratsim/Arraymancer/issues/505 And it was fixed by https://github.com/mratsim/Arraymancer/pull/542
* docs: Fix typo in tut1.rst (#19309)Nan Xiao2022-01-031-1/+1
|
* Add Week-Of-Year Implementation to Times Module (#17223)Carlo Capocasa2022-01-033-0/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * initial * more tests * Apply suggestions from code review idiomatize Co-authored-by: Timothee Cour <timothee.cour2@gmail.com> * test iron age dates * add examples * fix typo * consistent param mention * add since pragrams * add changelog * Update lib/pure/times.nim Co-authored-by: Timothee Cour <timothee.cour2@gmail.com> * fix examples * fix negative years * add getWeeksInYear tests * add back fix dropped by rebase * week-year tuple api * add changelog * fix doc tags * add docstrings * fix typos Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com> Co-authored-by: Timothee Cour <timothee.cour2@gmail.com> Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
* [docs] clarify the raised exception (#19308)flywind2022-01-031-4/+4
| | | | | | | | | | | * [docs] clarify the raised exception Lest developers wanna know what the exception is. * Apply suggestions from @konsumlamm Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com> Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
* add compile time option for POSIX sigwait on Illumos/Solaris (#19296)BarrOff2022-01-021-0/+7
| | | | | * add compile time option for POSIX sigwait on Illumos/Solaris * fix link to documentation of `sigwait` on Illumos/Solaris
* Allow full commands and blocks in type sections (#19181)hlaaftana2022-01-028-11/+393
| | | | | | | * allow full commands and blocks in type sections * update grammar * fix changelog [skip ci] * more tests * even more tests
* Update manual.rst (#19301)rockcavera2022-01-011-1/+1
|
* Update JS and nimscript import tests (#19306)hlaaftana2022-01-012-40/+53
| | | | | * add new modules, except experimental ones * remove deprecated modules mersenne and sharedlist * better describe why some modules fail and some modules don't
* fixes #16617 [backport] (#19300)Andreas Rumpf2021-12-311-0/+2
|
* Fix #19297 - fixing broken list after adding empty list (#19299)rockcavera2021-12-302-5/+18
| | | | | | | | | * Update lists.nim * Update tlists.nim * removed check `if b.tail != nil` The tail of the list being null it is still possible to retrieve its end by going through all nodes from the head. So checking for null from `b.tail` is unnecessary. However, setting `a.tail = b.tail` only if `a.head != nil`, so you don't break a good list with an already broken one.
* enable `maxDescriptors` on Illumos/Solaris (#19295)BarrOff2021-12-302-4/+4
|
* nep1: make header reflect reality (#19294)Andreas Rumpf2021-12-291-3/+3
|
* fix 19292 (#19293)rockcavera2021-12-291-6/+9
|
* fixes grammar typos [backport] (#19289)Andreas Rumpf2021-12-272-6/+6
|
* Fix #19107 (#19286) [backport]Tomohiro2021-12-251-2/+10
|
* Fixed object field access of static objects in generics (#19283) [backport]Jason Beetham2021-12-232-1/+9
|
* Revert "Update uri.nim (#19148) [backport:1.0]" (#19280)Andreas Rumpf2021-12-231-2/+0
| | | This reverts commit a3ef5df680e55d9bf68027fcb0ec6358b4279d09.
* Fix build on FreeBSD/powerpc (#19282)pkubaj2021-12-221-2/+4
| | | It's currently misdetected as powerpc64.
* Fix group reference (with capital letters (#19196)Andrey Makarov2021-12-206-2/+45
| | | in group name)
* Extract runnables that specify `doccmd` (#19275) [backport:1.6]Jake Leahy2021-12-202-2/+22
|
* Update colors.nim (#19274)MichalMarsalek2021-12-202-145/+164
| | | | | | | | | | | * Update colors.nim Added `lightgray` alias to `lightgrey` and `...grey`aliases for the rest of the gray colors. Added color `rebeccapurple`. Fixed the incorrect values for the `PaleVioletRed` and `MediumPurple` colors. This module should now be matching the CSS colors. I used the seq[tuple] syntax for defining the names. * Document colors changes.
* use uppercase "type" for Proxy-Authorization header (#19273)xioren2021-12-191-1/+1
| | | | | Some servers will reject authorization requests with a lowercase "basic" type. Changing to "Basic" seems to solve these issues. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Proxy-Authorization
* Fixed typo in manual.rst unsafeAssign->uncheckedAssign. Fixes part 1 of ↵Don-Duong Quach2021-12-171-1/+1
| | | | #19266 (#19267)
* [formatter] async.nim uses two spaces (#19264)flywind2021-12-171-4/+4
| | | according to https://nim-lang.org/docs/nep1.html#introduction-spacing-and-whitespace-conventions, two spaces should be preferred in stdlib.
* fix #19244 - solves the problem of the InAddr object constructor in Windows. ↵rockcavera2021-12-172-1/+7
| | | | | | | (#19259) * Update winlean.nim * Update tnet_ll.nim
* Add icon for Nim (#19258)snxx2021-12-173-0/+0
| | | | | | | * Add Nim's file icon * Add installer icon * Add uninstaller icon
* suggestion to respect typedarray type (#19257)Sven Keller2021-12-161-1/+27
| | | | | | | * suggestion to respect typedarray * Update jssys.nim Co-authored-by: Sven Keller <s.keller@cortona.de>
* [backport:1.0] json: limit recursion depth (#19252)Miran2021-12-142-3/+41
| | | | | * json: limit recursion depth * do not run this check for JS backend
* Fix #19253 (#19254)PMunch2021-12-141-0/+3
| | | | This fixes 19253 by marking the bodyStream as completed when no content was sent.
* fix: fixes bug in CVerifyPeerUseEnvVars (#19247)Nick Wilburn2021-12-142-1/+18
| | | | | | Previously CVerifyPeerUseEnvVars was not being passed into scanSslCertificates, which meant that we weren't scanning additional certificate locations given via the SSL_CERT_FILE and SSL_CERT_DIR environment variables
* basicopt.txt: Unify the format (#19251)Nan Xiao2021-12-141-2/+2
|
* fix bug #14468 zero-width split (#19248)Carlo Capocasa2021-12-132-4/+13
|
* Various std net improvements (#19132)Jaremy Creechley2021-12-123-56/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Variant of that works with raw IpAddresses. - Add doc tests for new net proc's. - Aadd recvFrom impl - Add recvFrom impl -- tweak handling data var - Update lib/pure/net.nim Co-authored-by: Dominik Picheta <dominikpicheta@googlemail.com> - cleaning up sendTo args - remove extra connect test - cleaning up sendTo args - fix inet_ntop test - fix test failing - byte len * fix test failing - byte len * debugging odd windows build failure * debugging odd windows build failure * more experiments to figure out the windows failure * try manual assigment on InAddr Co-authored-by: Jaremy Creechley <jaremy.creechley@panthalassa.com>
* Update uri.nim (#19148) [backport:1.0]Dominik Picheta2021-12-111-0/+2
|
* nimc.rst: fix table markup (#19239)Ștefan Talpalaru2021-12-111-0/+2
|
* let Nim support Nimble 0.14 with lock-file support [backport:1.6] (#19236)Andreas Rumpf2021-12-102-0/+6
|
ss="o">->tx + 2 * sw, c->ty); } void floating(Arg *arg) { Client *c; arrange = floating; for(c = clients; c; c = c->next) { if(c->tags[tsel]) resize(c, True); else ban_client(c); } if(sel && !sel->tags[tsel]) { if((sel = next(clients))) { craise(sel); focus(sel); } } discard_events(EnterWindowMask); } void tiling(Arg *arg) { Client *c; int n, i, w, h; w = sw - mw; arrange = tiling; for(n = 0, c = clients; c; c = c->next) if(c->tags[tsel] && !c->floating) n++; h = (n > 1) ? sh / (n - 1) : sh; for(i = 0, c = clients; c; c = c->next) { if(c->tags[tsel]) { if(c->floating) { craise(c); resize(c, True); continue; } if(n == 1) { c->x = sx; c->y = sy; c->w = sw - 2 * c->border; c->h = sh - 2 * c->border; } else if(i == 0) { c->x = sx; c->y = sy; c->w = mw - 2 * c->border; c->h = sh - 2 * c->border; } else { c->x = sx + mw; c->y = sy + (i - 1) * h; c->w = w - 2 * c->border; c->h = h - 2 * c->border; } resize(c, False); i++; } else ban_client(c); } if(sel && !sel->tags[tsel]) { if((sel = next(clients))) { craise(sel); focus(sel); } } discard_events(EnterWindowMask); } void prevc(Arg *arg) { Client *c; if(!sel) return; if((c = sel->revert && sel->revert->tags[tsel] ? sel->revert : NULL)) { craise(c); focus(c); } } void nextc(Arg *arg) { Client *c; if(!sel) return; if(!(c = next(sel->next))) c = next(clients); if(c) { craise(c); c->revert = sel; focus(c); } } void ckill(Arg *arg) { if(!sel) return; if(sel->proto & WM_PROTOCOL_DELWIN) send_message(sel->win, wm_atom[WMProtocols], wm_atom[WMDelete]); else XKillClient(dpy, sel->win); } static void resize_title(Client *c) { int i; c->tw = 0; for(i = 0; i < TLast; i++) if(c->tags[i]) c->tw += textw(c->tags[i]) + dc.font.height; c->tw += textw(c->name) + dc.font.height; if(c->tw > c->w) c->tw = c->w + 2; c->tx = c->x + c->w - c->tw + 2; c->ty = c->y; XMoveResizeWindow(dpy, c->title, c->tx, c->ty, c->tw, c->th); } void update_name(Client *c) { XTextProperty name; int n; char **list = NULL; name.nitems = 0; c->name[0] = 0; XGetTextProperty(dpy, c->win, &name, net_atom[NetWMName]); if(!name.nitems) XGetWMName(dpy, c->win, &name); if(!name.nitems) return; if(name.encoding == XA_STRING) strncpy(c->name, (char *)name.value, sizeof(c->name)); else { if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success && n > 0 && *list) { strncpy(c->name, *list, sizeof(c->name)); XFreeStringList(list); } } XFree(name.value); resize_title(c); } void update_size(Client *c) { XSizeHints size; long msize; if(!XGetWMNormalHints(dpy, c->win, &size, &msize) || !size.flags) size.flags = PSize; c->flags = size.flags; if(c->flags & PBaseSize) { c->basew = size.base_width; c->baseh = size.base_height; } else c->basew = c->baseh = 0; if(c->flags & PResizeInc) { c->incw = size.width_inc; c->inch = size.height_inc; } else c->incw = c->inch = 0; if(c->flags & PMaxSize) { c->maxw = size.max_width; c->maxh = size.max_height; } else c->maxw = c->maxh = 0; if(c->flags & PMinSize) { c->minw = size.min_width; c->minh = size.min_height; } else c->minw = c->minh = 0; if(c->flags & PWinGravity) c->grav = size.win_gravity; else c->grav = NorthWestGravity; } void craise(Client *c) { XRaiseWindow(dpy, c->win); XRaiseWindow(dpy, c->title); } void lower(Client *c) { XLowerWindow(dpy, c->title); XLowerWindow(dpy, c->win); } void focus(Client *c) { Client *old = sel; sel = c; if(old && old != c) draw_client(old); draw_client(c); XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime); XFlush(dpy); discard_events(EnterWindowMask); } static void init_tags(Client *c) { XClassHint ch; static unsigned int len = rule ? sizeof(rule) / sizeof(rule[0]) : 0; unsigned int i, j; Bool matched = False; if(!len) { c->tags[tsel] = tags[tsel]; return; } if(XGetClassHint(dpy, c->win, &ch)) { if(ch.res_class && ch.res_name) { for(i = 0; i < len; i++) if(!strncmp(rule[i].class, ch.res_class, sizeof(rule[i].class)) && !strncmp(rule[i].instance, ch.res_name, sizeof(rule[i].instance))) { for(j = 0; j < TLast; j++) c->tags[j] = rule[i].tags[j]; c->floating = rule[i].floating; matched = True; break; } } if(ch.res_class) XFree(ch.res_class); if(ch.res_name) XFree(ch.res_name); } if(!matched) c->tags[tsel] = tags[tsel]; } void manage(Window w, XWindowAttributes *wa) { Client *c, **l; XSetWindowAttributes twa; Window trans; c = emallocz(sizeof(Client)); c->win = w; c->tx = c->x = wa->x; c->ty = c->y = wa->y; c->tw = c->w = wa->width; c->h = wa->height; c->th = th; c->border = 1; c->proto = win_proto(c->win); update_size(c); XSelectInput(dpy, c->win, StructureNotifyMask | PropertyChangeMask | EnterWindowMask); XGetTransientForHint(dpy, c->win, &trans); twa.override_redirect = 1; twa.background_pixmap = ParentRelative; twa.event_mask = ExposureMask; c->title = XCreateWindow(dpy, root, c->tx, c->ty, c->tw, c->th, 0, DefaultDepth(dpy, screen), CopyFromParent, DefaultVisual(dpy, screen), CWOverrideRedirect | CWBackPixmap | CWEventMask, &twa); update_name(c); init_tags(c); for(l = &clients; *l; l = &(*l)->next); c->next = *l; /* *l == nil */ *l = c; XMapRaised(dpy, c->win); XMapRaised(dpy, c->title); XGrabButton(dpy, Button1, Mod1Mask, c->win, False, ButtonPressMask, GrabModeAsync, GrabModeSync, None, None); XGrabButton(dpy, Button2, Mod1Mask, c->win, False, ButtonPressMask, GrabModeAsync, GrabModeSync, None, None); XGrabButton(dpy, Button3, Mod1Mask, c->win, False, ButtonPressMask, GrabModeAsync, GrabModeSync, None, None); if(!c->floating) c->floating = trans || ((c->maxw == c->minw) && (c->maxh == c->minh)); arrange(NULL); if(c->tags[tsel]) focus(c); else ban_client(c); } void gravitate(Client *c, Bool invert) { int dx = 0, dy = 0; switch(c->grav) { case StaticGravity: case NorthWestGravity: case NorthGravity: case NorthEastGravity: dy = c->border; break; case EastGravity: case CenterGravity: case WestGravity: dy = -(c->h / 2) + c->border; break; case SouthEastGravity: case SouthGravity: case SouthWestGravity: dy = -c->h; break; default: break; } switch (c->grav) { case StaticGravity: case NorthWestGravity: case WestGravity: case SouthWestGravity: dx = c->border; break; case NorthGravity: case CenterGravity: case SouthGravity: dx = -(c->w / 2) + c->border; break; case NorthEastGravity: case EastGravity: case SouthEastGravity: dx = -(c->w + c->border); break; default: break; } if(invert) { dx = -dx; dy = -dy; } c->x += dx; c->y += dy; } void resize(Client *c, Bool inc) { XConfigureEvent e; if(inc) { if(c->incw) c->w -= (c->w - c->basew) % c->incw; if(c->inch) c->h -= (c->h - c->baseh) % c->inch; } if(c->minw && c->w < c->minw) c->w = c->minw; if(c->minh && c->h < c->minh) c->h = c->minh; if(c->maxw && c->w > c->maxw) c->w = c->maxw; if(c->maxh && c->h > c->maxh) c->h = c->maxh; resize_title(c); XSetWindowBorderWidth(dpy, c->win, 1); XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h); e.type = ConfigureNotify; e.event = c->win; e.window = c->win; e.x = c->x; e.y = c->y; e.width = c->w; e.height = c->h; e.border_width = c->border; e.above = None; e.override_redirect = False; XSendEvent(dpy, c->win, False, StructureNotifyMask, (XEvent *)&e); XFlush(dpy); } static int dummy_error_handler(Display *dsply, XErrorEvent *err) { return 0; } void unmanage(Client *c) { Client **l; XGrabServer(dpy); XSetErrorHandler(dummy_error_handler); XUngrabButton(dpy, AnyButton, AnyModifier, c->win); XDestroyWindow(dpy, c->title); for(l = &clients; *l && *l != c; l = &(*l)->next); *l = c->next; for(l = &clients; *l; l = &(*l)->next) if((*l)->revert == c) (*l)->revert = NULL; if(sel == c) sel = sel->revert ? sel->revert : clients; free(c); XFlush(dpy); XSetErrorHandler(error_handler); XUngrabServer(dpy); arrange(NULL); if(sel) focus(sel); } Client * gettitle(Window w) { Client *c; for(c = clients; c; c = c->next) if(c->title == w) return c; return NULL; } Client * getclient(Window w) { Client *c; for(c = clients; c; c = c->next) if(c->win == w) return c; return NULL; } void draw_client(Client *c) { int i; if(c == sel) { XUnmapWindow(dpy, c->title); XSetWindowBorder(dpy, c->win, dc.fg); return; } XSetWindowBorder(dpy, c->win, dc.bg); XMapWindow(dpy, c->title); dc.x = dc.y = 0; dc.h = c->th; dc.w = 0; for(i = 0; i < TLast; i++) { if(c->tags[i]) { dc.x += dc.w; dc.w = textw(c->tags[i]) + dc.font.height; draw(True, c->tags[i]); } } dc.x += dc.w; dc.w = textw(c->name) + dc.font.height; draw(True, c->name); XCopyArea(dpy, dc.drawable, c->title, dc.gc, 0, 0, c->tw, c->th, 0, 0); XFlush(dpy); }