Compare commits
	
		
			2 Commits
		
	
	
		
			da0032b531
			...
			9b31e4081d
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 9b31e4081d | |||
| 017983d672 | 
@ -1,8 +1,8 @@
 | 
				
			|||||||
use bulb;
 | 
					 | 
				
			||||||
use errors;
 | 
					use errors;
 | 
				
			||||||
use fmt;
 | 
					use fmt;
 | 
				
			||||||
use fs;
 | 
					use fs;
 | 
				
			||||||
use getopt;
 | 
					use getopt;
 | 
				
			||||||
 | 
					use internal::bulb;
 | 
				
			||||||
use io;
 | 
					use io;
 | 
				
			||||||
use os;
 | 
					use os;
 | 
				
			||||||
use path;
 | 
					use path;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										15
									
								
								doc/bulb.1
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								doc/bulb.1
									
									
									
									
									
								
							@ -35,12 +35,23 @@ Posts a message read from the standard input. See the STANDARD INPUT section.
 | 
				
			|||||||
.IP \fB-u\fP
 | 
					.IP \fB-u\fP
 | 
				
			||||||
Operates undercover. All posts made will be under the name \(lqanonymous\(rq.
 | 
					Operates undercover. All posts made will be under the name \(lqanonymous\(rq.
 | 
				
			||||||
.\"
 | 
					.\"
 | 
				
			||||||
 | 
					.SH ENVIRONMENT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The BULBPATH environment variable specifies a colon-separated list of
 | 
				
			||||||
 | 
					directories (much like PATH) in which to search for boards. Directories at the
 | 
				
			||||||
 | 
					start take precedence over directories at the end. It has a value of
 | 
				
			||||||
 | 
					.I /var/bulb
 | 
				
			||||||
 | 
					by default.
 | 
				
			||||||
 | 
					.SH FILES
 | 
				
			||||||
 | 
					.I /var/bulb/*
 | 
				
			||||||
 | 
					.\"
 | 
				
			||||||
.SH STANDARD INPUT
 | 
					.SH STANDARD INPUT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
When the
 | 
					When the
 | 
				
			||||||
.B -p
 | 
					.B -p
 | 
				
			||||||
option is supplied, the standard input will be read until EOF. It will be posted
 | 
					option is supplied, the standard input will be read until EOF. The resulting
 | 
				
			||||||
under the name of the current user in whichever board the user selected.
 | 
					text will be posted under the name of the current user in whichever board is
 | 
				
			||||||
 | 
					selected.
 | 
				
			||||||
.\"
 | 
					.\"
 | 
				
			||||||
.SH STANDARD OUTPUT
 | 
					.SH STANDARD OUTPUT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -6,6 +6,17 @@ use os;
 | 
				
			|||||||
use path;
 | 
					use path;
 | 
				
			||||||
use strings;
 | 
					use strings;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// TODO
 | 
				
			||||||
 | 
					// two issues:
 | 
				
			||||||
 | 
					// A: posts are stored exactly as they are formatted
 | 
				
			||||||
 | 
					// B: posts need to be sanitized from control chars going in and going out
 | 
				
			||||||
 | 
					// C: specifying a number of posts to read only works with lines because it
 | 
				
			||||||
 | 
					//    cant separate out the individual posts
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// all of these can be fixed by escaping line breaks as the post is written to
 | 
				
			||||||
 | 
					// the board, and then rendering them once they get to the reading stage.
 | 
				
			||||||
 | 
					// sanitize the text at both stages.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let bulb_path: []str = [];
 | 
					let bulb_path: []str = [];
 | 
				
			||||||
@init fn bulb_path() void = bulb_path = strings::split(os::tryenv("BULBPATH", "/var/bulb"), ":");
 | 
					@init fn bulb_path() void = bulb_path = strings::split(os::tryenv("BULBPATH", "/var/bulb"), ":");
 | 
				
			||||||
@fini fn bulb_path() void = free(bulb_path);
 | 
					@fini fn bulb_path() void = free(bulb_path);
 | 
				
			||||||
@ -29,6 +40,7 @@ export fn read(output: io::handle, board: str, number: int) (void | error) = {
 | 
				
			|||||||
	// we add 1 to account for the blank line that will always be at the
 | 
						// we add 1 to account for the blank line that will always be at the
 | 
				
			||||||
	// bottom
 | 
						// bottom
 | 
				
			||||||
	seek_to_nth_last_line(file, number + 1)?;
 | 
						seek_to_nth_last_line(file, number + 1)?;
 | 
				
			||||||
 | 
						// TODO don't copy control characters!
 | 
				
			||||||
	io::copy(output, file)?;
 | 
						io::copy(output, file)?;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user