use std::path::PathBuf;
use std::rc::Rc;
use std::u32;
+use std::env::current_dir;
use core::DocContext;
use doctree;
}
let src = match cx.input {
- Input::File(ref path) => path.clone(),
+ Input::File(ref path) => {
+ if path.is_absolute() {
+ path.clone()
+ } else {
+ current_dir().unwrap().join(path)
+ }
+ },
Input::Str(_) => PathBuf::new() // FIXME: this is wrong
};
use std::io::{self, BufWriter, BufReader};
use std::iter::repeat;
use std::mem;
-use std::path::{PathBuf, Path};
+use std::path::{PathBuf, Path, Component};
use std::str;
use std::sync::Arc;
// make it relative, if possible
let p = p.strip_prefix(src_root).unwrap_or(p);
- let mut iter = p.iter().map(|x| x.to_str().unwrap()).peekable();
+ let mut iter = p.components().peekable();
+
while let Some(c) = iter.next() {
if !keep_filename && iter.peek().is_none() {
break;
}
- if ".." == c {
- f("up");
- } else {
- f(c)
+ match c {
+ Component::ParentDir => f("up"),
+ Component::Normal(c) => f(c.to_str().unwrap()),
+ _ => continue,
}
}
}
// entire crate. The other option is maintaining this mapping on a
// per-file basis, but that's probably not worth it...
self.cx
- .include_sources = match self.emit_source(&item.source .filename) {
+ .include_sources = match self.emit_source(&item.source.filename) {
Ok(()) => true,
Err(e) => {
println!("warning: source code was requested to be rendered, \
--- /dev/null
+// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// ignore-windows
+// compile-flags: --no-defaults
+
+// @has src/issue_26995/dev/null.html
+// @has issue_26995/null/index.html '//a/@href' '../../src/issue_26995/dev/null.html'
+#[path="/dev/null"]
+pub mod null;