[lun jun 1 2020] *** You have joined channel #lain [21:31] *** Users on #lain: qorg11 @username *** #lain modes: +nt *** #lain was created on 2020-06-01 21:25:46 <qorg11> alright im back *** username (user@vxempire.xyz) has quit: Remote host closed the connection *** username (user@vxempire.xyz) has joined channel #lain <username> accedentially closed emacs <qorg11> lol <qorg11> there's cat [21:32] <qorg11> i think i can write wc <username> got it <username> i'm writing echo rn <qorg11> isn't it hard? <qorg11> just printf argvs lol <username> no <username> printf is hard <username> echo is just looking for \n and stuff [21:33] <qorg11> t. vprintf <qorg11> Are we going to add flags? [21:34] <qorg11> like -l for wc <qorg11> because in that case, i have no idea how getopt works outside perl [21:35] <username> work on basics now <username> add flags later <qorg11> We aren't going to add cat -v are we <username> no [21:36] <username> cat -v considered harmful <qorg11> yeah *** username (user@vxempire.xyz) has quit: Remote host closed the connection *** username (user@vxempire.xyz) has joined channel #lain <username> accedentially quit emacs again B) <qorg11> That doesn't happens with a tillingwm ;-) <qorg11> btw i'm logging this chat for historic reasons, you mind? [21:37] <username> no, i dont care <username> oh, check "man getopt" <username> M-x man getopt <qorg11> i know lol <qorg11> i'm a bit brainlet idk if you knew that [21:38] <qorg11> I'm going to create touch also <username> Added echo <username> https://gitlab.com/call-cc/k9core/-/blob/master/src/echo.c [21:42] <username> <username> gnu are you even trying <qorg11> lol [21:43] <qorg11> probably no <qorg11> liteally using touch with: open(argv[1],O_CREAT); <username> virgin gnu echo vs chad k9core echo with 12 lines [21:44] <username> virgin gnu cat vs chad k9core cat with 100 lines [21:45] <qorg11> lol [21:46] <qorg11> Is k9core an ironic project? [21:47] <username> not really <qorg11> cool <username> i think most coreutils suck <username> even the openbsd ones <username> some have too little options while some are too bloated <qorg11> I can't understand why open O_CREAT is giving weird permissions [21:48] <qorg11> I skipped the chmod class! [21:49] <username> Fixed a single line in cat [21:50] <qorg11> it worked but okay lol <qorg11> Oh [21:51] <qorg11> breakline <username> wrote a 9 line pwd [21:57] <qorg11> touch is having 4 headers, is that bloat? <username> nah [21:58] <qorg11> and 27 lines [21:59] <qorg11> working now [22:00] <qorg11> and could remove a header <username> nice [22:01] <username> send the commit <qorg11> I'm going to push <qorg11> don't do anything lol <username> i added a bunch of commits [22:02] <qorg11> sent <qorg11> yes <qorg11> i've been pulling <qorg11> I know the code sucks ok [22:03] <qorg11> pushing <qorg11> pushed <username> nice <username> not bad code too [22:04] <qorg11> >chmod <qorg11> lmaoo <qorg11> I think i can also write chmod <qorg11> using the chmod function <qorg11> >gnu coreutils 435 lines <qorg11> jesus <username> GNU's not bloated (i swear) [22:05] <qorg11> lmao [22:06] <qorg11> SHIIIIIIIIIIIIIIIIIIIIIT <qorg11> GNU PWD HAS 390 LINES <username> HAHHAHHAHAH [22:07] <username> LOL <qorg11> Is this less bloated than plan9? <qorg11> let's find out <qorg11> We did it <qorg11> my touch has less lines than 9base <username> WE BEAT PLAN9 [22:08] <username> UNIX WINS AGAIN <qorg11> lmao <username> I reccommend you pull <qorg11> okay <qorg11> okay this is the worst makefile i've ever seen, no offense [22:09] <qorg11> why don't we generate it using autotools? :) <username> autotools is a bit shit ngl [22:10] <username> i would say cmake but you probably will know my opinion on cmake <qorg11> i like autotools [22:11] <qorg11> but this is an antignu project <qorg11> so we wouldn't use autotools <qorg11> now i HATE cmake <username> we could use some kind of ninja file generator <username> or something like that <qorg11> ninja? <qorg11> nah <qorg11> i can write my own makefile, don't worry <username> nice <qorg11> I remember i used ninja to build reactos [22:12] <qorg11> btw <qorg11> please verify my touch works in bsd <qorg11> yeah [22:13] <qorg11> probably your makefile is better <qorg11> we can also do a shell script for building <qorg11> for $file in <qorg11> shit <qorg11> for file in *c do <username> touch works on bsd [22:14] <qorg11> you know <qorg11> ill think about it <qorg11> is make.sh a good idea? <username> yeah, probably <qorg11> cool <qorg11> rmdir(2) - delete a directory [22:15] <qorg11> thank you POSIX <qorg11> btw <qorg11> C90 compliant or C99 is ok? [22:16] <username> C99 <qorg11> okay [22:17] <qorg11> you can't do this in C90 <qorg11> for (int i = 0..) <qorg11> btw [22:18] <qorg11> isn't it ironic to compile this using gcc? <username> i'm using clang LOL [22:19] <qorg11> idk what's worse [22:20] <qorg11> i think tcc would work <username> behold, rmdir https://gitlab.com/call-cc/k9core/-/raw/master/src/rmdir.c <qorg11> I was writing it [22:21] <qorg11> Ill do a change to it tohugh <username> owned <qorg11> oh <qorg11> *argv deletes everything in the array? [22:22] <qorg11> or just argv[1]? <username> just argv[1] <qorg11> okay, then i'll use a for <qorg11> btw, try not to use C++ comments [22:23] <username> just did it though <qorg11> lol <username> for loop? nah, while(*argv) { rmdir(*argv); *argv++; } [22:24] <qorg11> I think for is more readable though <username> more overhead in a for loop [22:25] <qorg11> Thank you for following the code style in rmdir.c though <qorg11> Hey, mine has less lines! [22:26] <qorg11> There's only one way to see which is best. <username> my code works [22:28] <username> really fast, infact <qorg11> well <qorg11> yours and mine are exactly the same fast <qorg11> BUT [22:29] <qorg11> mine has no warnings )= <qorg11> =)* <username> gcc is wrong thpo <username> *tho <qorg11> I'm using flycheck <qorg11> it uses clang <username> yeah mine produces a warning too [22:30] <qorg11> Mine does? <username> no <qorg11> So we use mine or keep yours? [22:31] <username> send code on paste <qorg11> of mine? <username> paste.debian.net <username> yeah <qorg11> service unaviable <qorg11> rip <username> dang <qorg11> https://paste.delegao.moe/?3b46f2eb4792556e#FBhKo2cTHwiBPSdHX3Vy9UgfHsd9EGbmjsQ4cp1TkKmk <qorg11> WAIT [22:32] <qorg11> we should at the -1 thing <qorg11> let me do it <qorg11> that would include stdio.h [22:34] <username> check posix [22:35] <qorg11> posix? <username> check the posix standards <qorg11> https://paste.delegao.moe/?ac1efe9a0984f842#2rJU7KQFZLy9XG6rFS562otUKQg8pvdU7J4YvXZjm15p <qorg11> just did that <qorg11> I can also use if(rmdir(argv[i]) == -1) though [22:36] <qorg11> but i think that's ugly as fuck and should never be used <username> nah that's good C <username> which is kinda weird but yeah that's how you write in C [22:37] <qorg11> yes it is good c <qorg11> but idk how readabl [22:38] <qorg11> do i use the "file descriptor" or not? <username> yeah [22:39] <qorg11> okay <qorg11> it should not return 1 right? <username> yup <qorg11> Error removing dir d <qorg11> Error removing dir f <qorg11> Error removing dir ds <qorg11> Error removing dir dsa <qorg11> <username> nvm running rmdir without that returns an error [22:40] <qorg11> yeah [22:41] <qorg11> rmdir should not give up at the first <qorg11> for example <qorg11> if foo directory exist but bar doesnt <qorg11> and you run <qorg11> ./rmdir bar foo <qorg11> it wont delete foo <username> add to an errors count and print that amount of errors at the end [22:42] <username> if(err) { errors++; } <qorg11> by err you mean fd == -1? <qorg11> i pushed though [22:43] <username> for(int i = 0; i < errors; i++) { print("File or directory not found"); } <username> nice <qorg11> if(errors>0) [22:44] <qorg11> { <qorg11> printf("%i errors found",errors); <qorg11> } <qorg11> like that? <qorg11> in the fd == -1 block it has an error++ <username> yeah <qorg11> okay [22:45] <username> i'm gonna go for a bit <qorg11> see ya <qorg11> think im going to write rm too <qorg11> with -r flag <qorg11> stdio's remove [22:46] <qorg11> I'll take a rest though [22:48] <qorg11> I'll make a mirror in my github and git.qorg11.net <qorg11> https://software.kill-9.xyz/k9core [23:05] <qorg11> should we write man pages? [23:38] <qorg11> or gnu info? ;) <username> man pages [23:43] <qorg11> the GNU thing was a joke <qorg11> ill publish the irc logs in software.kill-9.xyz/k9core/logs <qorg11> Every day at 00:00 spanish timezone <username> sounds great <qorg11> yeah [23:44] <qorg11> there is not copy function! <qorg11> oh well <qorg11> we will just use read() <qorg11> and write() somewhere ese <qorg11> else <qorg11> same thing with mv <qorg11> but use remove() at the end <qorg11> idk if read() can copy a big file though [23:45] <qorg11> I can't understand something [23:47] <qorg11> how does read() works? <username> M-x man read <qorg11> i knw <qorg11> but like wtf <qorg11> you odn't pass a reference to the buffer <qorg11> as buffer* <username> I dont think read is in FreeBSD <qorg11> although the prototype is ssize_t read(int fd, void *buf, size_t count); <qorg11> man 2 read [23:48] <qorg11> syscalls are in .2 manpages <username> bsd prototype is <username> ssize_t <qorg11> so is gnu's <username> read(int fd, void *buf, size_t nbytes); <qorg11> same as gnu [23:49] <qorg11> ssize_t read(int fd, void *buf, size_t count); *** username (user@vxempire.xyz) has left channel #lain: ERC (IRC client for Emacs 26.3) *** username (user@vxempire.xyz) has joined channel #lain [23:50] <username> hello, accedentially left <qorg11> yeah lol <qorg11> how do you accidentally leave? <qorg11> I literally have an M-x emacs uptime of 3 hours <username> tried to C-k on another buffer <qorg11> oh <username> forgot which buffer i was C-k-ing [23:51] <qorg11> I use C-x k <qorg11> so i can't accidentally kill a buffer <username> I use C-x k too, i just didn't notice the buffer highlight [23:53] <qorg11> oh [23:54] <qorg11> do you use C-x 5? <username> No, what does it do? [23:55] <qorg11> make another emacs frame <qorg11> or window <qorg11> try C-x 5 2 <username> oh, dang <username> nic3 <qorg11> close it with C-x 5 0 [23:56] <qorg11> C-x C-c will kill your emacs session <qorg11> https://kill-9.xyz/emacs/1_Introduction/2_Files <qorg11> C-x 5 f (find-file-other-frame): This opens another Emacs window2 and puts the selected file on a new buffer. <qorg11> This is not a new Emacs run, it is called a “frame” These two emacs window shares the opened buffers.↩ <username> I know about frames [23:59] <username> I just didnt' know about frame manipulatin <qorg11> oh