📄 atnotify.c
字号:
#include <u.h>#include <libc.h>#define NFN 33static int (*onnot[NFN])(void*, char*);static Lock onnotlock;staticvoidnotifier(void *v, char *s){ int i; for(i=0; i<NFN; i++) if(onnot[i] && ((*onnot[i])(v, s))){ noted(NCONT); return; } noted(NDFLT);}intatnotify(int (*f)(void*, char*), int in){ int i, n, ret; static int init; if(!init){ notify(notifier); init = 1; /* assign = */ } ret = 0; lock(&onnotlock); if(in){ for(i=0; i<NFN; i++) if(onnot[i] == 0) { onnot[i] = f; ret = 1; break; } }else{ n = 0; for(i=0; i<NFN; i++) if(onnot[i]){ if(ret==0 && onnot[i]==f){ onnot[i] = 0; ret = 1; }else n++; } if(n == 0){ init = 0; notify(0); } } unlock(&onnotlock); return ret;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -